namespace-53d629
Skill1 starsChanged 25 days agoMITView on GitHub
Namespace issues ENS subnames (alice.yourapp.eth): gasless offchain subnames through an API key, onchain L1/L2 subnames on Ethereum, Base or Optimism, plus resolution and React UI. Use when a hacker says Namespace, ENS subname, username.eth for users, claim a subname, mint L2 subname, offchain subname, @thenamespace/offchain-manager, mint-manager, ens-components, Resolvio, set ENS avatar/text/address records, or the ENS track.
- Reads credentials
- Installs packages
In this repository55 other files it gives its agents.
- aaveSkill
- agentkitSkill
- alchemySkill
- backboardSkill
- biconomySkill
- blockscoutSkill
- daimoSkill
- duneSkill
- dynamicSkill
- easSkill
- ensoSkill
- envioSkill
- fetch-aiSkill
- goldskySkill
- hardhatSkill
- litSkill
- livepeerSkill
- morphoSkill
- neynarSkill
- olasSkill
- onramp-moneySkill
- openzeppelinSkill
- pimlicoSkill
- pinataSkill
- ponderSkill
- privySkill
- pushSkill
- quicknodeSkill
- reclaimSkill
- reownSkill
- requestSkill
- safeSkill
- scaffold-ethSkill
- signSkill
- sponsor-chainsSkill
- superfluidSkill
- tenderlySkill
- the-graphSkill
- thirdwebSkill
- track-0gSkill
- track-1inchSkill
- track-arcSkill
- track-arkivSkill
- track-chainlinkSkill
- track-definitiveSkill
- track-efSkill
- track-ensSkill
- track-hederaSkill
- track-uniswapSkill
- track-whitechainSkill
- track-worldSkill
- transakSkill
- web3authSkill
- xmtpSkill
- zerodevSkill
The file
We split this skill into the rules it gives an agent
3 rules. About 0 are common, 0 are distinctive, and 3 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈0
Distinctive · estimate
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 57
Run npx tsx src/quickstart.ts alice.
- Very specific: line 75
Check versions first: npm view @thenamespace/offchain-manager version and npm view @thenamespace/mint-manager version.
- Very specific: line 76
Keep API keys and private keys on the server.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Namespace
Namespace lets the owner of an ENS name (say yourapp.eth) give out subnames like alice.yourapp.eth, with address, avatar and text records that any ENS-aware wallet or app can read.
Pick offchain subnames for gasless, instant names at signup (records live in Namespace's database and resolve through CCIP Read). Pick onchain L2 (Base, Optimism) or L1 subnames when the user must own the name as an NFT.
Skip it if you only need to read existing ENS names: plain viem getEnsAddress / getEnsName is enough.
Namespace also publishes its own official skills (https://github.com/thenamespace/skills), one per SDK, e.g. npx skills add thenamespace/skills -s offchain-ens-subname-sdk. Use them for SDK reference; this skill adds a tested hackathon quickstart, recipes and the gotchas found in testing. Full list: references/mcp.md.
Quickstart
Gasless offchain subname from a Node server (TypeScript, Node 22).
- Get an ENS name you control. For testing, register one on Sepolia (https://sepolia.app.ens.domains).
- In the Namespace App, Offchain section (https://app.namespace.ninja/offchain), connect the owner wallet, pick the name, open Resolution, click Update resolver then Configure (one-time, costs gas).
- Same page, API Keys > Create new key, choose Address based or Domain based, copy it at once. Details: references/quickstart.md.
- Install:
npm i @thenamespace/offchain-manager@1.0.13 dotenv@17.4.2 npm i -D tsx@4.23.15 typescript@7.0.2 @types/node@22 .env(server only, never in browser code):NAMESPACE_API_KEY=<YOUR_NAMESPACE_API_KEY>andPARENT_NAME=<yourname.eth>.src/quickstart.ts(set"type": "module"in package.json):import 'dotenv/config'; import { createOffchainClient, ChainName } from '@thenamespace/offchain-manager'; const client = createOffchainClient({ mode: 'sepolia', // 'mainnet' for a mainnet ENS name defaultApiKey: process.env.NAMESPACE_API_KEY!, }); const parent = process.env.PARENT_NAME!; const label = process.argv[2] ?? 'alice'; const owner = '0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045'; // the user's wallet const { isAvailable } = await client.isSubnameAvailable(`${label}.${parent}`); if (!isAvailable) throw new Error('taken'); // createSubname would overwrite it await client.createSubname({ label, parentName: parent, owner, addresses: [{ chain: ChainName.Ethereum, value: owner }], texts: [{ key: 'avatar', value: 'https://example.com/alice.png' }], }); console.log(await client.getSingleSubname(`${label}.${parent}`));- Run
npx tsx src/quickstart.ts alice. Check it resolves: https://sepolia.app.ens.domains/alice.yourname.eth, or viem (recipe 6).
Common tasks
- Give every user a subname at signup (server API route)
- Set address, avatar, text records; upload an avatar image
- Find a user's name by wallet (owner / metadata filter)
- Mint an onchain L2 subname with viem (Mint Manager)
- Read minted L2 subnames (Indexer)
- Resolve any name with viem (offchain, L2, normal ENS)
- Resolve profiles over HTTP with Resolvio (no key)
- Drop-in React UI: ENS Components
- Errors and gotchas (several found in testing): references/errors.md
- Sponsor chains: references/chains.md · Docs MCP server and official skills: references/mcp.md
Before you write more code
- For anything not covered here, read https://docs.namespace.ninja/llms.txt and open the linked page (add
.mdto any docs URL). Full corpus: https://docs.namespace.ninja/llms-full.txt. - Check versions first:
npm view @thenamespace/offchain-manager versionandnpm view @thenamespace/mint-manager version. Mint Manager 2.0.0 (Sep 2026) replaced the old flow withcheckName+prepareMint; older blog posts show the old one. - Keep API keys and private keys on the server. Use testnet (
mode: 'sepolia',isTestnet: true) while hacking. - Some docs pages are behind the SDK (see errors.md). Type-check with
tsc. When this skill and the official docs disagree, the docs win, unless the installed package's TypeScript types say otherwise.
At ETHGlobal Mumbai
- Names live on Ethereum ENS (offchain or L1) or on Base / Optimism (L2). On sponsor chains, Namespace gives you address records a name points to, not the name itself: World Chain and Unichain are named in the SDK; the team says any EVM chain works through the default EVM address. Details and what is not confirmed: references/chains.md.
- May help with the ENS track (readable names for users, agents, payments), and with World, Uniswap Foundation or Hedera builds that want names for wallets. Check the rules yourself: https://ethglobal.com/events/mumbai/prizes
- Help: Namespace Builders on Telegram https://t.me/+OsziFgfuZz03NjEy (linked from the docs), docs https://docs.namespace.ninja
About
Hand-written for Backboard (https://backboard.0xvikram.me), an independent project not affiliated with ETHGlobal or Namespace. Tested 2026-10-19 with @thenamespace/offchain-manager@1.0.13, @thenamespace/mint-manager@2.0.0, @thenamespace/indexer@1.0.2, @thenamespace/avatar@2.0.2, @thenamespace/ens-components@2.2.0, viem@2.57.7, wagmi@2.19.5.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

