nfd

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

NFDomains (NFD)

NFDomains (NFD)

NFDomains are human-readable names (e.g.,
alice.algo
) on the Algorand blockchain. Each NFD is a smart contract that maps a
.algo
name to wallet addresses, metadata, and a vault account.
NFDomains是Algorand区块链上的人类可读名称(例如
alice.algo
)。每个NFD都是一个智能合约,用于将
.algo
名称映射到钱包地址、元数据和金库账户。

Package

@txnlab/nfd-sdk
— TypeScript SDK for on-chain NFD operations. Requires
algosdk
as a peer dependency.
bash
npm install @txnlab/nfd-sdk algosdk
The SDK uses AlgoKit typed clients to interact with NFD contracts directly on-chain. It also exposes
nfd.api
for search operations that require off-chain indexing.
A REST API exists at
https://api.nf.domains
(TestNet:
https://api.testnet.nf.domains
), but the SDK is preferred for all operations it supports.
@txnlab/nfd-sdk
— 用于链上NFD操作的TypeScript SDK。需要将
algosdk
作为对等依赖项。
bash
npm install @txnlab/nfd-sdk algosdk
该SDK使用AlgoKit类型化客户端直接与链上NFD合约交互。它还暴露了
nfd.api
用于需要链下索引的搜索操作。
存在一个REST API,地址为
https://api.nf.domains
(测试网:
https://api.testnet.nf.domains
),但对于SDK支持的所有操作,优先使用SDK。

NfdClient Initialization

NfdClient初始化

typescript
import { NfdClient } from '@txnlab/nfd-sdk'

const nfd = new NfdClient() // MainNet (default)
const nfd = NfdClient.mainNet() // MainNet (explicit)
const nfd = NfdClient.testNet() // TestNet
Custom configuration:
typescript
import { NfdClient, NfdRegistryId } from '@txnlab/nfd-sdk'
import { AlgorandClient } from '@algorandfoundation/algokit-utils'

const nfd = new NfdClient({
  algorand: AlgorandClient.mainNet(),
  registryId: NfdRegistryId.MAINNET, // 760937186
})
For write operations (mint, buy, manage), set a signer:
typescript
const signedClient = nfd.setSigner(activeAddress, transactionSigner)
typescript
import { NfdClient } from '@txnlab/nfd-sdk'

const nfd = new NfdClient() // 主网(默认)
const nfd = NfdClient.mainNet() // 主网(显式指定)
const nfd = NfdClient.testNet() // 测试网
自定义配置:
typescript
import { NfdClient, NfdRegistryId } from '@txnlab/nfd-sdk'
import { AlgorandClient } from '@algorandfoundation/algokit-utils'

const nfd = new NfdClient({
  algorand: AlgorandClient.mainNet(),
  registryId: NfdRegistryId.MAINNET, // 760937186
})
对于写入操作(铸造、购买、管理),需要设置签名者:
typescript
const signedClient = nfd.setSigner(activeAddress, transactionSigner)

Key Concepts

核心概念

  • Forward resolution: Name → address (
    nfd.resolve('alice.algo')
    )
  • Reverse lookup: Address → name (
    nfd.resolveAddress(address)
    )
  • Views:
    tiny
    (minimal),
    brief
    (default),
    full
    (all properties)
  • depositAccount: The safe address to send assets to (resolves verified → unverified → owner)
  • caAlgo: Array of verified linked Algorand addresses
  • unverifiedCaAlgo: Array of unverified linked addresses
  • nfdAccount: The NFD's vault (contract-controlled Algorand account)
  • Segments: Subdomains like
    sub.root.algo
    , minted from a root NFD
  • 正向解析:名称 → 地址(
    nfd.resolve('alice.algo')
  • 反向查找:地址 → 名称(
    nfd.resolveAddress(address)
  • 视图模式
    tiny
    (极简)、
    brief
    (默认)、
    full
    (所有属性)
  • depositAccount:接收资产的安全地址(解析顺序:已验证→未验证→所有者)
  • caAlgo:已验证的关联Algorand地址数组
  • unverifiedCaAlgo:未验证的关联地址数组
  • nfdAccount:NFD的金库(合约控制的Algorand账户)
  • 分段(Segments):子域名,例如
    sub.root.algo
    ,由根NFD铸造

Reference Files

参考文件

Read the appropriate file based on the task:
TaskReference
Install SDK, initialize clientgetting-started.md
Resolve name → address, reverse lookupresolve.md
Get avatar/banner imagesimages.md
Search for NFDssearch.md
Mint a new NFDminting.md
Buy or claim an NFDpurchasing.md
Link addresses, set metadatamanaging.md
Work with segments (subdomains)segments.md
Send assets to/from vaultsvaults.md
Integrate NFDs into an app (display names, avatars)integration.md
Full API surface and typesapi-reference.md
根据任务阅读对应的文件:
任务参考文档
安装SDK、初始化客户端getting-started.md
名称→地址解析、反向查找resolve.md
获取头像/横幅图片images.md
搜索NFDsearch.md
铸造新NFDminting.md
购买或申领NFDpurchasing.md
关联地址、设置元数据managing.md
处理分段(子域名)segments.md
向金库发送/从金库提取资产vaults.md
在应用中集成NFD(显示名称、头像)integration.md
完整API接口与类型定义api-reference.md

SDK vs REST API

SDK与REST API对比

The SDK handles: resolve, reverse lookup, images, mint, claim, buy, manage (link address, set metadata, set primary), search.
The REST API is needed for: vault send-to/send-from operations, batch address lookups (20+ addresses), analytics/activity queries, consensus leaders, contract upgrades.
When both can do it, use the SDK.
SDK支持的操作:解析、反向查找、图片获取、铸造、申领、购买、管理(关联地址、设置元数据、设置主地址)、搜索。
需要使用REST API的操作:金库转入/转出操作、批量地址查找(20个以上地址)、分析/活动查询、共识节点、合约升级。
当两者都支持某操作时,优先使用SDK。