cns
कॉन्वेक्स नेम सिस्टम (CNS) नामों को रिज़ॉल्व या रजिस्टर करें। उपयोग करें जब उपयोगकर्ता CNS नाम देखना चाहता है, नया नाम पंजीकृत करना चाहता है, या किसी नाम का लक्ष्य अपडेट करना चाहता है।
npx skills add https://github.com/convex-dev/convex --skill cnsConvex Name System (CNS)
CNS maps human-readable names (like convex.fungible) to on-chain addresses.
See the convex-lisp skill for CVM conventions.
Resolve a Name
In CVM source, @convex.fungible resolves the name directly — this is the
normal way to reach a library.
To inspect a name's record (value, controller, metadata, child node), use a
Convex MCP server's resolveCNS tool if one is configured. Otherwise query it:
java -jar convex.jar client query '@convex.fungible'
Register or Update a Name
The registry actor is #9, available in CVM code as *registry*. It has no
cns-update function — use create for a new name and update for an
existing one:
;; Create a new name pointing at a target, with *address* as controller
(*registry*/create 'my.name #TARGET *address*)
;; Update an existing name you control
(*registry*/update 'my.name #NEW-TARGET)
;; Change who controls a name
(*registry*/control 'my.name #NEW-CONTROLLER)
These are transactions (they change state). Notes:
- Creating requires controlling the parent namespace.
(*registry*/create 'my.name ...)needs themynode to exist and to trust you — otherwise it fails with:TRUST"Forbidden to create CNS node". Top-level names require special authority. createalso accepts optional controller, metadata and child arguments:(*registry*/create 'my.name target controller metadata).- Note
(*registry*/register {:name "..."})is unrelated — it registers metadata for the caller's own account, not a CNS name. - The registry also defines
change-control, but it is the scoped:callableSPI variant (path taken from*scope*) — not called directly with a symbol; usecontrol.
CNS in Code
@convex.fungiblein CVM source resolves to the actor address at runtime- Use CNS paths instead of hardcoded addresses for portable code
(@convex.fungible/balance #TOKEN #USER)callsbalanceon the resolved actor
Common CNS Names
| Name | Purpose |
|---|---|
convex.fungible | Fungible token standard library |
convex.trust | Trust and access control |
convex.asset | Generic asset interface |
asset.nft.simple | Non-fungible token standard |
asset.multi-token | Multi-token standard |
(Resolve with (*registry*/resolve 'name) to get the current address — these
are network-specific.)