GraveSwap logo

Explore NFT–token pools

GraveSwap

A new way to connect NFTs and tokens.

The on-chain MPL-404 swap protocol. Any NFT collection can back its tokens with a fixed-rate pool — deposit an NFT for tokens, or pay tokens to draw a random NFT from the pool. Built on Solana, fully on-chain.

Live
Solana
Technical details & program addresses
On-chain program
GRvpAqXy1CKTQJ9qEVMFnvUqu1pVgzHgRVwBGsRdsWap

What is GraveSwap?

GraveSwap is an on-chain Solana program that turns any NFT collection into a two-way swap pool. The collection picks a token (an SPL or Token-2022 mint) and a fixed swap rate. From that point on, anyone holding an NFT from the collection can deposit it into the pool to mint themselves that exact amount of tokens — and anyone holding the tokens can pay them back to the pool to draw a random NFT out of the pool's escrow.

No bidding, no AMM curves, no per-NFT pricing. The collection's floor is the pool's swap rate, enforced on-chain — and any NFT in the pool is fungible with every other NFT for the purpose of the swap. That's the same idea pioneered by MPL-404 on the Metaplex side and ERC-404 on Ethereum, made native to Solana with Token-2022 support.

See it in action

Two flows in one program. Either send an NFT and get tokens, or send tokens and get a random NFT back.

NFT SWAP
Your wallet
Pool
NFT escrow
Token vault
On-chain
Your wallet
Send NFT
Pool captures + pays out tokens
Receive tokens

For Creators

  • Give every NFT in your collection a clear, fixed redemption value.
  • Bring the token side into the project — holders can swap their NFTs for tokens or vice versa, anytime.
  • Configure the swap rate and capture/release fees the way you want; fees flow to a wallet you choose.
  • Deploy and manage everything from GraveMint — no contract code, no command line.

For Collectors

  • Want to exit an NFT instantly? Swap it for tokens at the pool rate — no listing, no waiting.
  • Want a new NFT from a collection? Swap tokens for one at random — surprise-bag style.
  • Same swap rate for everyone. No bidding, no AMM curves, no slippage math.
  • Every swap settles on Solana in seconds. Your wallet, your NFTs, your tokens — no middleman.
Traditional NFT floor versus GraveSwap pool floor — a floor price the chain can actually enforce

What is MPL-404?

A standard for collections that want to live as both NFTs and tokens at the same time.

MPL-404 stands for Metaplex Protocol-404. The name is a nod to ERC-404 — the experimental Ethereum standard from 2024 that fused NFTs and fungible tokens into the same supply, so transfers automatically minted or burned NFTs as token balances crossed whole-number thresholds.

MPL-404 is the Solana take on the same idea, but cleaner: rather than a single contract trying to be both an NFT and a token at once (which forced ERC-404 implementations into fragile gas-heavy hacks), MPL-404 keeps the NFT collection and the swap token as separate on-chain assets and connects them through a pool with a fixed exchange rate. The pool acts as the bridge.

Why this matters

  • Instant liquidity for NFT holders. No need to list and wait for a buyer. Drop the NFT in the pool, walk away with the tokens.
  • A predictable floor. The pool rate is the floor. As long as the vault is funded, every NFT in the collection has a guaranteed redemption value.
  • Token-side speculation, NFT-side art. Traders can buy and sell the swap token freely on DEXes; collectors can redeem tokens for an NFT whenever they want one. Same supply, two skins.
  • No off-chain custody. The escrow is a Solana PDA owned by the program. No multisig, no bridge, no operator that can disappear.

How a swap works

Two directions, both atomic. Single Solana transaction, single signature.

How GraveSwap Works — NFT to tokens, and tokens to a random NFT

NFT → Token

Drop an NFT into the pool, get the swap token in return.

  1. 1You pick one or more NFTs from your wallet (up to 5 per swap).
  2. 2The program transfers the NFTs to the pool's escrow PDA.
  3. 3Your wallet receives swap_rate × N tokens, minus the capture fee.
  4. 4The pool's nft_count goes up. The NFTs are now available for someone else to draw via Token Swap.

Token → NFT

Pay the swap token, draw a random NFT from the pool's escrow.

  1. 1You choose how many NFTs you want (1–5 per swap).
  2. 2The program reads the most recent Solana slot hash and picks a random escrow slot.
  3. 3Your wallet pays swap_rate × N tokens (plus the release fee), and the program transfers the chosen NFT to you.
  4. 4The pool's nft_count goes down. You don't pick which NFT — the chain does.

Pool lifecycle

From deploy to first swap — five on-chain steps. Each one is a separate, signed transaction so creators can pace the rollout however they want.

From collection to live pool — five clicks inside GraveMint
1

Deploy

Creator initializes a pool for their collection — picks the swap token mint, swap rate, and capture/release fees.

2

Register

Each NFT mint is registered into the pool, creating an AssetRecord PDA that tracks per-NFT escrow state.

3

Fund

Creator funds the token vault so the pool can pay out tokens for incoming NFT captures.

4

Activate

Pool flips from pending → active. Capture and release swaps unlock; rate and fees are now committed.

5

Swap

Holders trade NFTs ↔ tokens at the pool rate. Every swap is a single Solana transaction settled in milliseconds.

Protocol features

The on-chain primitives, not the surface UI. Everything below is enforced by the program — no off-chain trust required.

Two-Way Swap

Trade NFTs for tokens, or pay tokens to draw a random NFT from the pool — both directions handled by the same program.

On-Chain Escrow

Captured NFTs are held by a per-pool escrow PDA. Ownership and accounting live on-chain — no off-chain custody, no opaque ledger.

Random Selection

Token Swap draws an NFT from the escrow using Solana's recent slot hashes — nobody sees which NFT is next, so there is no preview to trade against.

Fixed Pool Rate

Each pool has one swap rate set at activation. Predictable pricing for collectors; no slippage math, no AMM curve to game.

Creator-Configurable Fees

Capture and release fees are set per pool by the creator. Fees route to a fee wallet they control, on every swap.

Token-2022 Native

Built on Token-2022 from day one. Supports transfer-fee extensions, mint-close authority, and other 2022 features collections need.

GraveSwap on-chain architecture — user wallet, GraveMint UI, program, pool PDA, token vault, NFT escrow, per-NFT records
GraveSwap

GraveSwapMPL-404 Engine

GRvpAqXy1CKTQJ9qEVMFnvUqu1pVgzHgRVwBGsRdsWap

Anchor FrameworkProduction

The GraveSwap program is the on-chain Solana protocol behind every MPL-404 pool you'll see on GraveMint. Every part of a swap — fee math, random NFT pick, the bookkeeping that tracks what's in the pool — runs on-chain. Nothing depends on a private server that could go down or be tampered with.

What the program does on-chain

Stores each pool's settings — the swap rate, fees, status, and how many NFTs are currently inside.
Holds every captured NFT in a per-pool escrow address that only the program can move from.
Tracks each NFT individually so the pool's inventory is always accurate.
Picks the NFT for token-side swaps from the pool's escrow using recent Solana slot hashes — nobody gets a preview of what is coming.
Pays out tokens from the pool's token balance whenever someone swaps an NFT in.
Provides safety switches an admin can flip to pause a pool if a compromised NFT is detected.

The web and mobile apps you use are simply user interfaces — they build the transaction and read pool state. The program is the thing that actually moves the NFTs and tokens. If our apps go offline, your NFTs and the pools stay safe on-chain.

Things to know before swapping

Every DeFi product has trade-offs. Here are the honest ones.

The pool can run out

If too many people swap in one direction, the pool can run out of NFTs (or out of tokens). The UI tells you when that's happening, and the creator can refund the token side at any time. Until they do, that direction is paused.

Token price moves freely

The pool's swap rate stays fixed, but the swap token's market price on DEXes floats with supply and demand. If the token's market price drops a lot, the dollar value of an NFT redemption drops too — even though the rate hasn't changed.

Random means random

When you swap tokens for an NFT, you don't pick which one. The pool's inventory could be anything from rare 1/1s to floor-tier pieces. If you want something specific, the secondary market (GraveMarket) is the right tool.

Glossary

Quick definitions for the words we use on this page.

Pool

A swap pool — the on-chain account that connects an NFT collection to a token. Each collection has at most one pool.

Swap rate

The fixed price the pool uses for both directions. One NFT in = swap rate worth of tokens out (and vice versa).

Capture

Sending an NFT into the pool in exchange for tokens. Also called 'NFT Swap' in the UI.

Release

Sending tokens to the pool in exchange for a random NFT from inside it. Also called 'Token Swap'.

Escrow

The on-chain holding area where the pool keeps captured NFTs until someone redeems them.

Vault

The pool's token balance — what it pays out when someone swaps an NFT in.

Pool fee

A percentage fee in the swap token charged on every swap. Set by the creator. Routes to a wallet they choose.

Platform fee

A small SOL fee on every swap. Goes to Solana Deads. Shown in both dollars and SOL before you sign.

MPL-404

The Solana standard for NFT-to-token swap pools. The model GraveSwap implements.

Pool status

Pending, active, paused, cancelled, or closed. Only active pools allow swaps.

Want to launch a pool?

Pools are deployed and managed through GraveMint — pick your collection, set the rate and fees, fund the vault, activate. The on-chain program does the rest.

What it is

Selling an NFT normally means waiting for someone who wants that exact item at that exact price. Until they turn up, a "floor price" is just the lowest thing currently listed — a number, not an offer.

GraveSwap makes the floor real. A pool holds tokens on one side and NFTs on the other at a fixed rate, so you can always convert in either direction without needing to find a counterparty.

The protocol is its own on-chain Solana program, but the place you use it is GraveMint, at gravemint.io/swaps. That split is deliberate: the program is independent of any one interface.

Three steps to start

  1. 1

    Open a pool

    Go to gravemint.io/swaps and pick the collection’s pool.

  2. 2

    Connect your Solana wallet

    The same wallet holding the NFTs or tokens you want to swap.

  3. 3

    Capture or release

    Deposit an NFT to mint tokens, or pay tokens to draw an NFT from the pool.

    Up to five per swap, in a single transaction.

Everything it can do

Two-way swaps

  • Capture: NFT to tokens — deposit and mint at the pool rate
  • Release: tokens to an NFT — drawn from what the pool holds
  • Up to five per swap — one transaction, one signature
  • Slippage protection — on every swap

A fixed rate, not a curve

  • One rate per pool — set at activation
  • No bonding curve — no slippage maths to reason about
  • Nothing to front-run — the price does not move with order flow

Guardrails that lock in

  • Rate can only move ±10% after activation — measured from the activation value
  • Fees capped at 10 percentage points above activation — an additive ceiling, not a free hand
  • Per-pool pause — stop a pool without touching the escrow
  • Full on-chain event trail — PoolCreated, Captured, Released, FeesUpdated

Escrow and custody

  • Per-pool escrow PDA — only the program can move NFTs out
  • Not the creator, not us — custody is the program’s
  • Mint-compromise flagging — a known-bad mint can be marked

For creators

  • Set capture and release fees — anywhere from 0% to 100%
  • Your own fee wallet — proceeds go where you choose
  • Bring your own Token-2022 token — not restricted to $DEADS
  • Multi-admin with propose/accept — no single-key control
  • Created automatically at launch — enable MPL-404 on a GraveMint drop
  • Self-activates at sellout — provided the vault is funded

Assets

  • MPL-Core, legacy Token Metadata and pNFT
  • Token-2022 swap token — with transfer-fee maths handled correctly
  • Program GRvpAqXy1CKTQJ9qEVMFnvUqu1pVgzHgRVwBGsRdsWap — 47 instructions, Anchor

Who it’s for

For creators

  • Collections that want a floor that does not depend on listings
  • Projects launching with liquidity from day one
  • Teams that want fee terms they cannot later be accused of changing
  • Anyone who would rather not run a market-making operation

For collectors

  • Exit without waiting for a buyer
  • Swap tokens for an NFT when you want one from the set
  • Terms that cannot be moved much after you commit
  • Custody held by the program rather than a person

Questions people actually ask

Can I choose which NFT I get?

No — that is the whole idea. Paying tokens draws one from whatever the pool currently holds. If you want a specific NFT, buy it on GraveMarket from whoever is listing it.

How is the NFT chosen?

From the pool’s escrow using recent Solana slot hashes, so nobody gets a preview of what is next and there is no ordering to trade against. Verifiable VRF-grade randomness is not claimed here — for that, see GraveDraw.

Can the creator change the rate after I have committed?

Only within ±10% of the rate at activation, and fees can rise at most 10 percentage points above their activation value. The terms you entered under cannot be turned into something else.

Who holds the NFTs while they are in the pool?

A per-pool escrow PDA. Only the program can move them — not the creator, and not us.

Do I have to use $DEADS?

No. A creator can pair the pool with their own Token-2022 token, and the transfer-fee maths is handled correctly for tokens that have one.

What if the collection never sells out?

Nothing is stuck. The pool can be topped up and activated, or cancelled with the deposits refunded.

Where do I actually use it?

At gravemint.io/swaps. The protocol is its own Solana program, but GraveMint is the interface — which is why it appears there rather than on a separate site.

What is MPL-404?

A model where an NFT and a quantity of fungible tokens are two forms of the same holding, convertible in either direction at a fixed rate. GraveSwap is an on-chain implementation of it.

Things worth knowing

You do not pick the NFT

Release draws from what the pool holds. If a specific piece matters to you, the marketplace is the right venue — a pool is for converting, not for choosing.

The randomness is not VRF-grade

Selection uses recent slot hashes, which means nobody gets a preview, but it is not the verifiable randomness GraveDraw uses for prizes. We would rather name the difference than let the two sound identical.

A floor only holds while the pool is funded

The rate is enforced by the program, but it can only pay out what the pool contains. Pool depth is visible before you swap, and it is worth looking.

Where it fits

We Value Your Privacy

We use cookies to enhance your browsing experience, analyze site traffic, and personalize content. By clicking "Accept All", you consent to our use of cookies. Learn more