Token Forge docs
v0.1.0
Live demo Get help
● Set up · Run the token

Console
run the token afterwards.

Minting takes one transaction. Everything after it happens in the Console: holders, issuing, revoking, expiry, approvals, fees, authorities, compatibility and the audit trail. Every operation produces an unsigned transaction you sign elsewhere, exactly like the build.

01Load a mint

  1. Open ConsoleCheck the cluster chip matches the cluster the mint lives on.
  2. Paste the mint addressInto Mint address, press Load this mint.
  3. Read the headerName, the slot the reading came from, and the extensions the mint actually has.

The console works out what is possible from the mint's real extensions and authorities. An operation you cannot perform is shown with the reason, not hidden. It also works on a mint someone else created.

Your own endpoint needed

The holder list is read with getProgramAccounts, which the public endpoint refuses. Holders, Expiry, Approvals and Fees depend on it. The console says unread rather than showing zero (add your endpoint).

02Overview

What the chain says about the mint right now: extensions, every authority and who holds it, supply, decimals, metadata, and the slot it was read at. Nothing on it is an estimate.

03Holders

Every account holding the token: owner, balance, state (active, frozen, emptied) and any transfer fee withheld on it, read at a named slot. The tab title follows your vocabulary (for example Members).

04Issue

Needs the mint authority. Enter a Fee payer, the Recipients (one per line: wallet address, a space, the amount; no amount means 1), and a Reason, then build.

Amounts are in base units

The amount is the raw whole number the token program uses. With 0 decimals (every preset except Reward token) 1 is one token. With 6 decimals (Reward token) one token is 1000000, and 1 is 0.000001 of a token.

<RECIPIENT_ADDRESS> 1
<ANOTHER_ADDRESS> 1
  • Recipients without an account for the token get one, paid by the fee payer.
  • On a mint whose accounts start frozen, each new account is thawed in the same transaction.
  • Long lists are split into several transactions by measuring each against Solana's 1,232-byte limit.
  • Issuing is a mint, not a transfer, so it works on non-transferable tokens too.

05Revoke

Takes tokens back through the permanent delegate. The holder does not sign and cannot refuse. The mint must have been created with that extension; it cannot be added later.

ShapeSupplyWorks on
BurnFallsAny mint with a permanent delegate
Reclaim to a destination accountUnchangedTransferable mints only
Membership, Licence, Pass

These are non-transferable, and the token program refuses every transfer on them, the delegate's included. Burning is the only way to revoke; a mis-sent token is burned and a new one issued. The console refuses a reclaim on such a mint. Proven on devnet by tool/devnet/prove_delegate_limits.dart.

06Expiry

Reads the valid-to field in the token's metadata: days remaining and holders affected. Extend it builds a metadata update with a New valid-to (ISO date); this needs the metadata update authority. One date applies to every holder of the mint.

Nothing on chain enforces expiry

An expired pass stays in the wallet. Expiry is enforced by whatever reads the field (your door system, your API) and by you revoking.

07Approvals

For whitelist tokens, where every account starts frozen. Waiting for approval lists frozen accounts; Approve — build thaw unfreezes one, Build freeze freezes an active one. Both need the freeze authority. If it has been renounced, neither is possible again.

08Fees

Transfer fees are withheld on each holder's own account. What is claimable shows Harvested onto the mint, Still on holder accounts, the number of accounts to harvest from, and the slot.

  1. Build harvestSweeps withheld fees from holder accounts onto the mint. Anyone may do this; it costs a network fee.
  2. Build withdrawalMoves what is on the mint to a Destination token account for the withdrawal you control. Needs the withdraw withheld authority.

How this earns for you: Earnings.

09Authorities

The live authority ledger, and where you renounce one. You must type the exact phrase, for example RENOUNCE MINT AUTHORITY. There is no checkbox. The console refuses to renounce an authority the mint does not carry.

AuthorityPhrase
MintRENOUNCE MINT AUTHORITY
FreezeRENOUNCE FREEZE AUTHORITY
Permanent delegateRENOUNCE PERMANENT DELEGATE
Metadata updateRENOUNCE METADATA UPDATE AUTHORITY
Transfer fee configRENOUNCE FEE CONFIG AUTHORITY
Withdraw withheldRENOUNCE WITHDRAW AUTHORITY
CloseRENOUNCE CLOSE AUTHORITY
Interest rateRENOUNCE RATE AUTHORITY
Transfer hookRENOUNCE HOOK AUTHORITY
Permanent

No Solana instruction gives an authority back, and no support request can. The only remedy is a new mint and moving every holder to it.

10Compatibility

The same consequences report as build step 5, run against the live mint. Record what you found adds a venue check: which venue, which surface, the outcome and what you saw. Surfaces settled by a protocol fact are not offered for checking. A devnet check is evidence about mainnet, not proof, which is why the cluster is recorded.

11Audit trail

Every issue, revoke, freeze, thaw, harvest, withdrawal, metadata update and authority change, with reason, signature and status:

StatusMeaning
Not submittedBuilt and handed over. Nothing happened on chain.
Signature recorded, not verifiedA signature was pasted but not yet checked.
Confirmed on chainFound on chain, succeeded.
Failed on chainFound on chain, failed.

Check it against the chain re-reads a recorded signature on the cluster it was sent to. Export gives CSV — addresses shortened by default; asking for full addresses writes its own entry to the trail. The trail is stored on this device only (Configuration).