How it works
The whole mechanism, in plain words.
Necropolis turns a dead memecoin into a position. You bury it on its own chain, NEAR verifies the burial, and if the coin objectively comes back you get most of it back, while every other grave shares the rest.
1 · Burial
Your token never leaves its chain.
- A grave address is derived. For every burial the contract has a fresh path,
bag/v1/<chain>/<token>/<your address>/<nonce>. NEAR Chain Signatures turn (contract account, path) into a Solana or Base address. No private key exists for it; only the Necropolis contract can ask the MPC network to sign for it. Before you send anything, the server derives it twice, offline and from the MPC network, and refuses if they differ. - You send the token there. One ordinary transfer from the wallet you already use. On Solana we pay the network fee and the grave account rent, and burying your whole balance closes your empty token account and refunds its rent to you.
- NEAR verifies it. After finality (Solana “finalized”, Base “safe”), the contract calls
verify_foreign_transactionon NEAR’s MPC signer. The MPC nodes read the grave’s token account (Solana) or the ERC-20 Transfer log (Base) themselves. The contract passes the hash of what it expects to see; the MPC contract rejects any mismatch. - A grave is minted. A NEP-171 token owned by your own key, as a NEAR implicit account (the hex of your Solana key, or your 0x address). You never need a NEAR wallet: actions are authorised by signing a message in Phantom or MetaMask, verified on-chain with
ed25519_verify/ecrecover.
2 · Death methodology
Death is measured, not declared.
Six signals, each scored from 0 (alive) to 1 (dead) against fixed anchors and combined with fixed weights into a death score out of 100. Model dm-1.0.
| Signal | Weight | Anchors | Basis |
|---|---|---|---|
| Liquidity | 25% | $50k → alive · $1k → dead, log scale | Solidus Labs: 98.6% of Solana memecoins ended under $1k of liquidity |
| Volume vs. peak | 20% | 30-day average ÷ peak 7-day average: 10% → alive · 1% → dead | Feder et al. / Gandal et al.: dead ≤ 1% of past peak |
| Daily volume (7d) | 15% | $10k/day → alive · $10/day → dead, log | Chainplay / Coinopsy anchors |
| Activity | 15% | unique traders 200 → 5 (or trades 400 → 8) | judgement call; raw counts are easy to fake, so weight is moderate |
| Dormancy | 15% | days since a day with ≥ $50 traded: 0 → 30 | Chainalysis: a pool is inactive after 30 days without transactions |
| Drawdown | 10% | -80% → alive · -99% → dead | deliberately low weight: TRUMP and FARTCOIN sat at -90% while very alive |
- Classes: Alive < 35 · Fading 35–59 · Critical 60–79 · Dead ≥ 80.
- Activity floor: 50+ traders a day, or $1,000+ a day of volume, caps a token at Fading, however far it fell.
- Fast path: under $1,000 of liquidity and no meaningful trade for 30 days is death even with thin history.
- Refusals: if under 55% of the weight can be measured, or there are fewer than 7 days of history, we say “not enough evidence” instead of guessing.
- Honest history: keyless price history covers about six months. When a token was already flat on day one, we report “dead for N+ days” and leave the cause undetermined instead of inventing a date.
- Provenance: every number shows its source (DexScreener, Jupiter, GeckoTerminal, RugCheck, honeypot.is) and fetch time.
3 · Resurrection
A pump is not a pulse.
Coroners report raw vital signs on-chain. The contract checks every observation against terms frozen into the plot when its first grave was dug. All conditions must hold at every observation:
- Liquidity ≥ $50k
- 24h volume ≥ max($25k, 10% of the pre-death peak daily volume)
- ≥ 100 unique traders in 24h
- Market cap ≥ max($250k, 5× the market cap at burial)
- Volume ÷ liquidity ≤ 20× (above that, volume is presumed wash trading)
- Flagged (non-organic) volume ≤ 30%
- ≥ 2 independent data sources agree
The first passing observation makes the plot stirring. It rises only after 14 consecutive days with at least 14 passing observations and no gap over 36 hours. A single failing observation is a false dawn: back to resting, counter incremented. On testnet the thresholds are identical but timers are compressed (6-minute window, 3 observations) so the rite can be demonstrated.
Why 14 days: TROLL’s April 2025 “revival” reversed 99% within weeks, and wash-trading campaigns on dormant Solana tokens recur roughly every 16 days (arXiv 2507.01963).
4 · Economics
Where the upside actually comes from.
There is no yield. The only value in the system is the buried tokens themselves, and they only matter if the coin recovers. Your share of them is a token, $BONES.
- When a plot rises, each of its graves is raised: 80% of its tokens go back to the owner, 20% (the tithe) to that chain’s ossuary address.
- $BONES (NEP-141, on the registry contract) is minted when you bury: one per dollar of ossuary weight, into your grave’s own NEAR account, so it travels with the grave NFT. It’s burned when your own coin rises, so supply grows as coins die and shrinks as they come back. Every mint and burn is logged on chain: see the log.
- The ossuary of each rising is split among $BONES holders by their balance at that moment, read from on-chain checkpoints. Buying $BONES after a rising gets nothing from it. 10% of the tithe (2% of the plot) is upkeep for the protocol.
- $BONES is transferable: sell your claim on future resurrections without waiting for one. Solana and EVM holders move it by signing a message; NEAR accounts use
ft_transfer. - Weight is a grave’s salvage value at burial: amount × 7-day average price, with each plot’s total capped at its real liquidity ($50–$25k). Tokens with a death score under 60 get unmarked graves: they can rise, but carry no weight.
- Who pays whom: the owners of a risen plot pay 20% of their recovered tokens to everyone else. A single dead bag is a near-worthless lottery ticket; a grave is a share in every resurrection that happens while it rests.
- What you give up: there is no early exit, and if the coin never recovers the tokens stay buried.
5 · Simulation
60 days, four futures.
A seeded simulation of the cemetery under different revival rates and attacks, using the same payout rules as the contract.
About 1 in 150 plots stages a real recovery within 60 days.
- Plots risen
- 2 of 300
- False dawns caught
- 34
- Returned to owners
- $51.2k
- Shared by the ossuary
- $11.5k
- $BONES minted
- 311.8k
- $BONES burned
- 3.2k
- Supply on day 60
- 308.6k
- Paid per BONES held all 60 days
- $0.04
6 · Trust & security
Who can do what.
| Actor | Can | Cannot |
|---|---|---|
| NEAR MPC network | Sign for grave/ossuary addresses when the contract asks; attest foreign transactions | Sign anything the contract did not build (threshold MPC, 11 of 16 nodes) |
| Necropolis contract | Build payout transactions: raise (owner + ossuary only), ossuary claims (pro rata only) | Send buried tokens anywhere else; mint a grave without a matching MPC attestation |
| Coroner (Sexton) | Appraise burials (value, weight); report vital signs | Move tokens; fabricate a deposit; decide resurrection (the contract does) |
| Relayer (Sexton) | Pay fees; broadcast signed transactions anyone could broadcast | Redirect a payout: destination accounts are derived on-chain |
| Owner (you) | Transfer the grave, set an epitaph or payout address with a wallet signature | Withdraw before the plot rises |
| Contract owner key | Add/remove coroners; set NFT base URI | Change a plot's frozen terms or touch buried tokens |
The coroner is the main trust assumption. A dishonest coroner can make a plot rise early, which pays owners back early and sends tithe to the ossuary, or never let it rise; it can mis-appraise weights. It cannot steal buried tokens. Hardening path: multiple independent coroners with on-chain quorum, and observations signed by the MPC network’s foreign-chain reads where possible.
7 · Limits
Sybil limits and failure cases.
- Fake dead tokens to farm the ossuary: weight is capped by the plot’s real liquidity and needs a death score ≥ 60. Farming weight requires locking real liquidity in a token that then has to stay dead. Residual risk: liquidity-time is cheap for a patient attacker; documented, not solved.
- Faking a resurrection is unprofitable for the plot’s own buriers: they pay 20% to everyone else and only get their own tokens back sooner.
- Duplicate burials: each origin transaction and each grave path can become exactly one grave.
- MPC verification fails or times out: the pending burial is released and registration can be retried; tokens are already safe in the grave address.
- Burial into a plot that started stirring: the deposit is still registered (never stranded) but earns no weight.
- Solana payout expires before broadcast: raising can be re-signed; a second execution fails because the grave account is empty.
- Base payout gas: the relayer tops up the grave address; EVM payouts use fixed nonces so re-broadcasting is safe.
- Ossuary claim on Solana that never lands: the claim is released when signing fails; a landed-then-lost claim needs coroner attestation to re-sign (documented limitation).
- Ineligible tokens (freeze authority, permanent delegate, transfer hooks or fees, honeypots, transfer taxes) are refused before any transfer.
Not affiliated with necropolis.fund (a Robinhood Chain bonding-curve project). This Necropolis buries Solana and Base tokens and verifies them on NEAR. Source and contract: github.com/BoyofMars/necropolis. Verify everything →