{"id":"d9186b33-495b-4f3b-8d93-e0f89cabfd21","shortId":"K2UyxU","kind":"skill","title":"nfd","tagline":">-","description":"# NFDomains (NFD)\n\nNFDomains 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.\n\n## Package\n\n`@txnlab/nfd-sdk` — TypeScript SDK for on-chain NFD operations. Requires `algosdk` as a peer dependency.\n\n```bash\nnpm install @txnlab/nfd-sdk algosdk\n```\n\nThe 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.\n\nA REST API exists at `https://api.nf.domains` (TestNet: `https://api.testnet.nf.domains`), but the SDK is preferred for all operations it supports.\n\n## NfdClient Initialization\n\n```typescript\nimport { NfdClient } from '@txnlab/nfd-sdk'\n\nconst nfd = new NfdClient() // MainNet (default)\nconst nfd = NfdClient.mainNet() // MainNet (explicit)\nconst nfd = NfdClient.testNet() // TestNet\n```\n\nCustom configuration:\n\n```typescript\nimport { NfdClient, NfdRegistryId } from '@txnlab/nfd-sdk'\nimport { AlgorandClient } from '@algorandfoundation/algokit-utils'\n\nconst nfd = new NfdClient({\n  algorand: AlgorandClient.mainNet(),\n  registryId: NfdRegistryId.MAINNET, // 760937186\n})\n```\n\nFor write operations (mint, buy, manage), set a signer:\n\n```typescript\nconst signedClient = nfd.setSigner(activeAddress, transactionSigner)\n```\n\n## Key Concepts\n\n- **Forward resolution**: Name → address (`nfd.resolve('alice.algo')`)\n- **Reverse lookup**: Address → name (`nfd.resolveAddress(address)`)\n- **Views**: `tiny` (minimal), `brief` (default), `full` (all properties)\n- **depositAccount**: The safe address to send assets to (resolves verified → unverified → owner)\n- **caAlgo**: Array of verified linked Algorand addresses\n- **unverifiedCaAlgo**: Array of unverified linked addresses\n- **nfdAccount**: The NFD's vault (contract-controlled Algorand account)\n- **Segments**: Subdomains like `sub.root.algo`, minted from a root NFD\n\n## Reference Files\n\nRead the appropriate file based on the task:\n\n| Task                                                | Reference                                           |\n| --------------------------------------------------- | --------------------------------------------------- |\n| Install SDK, initialize client                      | [getting-started.md](references/getting-started.md) |\n| Resolve name → address, reverse lookup              | [resolve.md](references/resolve.md)                 |\n| Get avatar/banner images                            | [images.md](references/images.md)                   |\n| Search for NFDs                                     | [search.md](references/search.md)                   |\n| Mint a new NFD                                      | [minting.md](references/minting.md)                 |\n| Buy or claim an NFD                                 | [purchasing.md](references/purchasing.md)           |\n| Link addresses, set metadata                        | [managing.md](references/managing.md)               |\n| Work with segments (subdomains)                     | [segments.md](references/segments.md)               |\n| Send assets to/from vaults                          | [vaults.md](references/vaults.md)                   |\n| Integrate NFDs into an app (display names, avatars) | [integration.md](references/integration.md)         |\n| Full API surface and types                          | [api-reference.md](references/api-reference.md)     |\n\n## SDK vs REST API\n\nThe SDK handles: resolve, reverse lookup, images, mint, claim, buy, manage (link address, set metadata, set primary), search.\n\nThe REST API is needed for: vault send-to/send-from operations, batch address lookups (20+ addresses), analytics/activity queries, consensus leaders, contract upgrades.\n\nWhen both can do it, use the SDK.","tags":["nfd","skills","txnlab","agent-skills","algorand","claude-code","haystack-router","use-wallet"],"capabilities":["skill","source-txnlab","skill-nfd","topic-agent-skills","topic-algorand","topic-claude-code","topic-haystack-router","topic-nfd","topic-use-wallet"],"categories":["skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/TxnLab/skills/nfd","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add TxnLab/skills","source_repo":"https://github.com/TxnLab/skills","install_from":"skills.sh"}},"qualityScore":"0.453","qualityRationale":"deterministic score 0.45 from registry signals: · indexed on github topic:agent-skills · 6 github stars · SKILL.md body (3,806 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T19:14:23.231Z","embedding":null,"createdAt":"2026-05-18T13:22:00.082Z","updatedAt":"2026-05-18T19:14:23.231Z","lastSeenAt":"2026-05-18T19:14:23.231Z","tsv":"'/send-from':341 '20':346 '760937186':144 'account':34,216 'activeaddress':158 'address':29,165,170,173,185,200,206,246,275,325,344,347 'algo':25 'algokit':59 'algorand':14,140,199,215 'algorandcli':133 'algorandclient.mainnet':141 'algorandfoundation/algokit-utils':135 'algosdk':46,55 'alice.algo':11,167 'also':72 'analytics/activity':348 'api':86,303,312,333 'api-reference.md':307 'api.nf.domains':89 'api.testnet.nf.domains':91 'app':296 'appropri':230 'array':195,202 'asset':188,287 'avatar':299 'avatar/banner':252 'base':232 'bash':51 'batch':343 'blockchain':15 'brief':177 'buy':149,267,322 'caalgo':194 'chain':42,70,82 'claim':269,321 'client':61,241 'concept':161 'configur':125 'consensus':350 'const':109,115,120,136,155 'contract':21,66,213,352 'contract-control':212 'control':214 'custom':124 'default':114,178 'depend':50 'depositaccount':182 'direct':67 'display':297 'e.g':10 'exist':87 'explicit':119 'expos':73 'file':227,231 'forward':162 'full':179,302 'get':251 'getting-started.md':242 'handl':315 'human':7 'human-read':6 'imag':253,319 'images.md':254 'import':105,127,132 'index':83 'initi':103,240 'instal':53,238 'integr':292 'integration.md':300 'interact':63 'key':160 'leader':351 'like':219 'link':198,205,274,324 'lookup':169,248,318,345 'mainnet':113,118 'manag':150,323 'managing.md':278 'map':23 'metadata':30,277,327 'minim':176 'mint':148,221,261,320 'minting.md':265 'name':9,26,164,171,245,298 'need':335 'new':111,138,263 'nfd':1,3,17,43,65,110,116,121,137,209,225,264,271 'nfd.api':74 'nfd.resolve':166 'nfd.resolveaddress':172 'nfd.setsigner':157 'nfdaccount':207 'nfdclient':102,106,112,128,139 'nfdclient.mainnet':117 'nfdclient.testnet':122 'nfdomain':2,4 'nfdregistryid':129 'nfdregistryid.mainnet':143 'nfds':258,293 'npm':52 'off-chain':80 'on-chain':40,68 'oper':44,77,99,147,342 'owner':193 'packag':35 'peer':49 'prefer':96 'primari':329 'properti':181 'purchasing.md':272 'queri':349 'read':228 'readabl':8 'refer':226,237 'references/api-reference.md':308 'references/getting-started.md':243 'references/images.md':255 'references/integration.md':301 'references/managing.md':279 'references/minting.md':266 'references/purchasing.md':273 'references/resolve.md':250 'references/search.md':260 'references/segments.md':285 'references/vaults.md':291 'registryid':142 'requir':45,79 'resolut':163 'resolv':190,244,316 'resolve.md':249 'rest':85,311,332 'revers':168,247,317 'root':224 'safe':184 'sdk':38,57,94,239,309,314,361 'search':76,256,330 'search.md':259 'segment':217,282 'segments.md':284 'send':187,286,339 'send-to':338 'set':151,276,326,328 'signedcli':156 'signer':153 'skill' 'skill-nfd' 'smart':20 'source-txnlab' 'sub.root.algo':220 'subdomain':218,283 'support':101 'surfac':304 'task':235,236 'testnet':90,123 'tini':175 'to/from':288 'topic-agent-skills' 'topic-algorand' 'topic-claude-code' 'topic-haystack-router' 'topic-nfd' 'topic-use-wallet' 'transactionsign':159 'txnlab/nfd-sdk':36,54,108,131 'type':60,306 'typescript':37,104,126,154 'unverifi':192,204 'unverifiedcaalgo':201 'upgrad':353 'use':58,359 'vault':33,211,289,337 'vaults.md':290 'verifi':191,197 'view':174 'vs':310 'wallet':28 'work':280 'write':146","prices":[{"id":"aeb453b9-c9c1-4c5c-99a8-9355a87f8124","listingId":"d9186b33-495b-4f3b-8d93-e0f89cabfd21","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"TxnLab","category":"skills","install_from":"skills.sh"},"createdAt":"2026-05-18T13:22:00.082Z"}],"sources":[{"listingId":"d9186b33-495b-4f3b-8d93-e0f89cabfd21","source":"github","sourceId":"TxnLab/skills/nfd","sourceUrl":"https://github.com/TxnLab/skills/tree/main/skills/nfd","isPrimary":false,"firstSeenAt":"2026-05-18T13:22:00.082Z","lastSeenAt":"2026-05-18T19:14:23.231Z"}],"details":{"listingId":"d9186b33-495b-4f3b-8d93-e0f89cabfd21","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"TxnLab","slug":"nfd","github":{"repo":"TxnLab/skills","stars":6,"topics":["agent-skills","ai","algorand","claude-code","haystack-router","nfd","use-wallet"],"license":"mit","html_url":"https://github.com/TxnLab/skills","pushed_at":"2026-02-19T16:56:59Z","description":"Curated agent skills for TxnLab's Algorand ecosystem — NFDomains, use-wallet, Haystack Router","skill_md_sha":"232ce59bbaf701d687c0c718a5883c11e9123c26","skill_md_path":"skills/nfd/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/TxnLab/skills/tree/main/skills/nfd"},"layout":"multi","source":"github","category":"skills","frontmatter":{"name":"nfd","description":">-"},"skills_sh_url":"https://skills.sh/TxnLab/skills/nfd"},"updatedAt":"2026-05-18T19:14:23.231Z"}}