cns

Resolver ou registrar nomes do Convex Name System (CNS). Use quando o usuário quiser consultar um nome CNS, registrar um novo nome ou atualizar o destino de um nome.

npx skills add https://github.com/convex-dev/convex --skill cns

Convex 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 the my node to exist and to trust you — otherwise it fails with :TRUST "Forbidden to create CNS node". Top-level names require special authority.
  • create also 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 :callable SPI variant (path taken from *scope*) — not called directly with a symbol; use control.

CNS in Code

  • @convex.fungible in CVM source resolves to the actor address at runtime
  • Use CNS paths instead of hardcoded addresses for portable code
  • (@convex.fungible/balance #TOKEN #USER) calls balance on the resolved actor

Common CNS Names

NamePurpose
convex.fungibleFungible token standard library
convex.trustTrust and access control
convex.assetGeneric asset interface
asset.nft.simpleNon-fungible token standard
asset.multi-tokenMulti-token standard

(Resolve with (*registry*/resolve 'name) to get the current address — these are network-specific.)

Mais skills de convex-dev

convex-lisp
convex-dev
Referência da linguagem Convex Lisp — convenções da CVM, chamada de código de biblioteca, definições de atores, códigos de juice e erro. Use ao escrever ou depurar código fonte da CVM para…
ecosystem
convex-dev
Orientação no ecossistema Convex — o que vive em qual repositório, onde estão as especificações e documentos, e quais bibliotecas cliente existem. Use quando precisar de contexto…
local-network
convex-dev
Execute uma rede de teste Convex local para desenvolvimento. Use ao testar alterações contra uma rede ativa, reproduzir um problema de um peer ou quando não houver rede remota…
protocol-versions
convex-dev
Versões de protocolo, migrações e o upgrade v1 — quais semânticas usar, e como mudar o comportamento do CVM sem bifurcar a rede. Use quando…
etch
convex-dev
Inspecione e mantenha um armazenamento Etch — o banco de dados endereçado por conteúdo da Convex. Use ao examinar armazenamento de pares, diagnosticar corrupção, coletar lixo, ou…
juice
convex-dev
Contabilidade de Juice — o custo de computação e largura de banda na CVM. Use ao raciocinar sobre o custo de execução de transações, diagnosticar uma falha de :JUICE, ou…
trust
convex-dev
Trust monitors — o modelo de autorização on-chain composável da Convex. Use ao escrever controle de acesso, restringindo funções de atores, definindo quem pode cunhar ou…
memory
convex-dev
Contabilidade e limites de memória — o custo do armazenamento on-chain e como minimizá-lo e recuperá-lo. Use ao raciocinar sobre o crescimento do estado, diagnosticar um…