How it works
SkellyKuntz is 1,100 skeleton NFTs on Robinhood Chain. Minting one is free on OpenSea, two per wallet. If you held one on Ink, you were sent one here too. Nothing to claim, no gas.
There's also a token, $SKELLY, on the Pons launchpad. Every time someone buys or sells $SKELLY, a small fee is paid. Half of that fee goes into a pot for the skeletons. The other half goes to the project treasury, which pays for running SkellyKuntz: the hourly payout bot and its gas, marketing, listings, new art and development. That 50/50 split is written into the contract and nobody can change it, ever.
A Skelly sitting in your wallet doesn't earn anything by itself. You have to wake it up (we call it raising) by burning 25,000 $SKELLY. From the next hour on, your Skelly gets a slice of the pot. The pot is turned into tokenized stocks, things like Apple, Nvidia and Tesla, or into USDG if you'd rather, and your slice is put inside your Skelly.
That last part matters. The money belongs to the Skelly, not to your wallet. Take it out whenever you like. Or sell the Skelly, and whatever's inside goes to the buyer.
Want a bigger slice? Burn more $SKELLY to level up. Merge two or three of your Skellies into one. And if you're lucky enough to draw one of the 11 relics, it earns 50% more, forever.
The names you'll see around here: the pot machine is the Crypt, the fee splitter is the Tithe, and each Skelly's vault is its Ossuary. Under the hood they're just contracts. We like skeleton words.
Where the money comes from
If either side ever fails to receive its money, that share just waits for it. The other half still goes out. Nothing can block the pot.
Inside the Crypt, your slice is swapped into whatever you picked: up to three things, adding up to 100%. Didn't pick? You get USDG. Swaps go through real Uniswap pools with a 30-minute price check. If a price looks off or the amount is tiny, that ETH simply waits for the next hour instead of being swapped badly.
Under the hood: Tithe.collect(), Crypt.closeCycle(), Crypt.bestow(), Crypt.setPortion(tokenId, idx[], bps[]), OwedRolled.
Wake up, level up, merge
- Wake up (raise). Burn 25,000 $SKELLY and your Skelly starts earning from the next hour. If you sell it, it goes back to sleep and the new owner burns 25,000 $SKELLY to wake it again. Its level and any merges stay with it through every sale. Sending it to yourself doesn't put it to sleep.
- Level up (ascend). Burn more $SKELLY to climb five levels. Each level is a bigger slice. You only ever pay the difference to the next level. No refunds, and no going back down.
- Merge (absorb). Put two or three of your Skellies together into one. The others are gone for good and the total supply shrinks. The survivor gets their earning share added on, plus a bonus: +20% for two bodies, +30% for three. It costs 50,000 $SKELLY to merge a second body and 100,000 more for a third. Anything the merged Skellies had inside moves to the survivor.
- Pick what you get paid in. Choose up to three stocks (or USDG) and the percentages. Change it whenever you want. It only affects future hours.
- Take it out (unearth). Send everything your Skelly holds to your wallet, or just one thing at a time.
Every burn is you sending $SKELLY to the dead address, signed by you. The contracts never hold your tokens. Under the hood: raise, ascend, absorb, Crypt.setPortion, Ossuary.unearth, unearthOne, Crypt.unearthOwed.
Levels
Your slice of the pot depends on your Skelly's share points. The level sets the base. Merges add on top. A relic multiplies the whole thing by 1.5 at the very end.
| Level | Total $SKELLY burned | Cost to get here | Share points | If it's a relic |
|---|---|---|---|---|
| Awake | 25,000 | 25,000 | ×1.00 | ×1.50 |
| Level 1 | 75,000 | 50,000 | ×1.40 | ×2.10 |
| Level 2 | 150,000 | 75,000 | ×1.90 | ×2.85 |
| Level 3 | 300,000 | 150,000 | ×2.50 | ×3.75 |
| Level 4 | 850,000 | 550,000 | ×3.50 | ×5.25 |
Merging adds a bonus on top: ×1.2 with two bodies, ×1.3 with three. Example: three awake Skellies merged into one make (100+100+100)×1.3 = ×3.90 share points, for 75,000 $SKELLY to wake the three plus 150,000 to merge them. Under the hood: RANK_BURN / RANK_POWER.
Relics
Pictures 1 to 11 are the eleven rarest in the whole collection, counted by how rare their traits are. Whoever draws one of these gets a relic for life: it earns 50% more than a normal Skelly at the same level. Merge a relic into another Skelly and the bonus is lost. Merge others into the relic and the bonus covers everything.
Under the hood: isRelic(tokenId), RELIC_BONUS_BPS = 15,000.
What you get paid in
This is the menu. Each one is a real tokenized stock (or USDG) with a public Uniswap pool on Robinhood Chain. The list can grow, but nothing on it can be removed or reordered. USDG is last on purpose: it's what you get if you never pick.
| # | Name | What it is | Token |
|---|---|---|---|
| Loading the menu from the Crypt… | |||
The Ink airdrop
SkellyKuntz started on Ink chain (). 160 of the 1,100 were minted there by 62 wallets, but the art was never revealed: every one of them still shows the same placeholder card. That collection is retired.
- Everyone who held a Skelly on Ink gets one here, sent straight to the same wallet. Nothing to claim, nothing to sign, no gas.
- The airdrop is sent by the project before public minting opens, and it's capped at 200 Skellies in total: 160 for Ink holders plus up to 40 for giveaways. After the first public mint, that door locks forever.
- Nobody picks their art, us included. Since Ink never revealed, no one had a specific picture to keep. Airdropped Skellies are dealt their picture at the reveal, from the same beacon as everyone else.
- We take a fresh snapshot of Ink holders right before the airdrop goes out.
Under the hood: migrate(address[], uint16[]), MIGRATE_MAX = 200.
The art is locked
Before the first Skelly existed, we wrote one fingerprint of all 1,100 finished images into the contract. It can never change. Anyone can recompute it from the images and check that it matches.
Nothing is decided at mint. Every Skelly wears the same shrouded card until minting closes. Then all 1,100 pictures are dealt at once, by a number nobody can choose.
How the pictures are dealt
- When minting closes, the contract picks a future drand round: about two minutes ahead.
- drand is a public randomness network. Every three seconds, a group of independent organisations jointly signs the round number. No one of them can produce that signature alone, and nobody can produce it early.
- Two minutes later that signature is published. Anyone can send it to the contract. The contract checks the signature itself, on-chain, so a fake one is simply rejected.
- That signature becomes the seed, and the seed deals every picture at once. It's a shuffle: every Skelly gets exactly one picture and no picture goes to two Skellies.
Nobody can aim for a relic, including us. The round is fixed before its number exists, we can't run it again, and once it's dealt anyone can recompute the whole thing from the seed and check their own Skelly.
If fewer than 1,100 Skellies are minted, only that many pictures are dealt. The rest, relics included, simply never enter circulation.
Under the hood: provenanceHash = SHA-256 over the ordered SHA-256 hashes of the 1,100 images. sealSummoning() fixes the round (anyone can call it 30 days after minting starts, so a lost key can't leave the art shrouded); unveil(signature) verifies the drand quicknet beacon through the BLS12-381 precompiles and sets the seed; formOf(tokenId) is the shuffle. If drand ever missed that exact round, refixUnveilRound() points at a fresh one a week later.
Contracts
The code names on this page are the real function names in the deployed contracts: raise, ascend, absorb, powerOf, isRelic, bonesBurned, souls, Crypt.setPortion, Crypt.closeCycle, Crypt.gather, Crypt.bestow, Ossuary.unearth, Ossuary.holdingsOf, Tithe.collect, Tithe.split.
The fine print
- Pons can move the fee. The Pons team can change who receives the creator fee of any token launched on Pons, after a 3-day delay. Today that's our splitter. If they ever changed it, the pot would stop filling. We can't change the split ourselves, and we can't stop Pons from using that power either.
- Any wallet works. Plain wallets, smart accounts, multisigs and OpenSea's "pay from another chain" option can all mint. Nothing about the art is decided at mint, so there is no reason to turn anyone away.
- Hourly needs someone to press the button. The chain doesn't run itself. We run a bot that presses it every hour. If our bot ever stops, anyone can press the same buttons. Nothing is lost, only delayed.
- Swaps can wait. If a price looks off or the amount is tiny, that ETH waits for a later hour instead of being swapped at a bad price.
- Burns are forever. Waking up, leveling up and merging send $SKELLY to the dead address. No undo, no refund. Selling a Skelly puts it to sleep and the buyer pays to wake it.
- What the project's admin key can do. Set the image links before the reveal, add new things to the payout menu, tune the swap limits, and rescue tokens stuck in the Crypt. What it can't do: change any burn amount, the levels, the relic bonus, the fee split, the supply, or touch anyone's Skelly or what's inside it.
- Tokenized stocks are tokens. The stocks on the menu are made by other companies on Robinhood Chain. Their prices and pools aren't ours.
- The art. Some trait names were changed to generic ones. The pictures are what they are.