How Ponsi works
Three contracts and one rule: nothing on this site shows a number the contracts cannot honour. Everything below is enforced in code unless it says otherwise — and where something is a promise rather than a guarantee, it says so.
Buying one
Minting
A pyramid costs twice. $3.666 worth of ETH, and 100,000 $PONSI. Both are taken in the same transaction that mints the token: the ETH goes to the splitter, the $PONSI goes to 0x…dEaD, an address nobody holds a key to.
The $PONSI is not burned in the totalSupply sense — $PONSI is an external token that may have no burn function at all, so the tokens are moved somewhere unreachable instead. The effect on circulating supply is the same and you can verify it by reading that address's balance. A claim that the supply itself falls would be false, so this site does not make one.
Twenty at once costs what twenty separate mints cost. This sounds obvious and is the reason this contract exists in the shape it does. The predecessor project split the burn into a separate contract that counted spent passes off a per-transaction nonce, while the mint made one token per item — so burning for four and minting four in one call took a single pass and left three. Nothing here reconciles a payment after the fact, so there is no second counter to disagree with the first.
There is no reveal
All 3,333 artworks are generated and pinned before the mint opens. The seed they come from is public and set at deploy. Nothing is hidden and there is no placeholder to wait through — tokenURI resolves the instant a token exists.
What is random is the mapping. When you mint, your token draws an artwork out of a shrinking pool, using the hash of the previous block — settled, so it cannot be ground out by resubmitting, and unknown when you signed.
That is what a delayed reveal is normally for. Sequential ids plus predictable traits means a bot can work out which id will be the All-Seeing and place itself on it. Shuffling the assignment gets the same protection without anyone staring at a grey square for a day. Minting from a contract is blocked, because otherwise a bot could mint, look at what it drew, and revert the whole transaction if it were common — rerolling for free.
One residual risk, stated rather than buried: on a chain with a single sequencer, whoever orders the block has some influence over the hash the draw reads.
Rarity
Six materials, and eleven trait categories on top. The material is decided on chain; everything else is cosmetic and lives in the metadata. Each trait is drawn from its own slice of the token's seed, so a rare eye does not make a rare sky any more likely.
| material | share | count | weight in the chamber |
|---|---|---|---|
| Sandstone | 44.5% | 1,482 | ×1 |
| Limestone | 26.7% | 889 | ×2 |
| Granite | 15.9% | 530 | ×4 |
| Obsidian | 8.6% | 288 | ×8 |
| Gold | 3.7% | 123 | ×16 |
| All-Seeing | 0.63% | 21 | ×40 |
Counts are from the real derivation at the deployed seed, not from the weight table — a 3,333-token draw lands a little off its own odds, and the rarest tier is where that shows. The catalogue on the mint page renders one of each, from the same seed.
The chamber
The chamber
Put a pyramid in and it earns for as long as it stays. Rarer stone earns faster, in the proportions above — and pyramids that share an eye earn more standing together than apart, which the next section covers.
The rate is the pot divided by the time left, split by weight. That is the whole mechanism and it is the point: there is no rate to set independently of the money, so no configuration exists in which the counter promises something the pot cannot pay. The rate rises when the pot is topped up and falls when more pyramids join.
Your share is your weight over the total staked weight. Fewer stakers means a bigger share each — genuinely, and it is worth understanding why: the pot is split among stakers only, so at 20% participation a staker collects roughly five times their own share. Those cents come from holders who did not stake. It is a transfer between holders, not new money.
Taking a pyramid out keeps everything it has already earned. You can claim afterwards, and you can always withdraw — including if staking is paused.
Alignment
The stone ladder rewards what you drew. Alignment rewards what you assembled: pyramids staked together that share an Eye earn more than the same pyramids would apart. Each one past the first adds +10% to that whole group's weight, up to +100%.
The bonus belongs to the group, not to the newcomer. Stake a second Weeping eye and both of them move up — the one already standing included. Take one out and the ones left behind lose their share of it. That is why the chamber shows your matching groups rather than a number per token: alignment is a property of the set, and it changes the moment a neighbour arrives or leaves.
Nothing here is a new source of money. A multiplier changes how the pot is divided, never how much it pays — the rate is still the pot over the time left. An aligned circle takes a larger slice of the same pot, which means it takes it from stakers who did not align.
Eye is the only trait that counts, and deliberately so: it is the focal point of every pyramid and carries the widest spread, twenty variants from Open at 14.5% down to Sigil at 0.4%. Matching on a trait with three variants would be an accident rather than a collection.
Standing room
A wallet may have four pyramids working for free, and can buy up to five expansions of two places each — so one room tops out at fourteen. Those three numbers are constants in the bytecode and nobody, the owner included, can change them.
The cap exists because without one the chamber rewards nothing but size. A wallet holding two hundred pyramids would stake all two hundred, take a proportional slice of every epoch, and no amount of rare stone or alignment would close that gap for anybody else. Capped, the question becomes which fourteen rather than how many — which is also what makes alignment worth thinking about, since a circle you cannot extend is a circle you have to curate.
A step costs ETH and burns tickets, the same as a mint does. Standing room is the scarcest thing here, and letting it be bought with ETH alone would have made it the one purchase in the system that leaves the supply untouched.
Both figures compound by half again each step — $5, then $7.50, then $11.25, $16.88, $25.31. Geometric rather than linear because the cap is only five steps deep: at +50% the last one costs five times the first, which is what makes filling a room a decision instead of a formality. Over five terms, linear growth barely separates the ends.
It is worth being precise about what the operator can do with those numbers. The ETH stays in the pot and the tickets go to 0x…dEaD.The chamber has no address it can send ETH to except through a staker's claim and the one-time escape hatch, and buying room adds no second exit — so an owner who priced expansion absurdly high would be closing a sink, not opening a tap. The four free places cannot be priced at all, and the growth figure is refused below par, since a ladder that ran backwards would invert the only thing it is for.
Which means expanding your room pays everybody, including you in proportion to what you already have working. The ETH raises the pot, the pot raises everyone's rate, and the tickets stop existing.
The chamber reads which token to burn from the collection rather than holding its own copy, so swapping the burn token moves both burns at once. If no token is set, a step costs only ETH — the same way a mint does.
Where the money goes
Every mint and every resale royalty lands in a splitter that divides it 70% to the pot, 30% to the project. The share and the pot address are immutable: nobody, including whoever deployed it, can move the split toward the project wallet or redirect the pot's cut afterwards.
It does not forward on arrival. receive() sits in the mint path, so a recipient that reverted would have reverted the mint for everybody. Instead each side pulls its own share independently, and neither can block the other.
A pot holding 70% of what buyers paid returns, spread across those same buyers, 70 cents on the dollar. Nothing can lift that — it is not caution, it is what the pot contains. Stakers can clear 100¢, but only because the pot is shared among stakers and not everyone stakes.
The one input that brings money in from outside is secondary volume: a royalty on a trade somebody chose to make. It is small per hour and it does not run out, which is the opposite trade-off to the mint pot: the mint fills the pot once and then never again, while royalties trickle for as long as anyone trades. At 5% of a month of volume equal to the whole mint, royalties add roughly a fifteenth of what the mint put in.
What you are trusting
What the operator can and cannot do
- ▪Open and close the mint
- ▪Change which token a mint burns — until it is locked, see below
- ▪Retune the $PONSI price, inside a band fixed in the bytecode
- ▪Set the ETH price, and the metadata URIs
- ▪Open a payout epoch over any duration
- ▪Retune tier weights, the alignment bonus and the price of standing room, and pause new staking
- ▪Withdraw the part of the pot not yet credited to a staker — once, without notice
- ▪Mint without burning
- ▪Change the burn token once it has been locked — ever
- ▪Change an artwork after it has been drawn
- ▪Take a token from a holder, or from the chamber
- ▪Touch rewards a staker has already earned
- ▪Set a payout rate above what is funded
- ▪Move the 70/30 split, or redirect the pot's share
- ▪Hold ETH in the collection — it has no withdraw
The chamber has one withdrawal, usable once, that moves money not yet credited to any staker. It exists because a contract with no recovery path strands everything in it if it turns out to be wrong.
It cannot reach earned rewards — the accumulator is advanced first, so every second earned is credited and protected before anything moves, and a staker can always still claim what the counter showed them. It is immediate: an earlier draft announced it a week ahead, and that was dropped in favour of announcing over Twitter and Telegram. A timelock binds whether or not anyone posts; this does not. Worth knowing which one you are relying on.
The burn token, and the lock
A mint destroys ticketsPerMint of one specific token. Which token that is was originally welded in at deployment and could never change. It no longer is, and the reason is practical rather than principled: $PONSI launches separately, so a collection deployed before it existed had no correct address to point at.
lockTicket() is what buys the guarantee back. It takes no argument, works once, and afterwards there is no path in the contract that writes to ticket — the same promise the original immutability made, made later and in public rather than silently at construction.
What a swap does not touch: tokens already burned stay burned, and every pyramid already minted keeps the artwork it drew. It only decides what the next mint has to destroy.
Reference
Contracts
Everything is verifiable. The art seed is public, so anyone can recompute any artwork's traits with seedOfArtwork and check the pinned files against the chain — before a single token is minted.