Overview
Gradix lets Collector Crypt holders swap their tokenized graded Pokémon cards directly, without selling first. Each card is a Metaplex programmable NFT on Solana backed by a graded card in Collector Crypt's vault.
A bidder locks one card, plus optional USDC, into an on-chain offer for one specific card. The owner of that card accepts in one transaction and both sides change hands at once, or ignores it, or sends a counteroffer. The bidder can cancel any time for free.
A completed swap costs 1 USDC per side. All swap fees buy back and burn $GRADIX once a day. Wallets holding at least 1,000,000 $GRADIX pay no fee.
How it works
- Make an offer. Pick the card you want, choose one of your cards to give, and set the USDC: added by you, asked from the owner, or none. Optionally set an expiry. You sign one transaction; your card, your USDC and your 1 USDC fee go into escrow accounts owned by the offer.
- The owner answers. They see the offer with both insured values side by side. They can accept, ignore it, or counter with a new offer the other way.
- Accept settles everything. The owner signs one transaction. Both cards and the USDC move in the same instruction, or nothing moves.
- Cancel or expiry. Until it is accepted, the bidder can cancel for free. After an expiry, anyone can send the escrow back to the bidder.
Worked example
Example names and values.
| Step | Maya (bidder) | Leo (owner) | Treasury |
|---|---|---|---|
| Start | Blastoise Holo PSA 8 ($380 est.), 100 USDC | Charizard ex PSA 9 ($420 est.), 0 USDC | 0 |
| make_offer (+40 USDC) | Card, 40 USDC and 1 USDC fee in escrow. Wallet: 59 USDC | No change | 0 |
| accept | Receives Charizard ex. Wallet: 59 USDC | Receives Blastoise + 40 USDC, minus 1 USDC fee = 39 USDC | +2 USDC |
| If Maya cancels instead | Gets back Blastoise and 41 USDC. Wallet: 100 USDC | No change | 0 |
Each side also pays the Solana network fee for the transaction it signs. The rent for the offer accounts is a deposit paid by the bidder and returned when the offer closes.
Fees
1 USDC per side, only on a completed swap. Nothing on cancel or expiry. The fee in force is written into each offer when it is made, so a later change never reprices an open offer. The program caps it at 10 USDC per side.
| Who pays | When | Amount | Where it goes |
|---|---|---|---|
| Bidder (maker) | Held in the offer when it is made; charged only if the swap completes, returned on cancel or expiry | 1 USDC | Treasury USDC account (set at deploy) |
| Card owner (taker) | On accept, taken first from the USDC the bidder added, the rest from the owner's wallet | 1 USDC | Treasury USDC account (set at deploy) |
| Any side holding ≥ 1,000,000 $GRADIX | Bidder checked at make, owner checked at accept | 0 USDC | — |
| Treasury | Once a day | 100% of swap fees | Market buy of $GRADIX, then burned (buyback wallet set at deploy) |
| $GRADIX traders on Pump.fun | On every $GRADIX trade, at Pump.fun's creator-fee rate | Pump.fun rate | Project wallet, for development (set at deploy) |
| Everyone | Each transaction | Solana network fee | Validators. Account rent is a deposit, returned to the bidder when the offer closes |
The 2% Collector Crypt royalty does not apply: a swap is two transfers, not a sale. Collector Crypt's transfer rule set still runs on every card move.
Program
- Program ID
5wvjqDcFDVri7RUcxn1TQA7MPRjWJ7gMvY2DabbyJCW6Solscan ↗- Framework
- Pinocchio (no Anchor)
- Collection check
- Every escrowed card must carry the verified collection
CCryptWBYktukHDQ2vHGtVcmtjXxYzvw8XNVY64YN2Yfin its Token Metadata. - Card transfers
- Token Metadata TransferV1, so Collector Crypt's rule set
eBJLFYPxJmMGKuFwpDWkzxZeUrad92kZRC5BJLpzyT9is applied. - Escrow
- One PDA per offer, seeds
["offer", maker, id]. It owns the card's token account and the USDC vault. - Audit
- None. 20 tests in LiteSVM against cloned mainnet Token Metadata, Token Auth Rules, Collector Crypt's rule set and two real Collector Crypt cards.
Instructions
make_offerBidderMoves one card (Token Metadata TransferV1) and the bidder's USDC plus held fee into escrow accounts owned by a new offer PDA. Stores the wanted card, the USDC each way, the current fee and an optional expiry. Rejected if the card is not in the verified Collector Crypt collection, if new offers are paused, or if both cards are the same.
cancelBidder, or anyone after expiryReturns the card, the USDC and the held fee to the bidder, then closes the escrow and offer accounts (rent back to the bidder). No fee.
acceptOwner of the wanted cardIn one instruction: escrowed card and USDC to the owner, wanted card (and any USDC asked for) to the bidder, the two fees to the treasury, accounts closed. Rejected if the offer expired, if the signer does not hold the wanted card, or if the cards passed are not the ones written in the offer.
configureAdmin key onlySets the fee (capped at 10 USDC per side), the treasury, the collection, the $GRADIX waiver and the pause flag. Does not change open offers. Pause blocks new offers only.
What is escrowed
Per offer: the bidder's card (amount 1, in a token account owned by the offer PDA), the USDC the bidder added, and the bidder's fee unless waived. The wanted card never leaves the owner's wallet until they accept. No instruction can send an escrowed asset anywhere except the bidder, the owner who delivers the wanted card in the same instruction, or the treasury for the fixed fee.
Risks
- The program is not audited. A bug could lock or lose escrowed cards or USDC.
- An accepted swap is final. Check both cards before you sign.
- Card values shown are Collector Crypt's insured value, an estimate. They are not a price anyone has agreed to pay.
- The admin key can change the fee for new offers (never above 10 USDC per side), the treasury and the waiver, and can pause new offers. It cannot move escrowed assets.
- Collector Crypt is a third party. A change to its collection, metadata or transfer rule set could block new offers or transfers.
- $GRADIX is a token on a bonding curve and can lose all its value. Holding it only removes your swap fee.
- Gradix is not affiliated with Collector Crypt or The Pokémon Company. Nothing here is financial advice.
FAQ
- Where does the money for the $GRADIX buyback come from?
- Only from swap fees: 1 USDC per side on each completed swap. There are no emissions and no outside top-ups. If nobody swaps, nothing is bought. Cancelled and expired offers pay nothing.
- Who can change the rules after launch?
- An admin key sets the fee, the treasury account and the $GRADIX waiver, and can pause new offers. The program caps the fee at 10 USDC per side, and an open offer keeps the fee it was made with. The admin key cannot move escrowed cards or USDC, and a pause never blocks cancel or accept.
- Do I need to claim anything?
- No. On accept, both cards and the USDC land in the two wallets in the same transaction. On cancel or expiry, the card, the USDC and the held fee go straight back to the bidder.
- What can go wrong?
- The program is not audited: a bug could lock or lose escrowed cards or USDC. Card values shown are Collector Crypt's insured value, an estimate, not a price anyone will pay. An accepted swap is final. Collector Crypt is a third party and could change its collection or transfer rules, which could block new offers. $GRADIX can lose all its value.
- Is there a presale, team allocation or airdrop?
- No presale, no team allocation, no airdrop. $GRADIX launches on Pump.fun with the standard 1,000,000,000 supply. The dev buy at launch will be disclosed with its transaction.
- Is it audited?
- No. The program has 20 tests (13 of them attacks that must be refused) run in LiteSVM against the real mainnet Token Metadata and Token Auth Rules programs, Collector Crypt's rule set and two real Collector Crypt cards. That is testing, not an audit. Start with cards you can afford to have stuck.
- Can I swap a card listed on a marketplace?
- Not while it is listed. A listing locks the card, so the escrow cannot take it. Delist it first, then make or accept the offer.
- What about the Collector Crypt royalty?
- The 2% royalty applies to sales. A swap here is two transfers in one transaction, with no sale, so no royalty is charged. Collector Crypt's transfer rule set still runs on every card move.
- How do I skip the 1 USDC fee?
- Hold at least 1,000,000 $GRADIX in the wallet that signs. The bidder is checked when the offer is made, the owner when they accept. The waiver turns on once $GRADIX exists; until then every side pays 1 USDC.