nfd
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseNFDomains (NFD)
NFDomains (NFD)
NFDomains are human-readable names (e.g., ) on the Algorand blockchain. Each NFD is a smart contract that maps a name to wallet addresses, metadata, and a vault account.
alice.algo.algoNFDomains是Algorand区块链上的人类可读名称(例如)。每个NFD都是一个智能合约,用于将名称映射到钱包地址、元数据和金库账户。
alice.algo.algoPackage
包
@txnlab/nfd-sdkalgosdkbash
npm install @txnlab/nfd-sdk algosdkThe SDK uses AlgoKit typed clients to interact with NFD contracts directly on-chain. It also exposes for search operations that require off-chain indexing.
nfd.apiA REST API exists at (TestNet: ), but the SDK is preferred for all operations it supports.
https://api.nf.domainshttps://api.testnet.nf.domains@txnlab/nfd-sdkalgosdkbash
npm install @txnlab/nfd-sdk algosdk该SDK使用AlgoKit类型化客户端直接与链上NFD合约交互。它还暴露了用于需要链下索引的搜索操作。
nfd.api存在一个REST API,地址为(测试网:),但对于SDK支持的所有操作,优先使用SDK。
https://api.nf.domainshttps://api.testnet.nf.domainsNfdClient 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() // TestNetCustom 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: (minimal),
tiny(default),brief(all properties)full - 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 , minted from a root NFD
sub.root.algo
- 正向解析:名称 → 地址()
nfd.resolve('alice.algo') - 反向查找:地址 → 名称()
nfd.resolveAddress(address) - 视图模式:(极简)、
tiny(默认)、brief(所有属性)full - depositAccount:接收资产的安全地址(解析顺序:已验证→未验证→所有者)
- caAlgo:已验证的关联Algorand地址数组
- unverifiedCaAlgo:未验证的关联地址数组
- nfdAccount:NFD的金库(合约控制的Algorand账户)
- 分段(Segments):子域名,例如,由根NFD铸造
sub.root.algo
Reference Files
参考文件
Read the appropriate file based on the task:
| Task | Reference |
|---|---|
| Install SDK, initialize client | getting-started.md |
| Resolve name → address, reverse lookup | resolve.md |
| Get avatar/banner images | images.md |
| Search for NFDs | search.md |
| Mint a new NFD | minting.md |
| Buy or claim an NFD | purchasing.md |
| Link addresses, set metadata | managing.md |
| Work with segments (subdomains) | segments.md |
| Send assets to/from vaults | vaults.md |
| Integrate NFDs into an app (display names, avatars) | integration.md |
| Full API surface and types | api-reference.md |
根据任务阅读对应的文件:
| 任务 | 参考文档 |
|---|---|
| 安装SDK、初始化客户端 | getting-started.md |
| 名称→地址解析、反向查找 | resolve.md |
| 获取头像/横幅图片 | images.md |
| 搜索NFD | search.md |
| 铸造新NFD | minting.md |
| 购买或申领NFD | purchasing.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。