Setting the chapter. One moment.
Skills
Chapter 8 of 20
Deploy an actor (smart contract) to the Convex network. Use when the user wants to create a new on-chain actor with exported functions.
1 minute · 178 words · 5 sections
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.
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)))deploy returns the new actor’s address (e.g. #12345)^:callable metadata can be called from outside (there is no export form). The equivalent map form is ^{:callable true}set! to update an existing def from inside a function; plain defs declared in the actor body are private state*address* and *balance*(set-controller #ADDR) inside the actor to set who can upgrade itdeploy 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 {…})])(call #9 (cns-update 'my.actor.name *address*))^:callable function: (call #NEW-ADDR (get-count))$ARGUMENTStransact with the (deploy ...) expressionInstall this repository
npx skills add Convex-Dev/convexSkills install per repository, not per chapter — the CLI has no documented per-skill form, so we do not print one.
develop, last pushed 8 August 2026.SKILL.md, not by matching a directory convention. One layout observed: .claude/skills/*/SKILL.md.h1 and no skipped levels:/Convex-Dev/convex.md, and each chapter at its own .md URL.