Overview
FourCards is a marketplace for tokenized graded trading cards on BNB Chain, built natively on OpenFour. Every card on FourCards is a real PSA, CGC or BGS slab held in a vault and represented by exactly one on-chain token. You can trade it, pull it from a pack, sell it back instantly, or redeem it and have the physical slab shipped to you.
- Chain: BNB Chain (BSC). Payments in BNB and USDT.
- Graders: PSA, CGC and BGS. The grader and certificate number are stored on-chain with each card.
- Randomness: Chainlink VRF v2.5, so pack results can't be chosen by FourCards or anyone else.
How it works
- Vault. A graded slab arrives at the vault. Staff photograph the front and back and check the certificate with the grader.
- Mint. Two separate operator roles sign: the vault approves the exact card record, then the minter mints it. One certificate can back only one live token.
- Trade. List, buy, make offers or sign gasless orders on the marketplace. Cards move only while they are vaulted.
- Packs. Open a pack to pull a random card from a published pool with published odds.
- Instant buyback. Don't want a pull? Sell it back at a fixed share of its value within the buyback window.
- Redeem. Request the physical slab. The token is locked, then burned when the slab ships.
Packs and odds
Each pack tier has a price and a set of value buckets (for example Common, Rare, Chase) with published odds. When you open a pack, PackMachine requests randomness from Chainlink VRF v2.5. The random number picks a bucket by its odds, then a card from that bucket.
- Up to 10 packs per open.
- A tier only sells while every bucket with non-zero odds holds enough cards for all pending opens, so a paid open can always be served. Otherwise the tier pauses itself until it is restocked.
- Odds can't change while any open is pending, and every change is published on-chain.
- If randomness hasn't arrived within 24 hours, you can refund the open.
- Cards enter a pool bucketed by their oracle value at the time of deposit.
Instant buyback
Cards pulled from a pack can be sold back to FourCards at 85% of their oracle value within 72 hours of the pull. The terms are fixed per tier and snapshotted when you open, so they can't change after you pay. Payouts are in the currency the pack was bought with.
- The buyback share is capped at 95% on-chain.
- Per-card ceiling of $5,000 and a daily cap of $25,000 across all buybacks.
- Buybacks pause for a currency if paying out would take the reserve below its floor.
- A card's price must be fresh; stale prices block a buyback until the oracle updates.
Marketplace and fees
Sell with an on-chain listing or a gasless signed order (EIP-712). Buyers can buy listings, accept signed orders, or escrow an offer. Signed orders expire and can be cancelled; every order is bound to the chain and contract.
| Marketplace fee | 2% |
| Fee split | 70% treasury · 15% platform token buyback · 15% holder rewards |
| Royalty (ERC-2981, to the treasury) | 1% |
| Hard caps (on-chain) | fee ≤ 10% · royalty ≤ 10% |
Redeeming a card
- Enter a shipping address. It is encrypted and stored off-chain; it never touches the blockchain.
- Get a signed shipping quote (for example $25 to the US, $60 default) and pay it in BNB or USDT.
- The token is locked: it can't be transferred or listed. You can cancel until the vault starts packing.
- When the slab ships, the vault confirms on-chain and the token is burned. You get the tracking number.
High-value shipments may require identity verification before dispatch.
OpenFour integration
FourCards is built on OpenFour, the BNB Chain token framework from Four.meme. Anyone holding vaulted cards can launch a card-backed token on OpenFour, linked to a single card, a bundle, a set or a curated collection.
- Verified on creation. The token's tax vault (CollectTaxVault) checks on-chain that every linked card is vaulted. If any isn't, the launch fails.
- Fixed platform tax policy. 2% buy and 2% sell tax after migration, split 50% to the buyback reserve and 50% to token holders.
- CollectibleData module. A CustomData module that writes the card link into the token's on-chain data. It has been submitted to OpenFour; until it is registered, launches use OpenFour's live Royalty preset with the FourCards tax vault.
Pricing oracle
Card values come from recent comparable sales and are posted on-chain to PriceOracle in USD. BNB amounts use the Chainlink BNB/USD feed.
- Each price has a maximum age of 7 days; older prices are stale and block buybacks and pool deposits.
- A deviation guard rejects any single update that moves a price by more than 50%.
- A median mode with several independent signers is supported and planned before launch.
Contracts
Pre-audit staging deployment. These contracts are live on BNB Chain but unaudited, with no cards minted and no pack tiers open. Expect a redeploy, with new addresses, after the audit. Source is verified on Sourcify.
| Contract | Purpose | Address (BNB Chain) |
|---|---|---|
| Buyback | Instant buyback of pulled cards | 0x92e3f08a5B37f19398891C25A19B632a446E1831 |
| CollectTaxVault | OpenFour tax vault template for card-backed tokens | 0xab13249836aD7f9F99F99C48A1b28D1DbAFaDb6B |
| CollectibleCard | ERC-721 registry: one token per vaulted slab | 0x216Ae595902208f40eFd496f222c61E248CF7bC5 |
| CollectibleDataModule | OpenFour CustomData module (CollectibleData) | 0x66FD84A4E86d34E8ef4a46B6a7b2C29c97Bd0250 |
| CollectiblePresetValidator | OpenFour preset validator for card-backed tokens | 0x15F7427aaC7b7BEe0B444446B7DF6A1978030185 |
| FeeRouter | Marketplace fee split | 0xD91edEf53E23268a4c57ba605BE4F69fF3eBff25 |
| Marketplace | Listings, signed orders and offers | 0x1DA223C2cf4ED499962FB5201e6Ed1aC4De22059 |
| PackLens | Read-only pack odds and expected value | 0x20EC2FF2443D1C074A5a904cfdA941fbeACF3270 |
| PackMachine | Pack tiers, pools and Chainlink VRF draws | 0x460c7BDb1AdC3B8D690BA2cF6055C8713BD040B4 |
| PlatformHolderRewards | Platform token holder rewards | 0x17126fFcb2fe8dd0873Ab4eF0C2A7C879a45a47e |
| PlatformTokenBuyback | Platform token buyback-and-burn | 0x4f42c9982D14EC7f362ED6B5e663FC8bA2724828 |
| PriceOracle | Card valuations and BNB/USD feed | 0xF8c865Be14D7621E3C4844957B87CD7C9e09CDE2 |
Security and status
- Unaudited. An external audit is required before real cards are minted or packs open.
- Roles. Admin, treasury, vault operations, minting, pricing and quote signing are separate on-chain roles. Production admin keys will sit in a multisig behind a timelock.
- Two-party minting. No single key can mint a card: the vault approves and a separate minter mints.
- Tested. Unit, fuzz and invariant tests, plus fork tests against live OpenFour contracts on BNB Chain and the Chainlink VRF coordinator.
FAQ
- Is every card a real, physical card?
- Yes. A token can only be minted for a graded slab checked into the vault, and it is burned when the slab is redeemed.
- Can FourCards change pack odds after I pay?
- No. Odds are locked while any open is pending, and buyback terms are snapshotted at the time you open.
- What happens if Chainlink is slow?
- Your open stays pending. If it isn't fulfilled within 24 hours, you can refund it.
- Which wallets work?
- Browser wallets and wallet extensions on BNB Chain, such as MetaMask, Trust Wallet, OKX Wallet or Binance Wallet.