How it works
Two Solana programs do the work: card-vault holds cards and mints their tokens, card-launch launches coins quoted in those tokens on Meteora. This page names every piece and follows one card from deposit to redemption.
On this page
The pieces
| Piece | What it does |
|---|---|
| card-vault | Holds cards, mints and burns card tokens, tracks backing: card classes, attested deposits, FIFO redemption, poke, skip, requeue, restore |
| card-launch | Keeps one Meteora DBC config per class, launches coins through DBC, claims and splits fees |
| Attestor | A key that signs a statement about each card before it can be deposited. The program checks that signature |
| Keeper | pokes every held card that is no longer owned by the vault, and migrates every complete curve |
| Collector Crypt | Holds the physical graded cards and issues them as Metaplex Core NFTs |
| Meteora DBC | The bonding curve every coin starts on, quoted in a card token |
| Meteora DAMM v2 | The pools: CARD/SOL for each card token, COIN/CARD for each graduated coin |
| Metaplex Core | The NFT standard of the cards; the vault moves them with Core transfers |
One card, start to finish
Deposit
A card holder asks the attestor to sign a statement about the card. The deposit transaction puts that signature in an Ed25519 instruction right before card-vault's
deposit, which checks it, moves the card into the vault and mints 1,000 card tokens to the depositor. See Deposit and redeem.Trade the card token
The class's CARD/SOL pool on Meteora DAMM v2 prices the card token in SOL. Anyone holding card tokens can sell part of a card there, or keep them.
Launch a coin
Anyone can call
launch_coinon a class whose market is enabled and whose backing is intact. It creates a Token-2022 coin with a supply of 1,000,000,000 on a Meteora bonding curve quoted in the card token. See Coins.Buy and sell
Buyers pay card tokens into the curve, or pay SOL and route through the CARD/SOL pool in the same transaction. Every curve trade pays a fee in the card token. See Buy with SOL and Fees.
Graduate
When the curve has raised its threshold, the keeper calls Meteora's permissionless migration. The coin moves into a COIN/CARD DAMM v2 pool whose liquidity is locked forever. See Graduation.
Redeem
Anyone holding 1,000 card tokens can burn them and receive the oldest copy still held in the class. The card leaves the vault as a Core NFT in the redeemer's wallet.
What keeps it honest
- The backing invariant. The supply of a card token is never more than the cards held times 1,000. See Backing and poke.
- Permissionless checks.
poke,skip,requeueandrestorecan be sent by anyone, and they only change bookkeeping after checking chain state. - Gated launches.
launch_coinrefuses a class that is flagged as undercollateralized. - Proof of reserves. Every held copy can be checked against the chain and Collector Crypt's record. See Verify the reserves.
Written from the protocol, security and card documents of the pokedex repository and from its code (card-vault, card-launch, cp-ix). Every figure on these pages comes from there.