deploy

Implante um ator (smart contract) na rede Convex. Use quando o usuário quiser criar um novo ator on-chain com funções exportadas.

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

Deploy a Convex Actor

Actors are autonomous on-chain programs with their own address, state, and callable functions.

See the convex-lisp skill for CVM conventions and error codes. Deploying is a transaction, so it needs a key the user has supplied — see transact.

Actor Structure

A typical actor deployment:

(deploy
  '(do
     ;; Internal state (private to the actor)
     (def counter 0)

     ;; Callable functions: mark each with ^:callable so it can be
     ;; invoked from outside the actor via (call ...)
     (defn ^:callable increment []
       (set! counter (+ counter 1))
       counter)

     (defn ^:callable get-count []
       counter)))

Key Rules

  • deploy returns the new actor's address (e.g. #12345)
  • Only functions tagged with ^:callable metadata can be called from outside (there is no export form). The equivalent map form is ^{:callable true}
  • Use set! to update an existing def from inside a function; plain defs declared in the actor body are private state
  • Actors have their own *address* and *balance*
  • Use (set-controller #ADDR) inside the actor to set who can upgrade it
  • deploy also accepts a vector of code forms, which is how library builders are composed into one actor: (deploy [(@convex.fungible/build-token {…}) (@convex.fungible/add-mint {…})])

After Deployment

  1. Note the returned address for the user
  2. Optionally register a CNS name: (*registry*/create 'my.actor.name #NEW-ADDR) — needs control of the parent namespace; see the cns skill
  3. Test by calling a ^:callable function: (call #NEW-ADDR (get-count))

Workflow

  1. Help the user design the actor based on $ARGUMENTS
  2. Write the Convex Lisp source
  3. Deploy using transact with the (deploy ...) expression
  4. Verify the deployment with a test query

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…