token

作成者: convex-dev

Convex上で代替可能トークンを作成・管理します。ユーザーが新しいトークンの作成、トークン残高の確認、またはトークン供給量の管理を希望する場合に使用します。

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

Fungible Tokens on Convex

Fungible tokens use the @convex.fungible standard library (convex-core/src/main/cvx/convex/asset/fungible.cvx). See the convex-lisp skill for CVM conventions, and transact for how transactions are signed.

Create a New Token

Fixed supply — no further tokens can ever be minted:

(deploy (@convex.fungible/build-token {:supply 1000000}))

Mintable — build-token alone provides no mint or burn capability. To allow minting you must compose add-mint into the same deployment:

(deploy [(@convex.fungible/build-token {:supply 1000000})
         (@convex.fungible/add-mint {:minter *address* :max-supply 1000000000})])

Decide which the user wants before deploying — the choice is permanent, and a token deployed without add-mint fails on any later mint attempt.

build-token config: :supply (defaults to 0), :initial-holder (defaults to *address*), :decimals. add-mint config: :minter (any trust monitor, defaults to *address*) and :max-supply (from protocol v1, defaults to unlimited).

Always set :max-supply explicitly. Before v1 activates, omitting it defaults the cap to 0 — and because 0 is truthy in CVM, that installs a zero cap which blocks all minting, silently producing a mintable-looking token that can never mint (#528). Setting it explicitly is correct under both genesis and v1. See the protocol-versions skill.

deploy returns the token's actor address.

Operations

TaskSource
Check balance(@convex.fungible/balance #TOKEN #HOLDER)
Total supply(@convex.fungible/total-supply #TOKEN)
Decimals(@convex.fungible/decimals #TOKEN)
Transfer(@convex.fungible/transfer #TOKEN #DEST AMOUNT)
Mint(@convex.fungible/mint #TOKEN AMOUNT)
Burn(@convex.fungible/burn #TOKEN AMOUNT)

There is no quantity function — it returns :UNDECLARED. Total supply is total-supply.

balance, total-supply and decimals are reads: use a query, not a transaction. transfer, mint and burn change state and must be transactions.

If a Convex MCP server is configured, its getBalance and transfer tools also accept a token parameter.

Authorisation

Minting requires the caller to satisfy the token's :minter trust monitor; anything else fails with :TRUST. :minter takes any trust monitor, not just an address — see the trust skill for composing them (a mint window, a multi-party whitelist, delegated revocation). Creating, transferring, minting and burning are all transactions, so they need a key the user has supplied — see the transact skill. Without one you can prepare the source but not execute it.

convex-devのその他のスキル

convex-lisp
convex-dev
Convex Lisp言語リファレンス — CVMの規約、ライブラリコードの呼び出し、アクター定義、ジュースとエラーコード。CVMソースの作成やデバッグ時に使用。
ecosystem
convex-dev
Convexエコシステムにおけるオリエンテーション — どのリポジトリに何が含まれているか、仕様書とドキュメントがどこにあるか、どのクライアントライブラリが存在するか。コンテキストが必要なときに使用します…
local-network
convex-dev
開発用にローカルのConvexテストネットワークを実行します。ライブネットワークに対して変更をテストする場合、ピアの問題を再現する場合、またはリモートネットワークがない場合に使用します…
protocol-versions
convex-dev
プロトコルバージョン、マイグレーション、v1アップグレード — どのセマンティクスに対して記述するか、そしてネットワークをフォークせずにCVMの動作を変更する方法。使用する場面:…
etch
convex-dev
Etchストアを検査および保守する — Convexのコンテンツアドレス型データベース。ピアストレージの調査、破損の診断、ガベージコレクションなどを行う際に使用します…
juice
convex-dev
Juice会計 — CVMにおける計算と帯域幅のコスト。トランザクション実行コストの推論、:JUICE障害の診断、または…の際に使用します。
trust
convex-dev
Trust monitors — Convexの合成可能なオンチェーン認可モデルです。アクセス制御の記述、アクター関数の制限、誰がミントできるかの定義などの際に使用します…
memory
convex-dev
メモリの会計処理と許容量 — オンチェーンストレージのコスト、およびそれを最小化・回収する方法。状態の増大について推論する際や、診断する際に使用します…