sigil

Double-click anywhere. I know everything about Sigil.

or I can help you find anything

Ask about Sigil — or anything in the ecosystem

Enter to askEsc to close

A die per class. A press per mint.

Custom token classes are fungible units issued by an issuer_did under a controllable supply policy and a transfer-control policy. Five transactions cover the full lifecycle: create the class, mint into supply, transfer hand-to-hand, burn back to slug, and re-engrave the policy. MINT, BITS, and SIGIL are reserved native tokens; everything else is a custom class.

sigil · liverunning
TOKENS · CUT
CreateTokenClass · ticker · decimals · issuer_did
NATIVE RESERVED · MINT · BITS · SIGIL
01 / 05
Cut

Cut

CreateTokenClass cuts the die.

A new class is registered at token_id with a ticker, decimals, an issuer_did, a controller_did, a supply_policy, and an optional transfer_policy. Once registered, ticker and decimals are immutable — the die is steel. MINT, BITS, and SIGIL are reserved native tokens and cannot be created here.

Strike

MintToken strikes coins.

The press drives the die into a blank disc. Amount (u128) is issued to recipient_did under the class's supply policy. Fixed-supply classes reject mints after the cap; capped classes reject anything that would overflow the ceiling. Every strike is one signed transaction.

Transfer

TransferToken passes them hand to hand.

Units move from signer to recipient_did under the class's transfer_policy. Allowlists, freezes, and controller co-signatures all live inside that policy. An optional memo is recorded with the move. The ledger is class-keyed — there is no implicit conversion between token classes.

Burn

BurnToken returns them to the slug.

The owner sends the units back into the melt furnace. Amount is destroyed from owner_did and the class's circulating supply contracts on the same block. Burns are irrevocable — the reduction is recorded against the supply ledger immediately under MACA.

Engrave

SetTokenPolicy re-engraves the rim.

The controller updates supply_policy or transfer_policy. Only the recorded controller_did may call it. Every change is a signed, height-stamped record — every rim engraving is a public fact. The ticker and decimals stay fixed; the policy is the part that changes.

The five strike transactions

Every operation is one signed strike.

Each transaction is a signed, height-stamped record. Decimals and ticker are immutable from CreateTokenClass onward. Supply policy and transfer policy are the parts that change — and only the controller_did may change them.

Transaction Types

5

Supply Range

u128

Decimals Field

u8

Issuer / Controller

DID

Reserved native tokens

MINT, BITS, SIGIL — handled by consensus.

MINT is the protocol's native unit of account and the bond currency for validators. BITS is the gas-metering subunit. SIGIL is the identity-bonded reputation token. These three are minted, burned, and accounted for by the consensus layer — they are not custom token classes and cannot be created through CreateTokenClass.

Policies are first-class records

Every supply or transfer policy change is signed.

SetTokenPolicy updates supply_policy or transfer_policy under the recorded controller_did. The ticker and decimals stay fixed; the policy is the part that changes. Allowlists, freezes, controller co-signature — all live inside the policy and are public on-chain facts.

Cut a die. Run your ledger.

Settlement units, org credits, redeemable receipts, policy-bounded stablecoins — five operations, one signed transaction each. MINT, BITS and SIGIL stay reserved. The rest of the design space is yours.