1. What a deed is
Every coin launched through Deed, or registered here by its creator, gets exactly one deed: a Metaplex Core NFT in the Deeds collection. The deed is the right to the coin's creator fees. Whoever holds it at the moment of a claim is paid. Sell the deed and the fees go to the buyer from the next claim on.
Nothing is promised about how much a coin earns. Most coins earn close to nothing; the market shows every deed's real fees so a price can be judged on them.
2. Where the money goes
| Every claim | 90% to the deed's holder, 10% to the treasury (buys back and burns $DEED) |
|---|---|
| Sale on Deed's market | the seller gets 95% of the price, 5% royalty to the treasury |
| Launch auction sale | the dev gets 100% of the price, no royalty |
| Sale on Tensor / Magic Eden | 5% Core royalty to the treasury (the collection's Royalties plugin) |
| While listed or on auction | claims pay the seller (the listing holds the deed, the seller still owns the fees) |
| Burned deed | every claim sends 100% to the treasury |
| Launch fee | none. The dev pays only rents: pump.fun's for the coin, about 0.0063 SOL for the deed record, 0.0052 SOL for the Core asset and 0.00089 SOL that keeps the fees vault open (about 0.0125 SOL in all; the auction's listing account adds about 0.0016 SOL, returned when it closes) |
The numbers are constants in the program: TREASURY_BPS = 1000, ROYALTY_BPS = 500, FEES_FLOOR = 890 880 lamports.
3. Launch a coin
- Pick a picture, name and ticker. The site uploads them to IPFS through pump.fun's own metadata upload.
- One transaction, signed by your wallet: the program calls pump.fun's
create_v2with the coin's creator set to the deed's fees vault (a program address), mints the deed, and (optional) your first buy follows as a plain pump.fun instruction in the same transaction. - The deed goes to your wallet, or onto a one-hour Dutch auction: the price falls in a straight line from your start price to your floor; the first buyer takes it. Unsold after the hour, anyone can settle it back to you.
The coin is an ordinary pump.fun coin: it trades on the curve and graduates to PumpSwap as usual. Only its creator is the vault, so every creator fee, on the curve and after graduation, comes to the deed.
4. Register a coin you made
A pump.fun coin you created elsewhere can get a deed too. pump.fun lets a creator set a fee sharing config once. Registering does, in one transaction signed by the creator wallet:
create_fee_sharing_config(if the coin has none yet) andupdate_fee_shares: 100% to the deed's fees vault. pump.fun then locks the config (admin revoked): it can never be changed again.register_existing: the program checks the config on chain (owner, address, the mint, exactly one shareholder = the vault at 10 000 bps, locked, admin = the signer), reads the coin's real name and ticker from the mint, and mints the deed to the creator.
Only the coin's creator (the config's admin) can register it, so nobody can grab a deed for someone else's coin. It is permanent.
5. Claims
A claim has two halves, both permissionless: pump.fun's own collection moves the waiting fees into the deed's vault (collect_creator_fee for the curve and PumpSwap, distribute_creator_fees for registered coins; PumpSwap pays in WSOL, which unwrap_fees turns back into SOL), then claim pays out everything above the vault's rent floor: 90% to the current holder, 10% to the treasury.
The holder is read from the Core asset's owner field at that moment. The transaction has to name that wallet; any other is refused (WrongHolder). The registry's keeper claims every deed with fees waiting every hour; anyone can press it sooner on the deed's page.
6. Selling a deed
- Deed's market:
list(price)moves the deed to its listing account;buy(max_price)pays the seller and the royalty and hands the deed over;delistreturns it. Fees claimed while listed still go to the seller. - Launch auction:
price = start - (start - floor) × elapsed / 3600. It cannot be delisted; after the hour it cannot be bought andsettlereturns it to the dev. - Anywhere else: a deed is a normal Core NFT. Tensor, Magic Eden or a plain transfer all work; the next claim pays the new owner.
Market yield = 30 days of the holder's 90% × 12 ÷ asking price. It is past fees, not a forecast.
7. Chain of title
Each change of hands gets a numbered stamp on the deed. The program compares the asset's owner with the holder it last recorded; a different wallet is a new stamp (number, date, new holder). This happens inside every claim, sale, listing and in stamp, which anyone can call. The deed keeps the last 12 stamps and the full count; the picture shows the newest twelve and "+N" for older ones. A sale and a sale back between two bookings would show as no change.
8. Frames
| Paper | from the start |
|---|---|
| Copper | 1 SOL of lifetime fees |
| Silver | 10 SOL |
| Gold | 100 SOL (the frame glints on the site) |
| Obsidian | 1 000 SOL (glints) |
The tier, lifetime fees and transfer count are on chain in the asset's Attributes plugin and updated by the program at every claim, sale and stamp.
9. The picture
A 96 × 128 pixel title document drawn by a deterministic renderer from the deed's own data (shown at × 6). Two coins can never produce the same deed.
| Portrait | the coin's picture at 40 × 40, quantised to a palette built from its own colours, 4 × 4 ordered dither, a 1-pixel contour where it changes sharply |
|---|---|
| Paper | tinted by the coin's most saturated colour |
| Guilloche frame | 48 modules × 4 symmetries × 6 line weights, chosen by the mint address, in the tier's metal |
| Corner medallions | one of 24 motifs (key, wheat, anchor, tower, serpent…) by the mint address |
| Wax seal | one of 32 glyphs, wax in the coin's colour, pressed over the portrait's corner |
| Serial | Deed No. in order of issue |
| Signature | a cursive stroke whose letters, height and slant come from the dev's wallet |
| Watermark | the portrait's silhouette in the paper, lifted on hover |
| Stamps | the chain of title (section 7) |
The image marketplaces show is rendered by /api/deed/<mint>.png from the on-chain record; the same code runs in the browser for the printing press.
10. Addresses
| Program | not deployed yet |
|---|---|
| Deeds collection | - |
| Treasury | - |
| Config account | - |
| $DEED | at launch |
| pump.fun | 6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P |
| pump.fun fees | pfeeUxB6jkeY1Hxd7CsFCAjcbHA9rWtchMGdZ6VojVZ |
| Metaplex Core | CoREENxT6tW1HoK8ypY1SxRMZTcVPm7R94rH4PZNhX7d |
| IDL | /idl.json |
11. Program instructions
| Instruction | Signer | What it does |
|---|---|---|
| launch(name, ticker, uri, auction?) | dev + new mint | creates the coin on pump.fun (creator = fees vault), mints the deed to the dev or starts the one-hour auction |
| register_existing | coin creator | checks the locked 100% fee sharing, mints the deed |
| claim | anyone | pays the vault's balance above its floor: 90% holder, 10% treasury; books lifetime, tier, stamp, attributes |
| stamp | anyone | records a change of hands |
| list(price) | holder | fixed-price listing on Deed's market |
| delist | seller | takes a fixed listing back (not the launch auction) |
| buy(max_price) | buyer | pays the current price (5% royalty except the launch auction), takes the deed |
| settle | anyone | returns an unsold launch auction to the dev after the hour |
| unwrap_fees | anyone | closes the vault's WSOL account so PumpSwap fees become SOL |
| init_config / update_config / set_admin / refresh_uri | admin | collection, treasury (also the royalty recipient), metadata base URI, pause for new deeds. The admin cannot move fees, deeds or listings. |
12. Accounts and seeds
| Account | Seeds (program) | Holds |
|---|---|---|
| Config | "config" | admin, treasury, collection, base URI, deed count, paused |
| Authority | "authority" | update authority of the collection and every deed |
| Deed record | "deed", mint | serial, asset, dev, kind, name, ticker, minted at, lifetime, paid out, tier, holder, transfers, 12 stamps, sales |
| Fees vault | "fees", mint | SOL: the coin's creator (launched) or 100% shareholder (registered) |
| Deed asset | "asset", mint | the Core NFT |
| Listing | "listing", mint | seller, prices, start, end, launch flag; owns the deed while listed |
13. Errors
14. Site API
| GET /api/deeds | every deed with holder, listing, fees (24 h, 7 d, 30 d, lifetime, waiting), price, yield |
| GET /api/deed/<mint> | the deed's metadata JSON (the asset's uri); ?full=1 adds the record |
| GET /api/deed/<mint>.png | the rendered deed, 576 × 768 (?s=1 for 96 × 128) |
| POST /api/tx | builds the transaction for an action; your wallet signs it |
15. Check it yourself
- A launched coin: on pump.fun or Solscan, its bonding curve's creator is the address from seeds ("fees", mint) of the program.
- A registered coin: its sharing config (pump fees program, seeds "sharing-config", mint) lists that vault at 10 000 bps with admin revoked.
- The deed: the Core asset at seeds ("asset", mint); its owner is who gets paid; its attributes carry tier, lifetime fees and transfers.
- A claim: the transaction shows the vault paying 90% to the owner and 10% to the treasury.
16. Risks
- Fees depend on trading. A quiet coin pays nothing and its deed is worth nothing.
- pump.fun controls its own programs: it can change fees, and its admin can reassign a fee sharing config in a community takeover. The deed then stops earning.
- A deed is the right to fees as they come, not a share, a promise or an investment product.
- The program is upgradeable by the admin key for fixes; the admin has no instruction that moves fees, deeds or listings.