EmoFlywheel · Documentation

How the flywheel
actually works.

Two fee streams, two jobs. Token trades fill a pot of ether, split by 1111 of the 2222 emobox — half the collection, picked at random. Emobox trades do something else entirely: every wei of that royalty buys $EMOCAT and burns it. This page walks both, end to end, with nothing hidden.

The loop in one picture

Three things happen in a fixed order, and each one feeds the next. Nothing in this diagram is a promise about price — it is a description of where money moves.

Emobox trading marketplace royalty → protocol 100% Buyback & burn $EMOCAT bought, sent to 0x…dEaD less supply $EMOCAT trading pool fee 95% → the pot 5% → dev, and nothing else 1111 winners paid in ether, to their own wallet a box that pays is a box worth trading

EmoProtocol contract — 0x956ABB916B64d4EdAc4443fa5A79c4B3Ce2A2CE3

Emobox supply
2222fixed, never grows
Winners per round
1111exactly half, every time
Paid in
ETHno token to hold or sell
Dev share
5%a constant in the contract

Step oneWhere the money comes from

The protocol mints nothing and holds no asset of its own. Every wei it handles arrives as a trading fee, from two independent places — and the two are spent on different things.

SourceHow it arrivesWhere it goes
Emobox royalties
NFT trades on the marketplace
Pushed straight to the protocol address as plain ETH 100% → buyback & burn
$EMOCAT pool fees
every token trade
Pulled from the pool contract — by anyone 95% → the pot
5% → dev

That 5% is the only cut anyone takes, and it is written into the contract as a constant. The owner can change the address it goes to, but not the number — so nobody can quietly raise it later.

Nobody owns the trigger

Collecting the fee is a public call. There is no operator privilege on it, because every destination is fixed in the function itself — the only thing the caller decides is whether to spend the gas. If our bot stops, any holder can keep the loop turning, and the same is true of settling a draw.

The protocol measures what came in the only way that cannot be lied to: it compares its own balance before and after the call. It does not trust a return value, and it does not need to know how the pool works.

Step twoBuyback & burn

Royalties from emobox trading never reach the pot. They are used to buy $EMOCAT on the open market and send it to 0x…dEaD — an address with no private key, from which nothing can ever return. The tokens are gone for good.

  • Every burn is a real on-chain purchase, at the market price, with a minimum-output limit set before the transaction is sent.
  • The ether and the tokens move in one transaction with no branch in between: ether out, $EMOCAT in, $EMOCAT to the dead address. There is no step where either could go anywhere else.
  • Burning does not lower the total supply number the token contract reports — it lowers the amount in circulation. The dashboard shows both.
  • Anyone can verify a burn: the dashboard lists every transfer into the dead address, straight from the block explorer.

Step threeReward rounds

There is no personal balance to watch and nothing to top up. Fees collect into a pot, and when a round opens everybody's emobox is in the draw.

  1. The fee is collected
    Five percent goes to the dev address, the rest joins the pot. The same call opens the round, so collecting and drawing are not separate chores somebody has to remember.
  2. The round opens and a future block is named
    The pot is locked. The contract writes down a block number that has not been mined yet — its hash will decide the winners. At this moment nobody, including us, can know the outcome.
  3. A few seconds later, the draw is settled
    Once that block exists, its hash becomes the seed. The seed shuffles the 2222 ids, and the first half of that shuffle wins — exactly 1111 emobox, every single round. The pot is divided equally among them.
  4. Winners collect whenever they like
    Nothing expires. The reward sits in the contract until the owner of that emobox withdraws it, in one transaction, for as many rounds as they have won.
What happens to the remainder

A pot rarely divides into 1111 equal parts without a remainder. Those few wei are not burned and not kept — they roll into the next round's pot. Over time every fraction of a fee reaches a holder.

Step fourHow the draw is kept honest

A random draw with real money on it is exactly where these systems usually rot. The obvious approach — pick a random number in the same transaction that pays out — is broken, because whoever sends that transaction can simulate it first, see the result, and throw it away until their own NFTs win. Here that is impossible, by construction.

  • The seed comes from the future. When a round opens, the contract commits to a block that does not exist yet. Its hash cannot be predicted or negotiated.
  • The draw is a separate step. Settling happens after that block is mined, so retrying is pointless — the answer was fixed the moment the block was produced.
  • Anyone can settle it. Not just us. If the bot goes down, any holder can finish the round, so a pot can never be held hostage.
  • Anyone can check it. Winning is a pure function of the seed and the token id. Take the seed from the settle transaction and you can recompute every winner yourself.
The honest caveat

A block hash is chosen by whoever produces that block. On a chain with a single sequencer that is a real, if different, trust assumption — it is not we who could bias a draw, but the block producer. We use this method because the chain currently offers no verifiable randomness service; if one appears, moving to it is a contract upgrade we would announce openly.

Blocks here take about a tenth of a second, and a block hash stays readable on-chain for 256 blocks — roughly 25 seconds. If the draw is not settled inside that window, the seed is unreachable and the round simply gets a new target block. The pot is never touched by this; only the timing slips.

Step fiveGetting paid

The contract does not push ETH to a thousand addresses — that cannot fit in a single transaction, and one holder with an unusual wallet could break it for everyone. Instead each winner pulls their share.

In practice: open the dashboard, type your emobox number, connect your wallet, and press claim. If that box has won nothing, the button says so and the contract would reject the call anyway.

  • The payout follows the NFT, not the wallet. Whoever owns the emobox at the moment of withdrawal receives the ETH. Anyone can press the button — the money still goes to the owner, so the only thing a stranger can do is pay your gas for you.
  • Unclaimed rewards travel with a sale. If you sell an emobox with a round still unclaimed, the buyer can withdraw it. The dashboard shows what is waiting behind any given id, so check before you list.
  • Nothing expires, and several rounds can be collected in one transaction.
  • If a wallet cannot receive ETH, the amount is parked in the contract under that address and can be withdrawn separately — the payout never fails silently.
If the winning box has not been minted yet

The draw runs across all 2222 ids, whether or not they exist yet — so a box that nobody has minted can win. That reward is not lost and it is not redistributed: it stays booked against that id, and the moment the box is minted its owner can collect every round it ever won, in one transaction.

You can look this up before minting. The dashboard's box lookup reads what is waiting behind any id — including ids that do not exist yet, because the lookup never asks who owns them.

A round, with real numbers

Illustrative figures, but the arithmetic is exactly what the contract does.

Fees collected this round4 ETH
Dev share — 5%0.2 ETH
Pot — 95%3.8 ETH
Winners drawn from the 22221,111
Paid to each winning emobox0.00342 ETH

Hold one emobox and you win roughly every other round. Hold ten and you will see around five of them pay out each time. Over many rounds it evens out — which is the point of drawing half the collection rather than a lucky few.

Every number in one table

Nothing here is adjustable except where the last column says so.

WhatValueCan it change?
Emobox collection size2222Never — fixed in code
Dev share of pool fees5%Never; only the receiving address can be changed
Share of fees that reaches holders95%Never
Emobox royalties → buyback & burn100%Never
Winners per roundexactly 1111Never — it is fixed at half the collection
Chance of winning a round50% per emoboxNever
Ids in the drawall 2222, minted or notNever
Reward assetnative ETHNever — the contract knows no other asset
Who can collect fees and settleanyoneNever
Who can trigger a burnus — the slippage floorThe owner can change which key
Delay before the draw~20 blocksOwner, within fixed bounds (5–100)

What can go wrong

Every system has failure modes. Here are the ones we designed for, and what actually happens when they hit.

If this happensThen
Our bot goes down Nothing stops. Collecting the fee and settling a draw are both public calls — any holder can do either. In the worst case a round is late, not lost.
The operator key is stolen The thief cannot send a single wei to themselves. What they can do is run the buyback at a bad price and pocket the difference through the pool, repeatedly — so it wastes royalties. The pot, the open round and every drawn reward stay untouchable. The defence is monitoring: the key is replaceable in one transaction, and the owner can pause everything.
The draw window is missed The round gets a new target block and is drawn later. The pot is untouchable in the meantime — it cannot be re-routed, only drawn.
The pot is tiny If it could not pay every winner even a single wei, no round opens and the money simply waits for the next fee. Nothing is lost or rounded away.
Something looks wrong The owner can pause the incoming side. Withdrawals of already-won rewards keep working — the pause deliberately does not touch them.
What the owner cannot do

Not take the fee share above 5%. Not change the odds. Not touch a pot that is waiting, a pot that has been drawn, or a reward waiting to be collected — those amounts are excluded from every rescue path in the contract. Not touch the royalties queued for the fire either. Not point the fee collector at the protocol's own address, the token or the swap, because the contract refuses all of them as targets. Not move a token out of the contract, because the only function that touches one sends it to the dead address.

Everything owed to holders is tracked as a single figure the contract calls reservedEth: the waiting pot, the open round's pot, drawn rewards not yet taken, and payouts that bounced. The one function that can send ether anywhere else is capped at the balance above that figure, and re-checks it afterwards. Holder money cannot be spent by accident, only withdrawn by the holder.

Questions

Do I have to do anything to take part?

Hold an emobox. Every id is in every draw automatically — there is no staking, no locking, no registration. The only action you ever take is withdrawing a reward you have won.

Is the burned $EMOCAT really gone?

Yes. It is sent to an address nobody holds the key to — mathematically unspendable. The token contract's own total-supply figure does not decrease, because a transfer is not a burn function, but those tokens can never move again.

Why do emobox royalties burn instead of paying holders?

Because they are two different levers. The pool fee pays you directly, in ether, every round. The royalty works on the other side: it takes $EMOCAT out of circulation permanently, which is what makes the pool worth trading in the first place. One is income, the other is the thing that produces it.

Do I need to hold $EMOCAT to earn?

No. The rewards are paid in ether and the draw looks only at emobox ids. $EMOCAT trading is one of the two things that fills the pot, but holding the token is not how you get paid.

What if I buy an emobox right before a round?

You are in that draw, in full. Eligibility is not weighted by how long you have held. What matters is who owns the id when the reward is withdrawn.

Can the team drain the pot?

No. Every wei the pot contains is counted in reservedEth, and the only owner function that can send ether out is capped at the balance above that figure — it reverts if it would dip below, and the check runs again after the transfer.

The contract holds no tokens between transactions, and the only function that touches one sends it to the dead address — so there is no second door.

Why does the draw need two transactions?

Because a single transaction cannot contain honest randomness. Whoever sends it could preview the result and discard unfavourable outcomes. Splitting the round into "commit to a future block" and "read that block's hash" removes the retry entirely.

The collection is not fully minted — do the unminted boxes still win?

Yes. Every id from 1 to 2222 is in every draw from the first round onward, minted or not. A reward that lands on an unminted box is held against that id indefinitely.

Whoever mints it later collects everything it won in the meantime. Nothing expires and nothing is redistributed, so the longer the collection stays partly minted, the more is waiting behind the boxes that are still out there.

What happens if nobody claims a reward?

It stays in the contract, assigned to that emobox, indefinitely. It is not redistributed and nobody else can take it. If the NFT changes hands, the new owner can withdraw it.

How often do rounds happen?

Initially, rounds will run every few hours. As volume increases and the pool reaches sufficient activity, rounds will become more frequent.

Where can I watch all this?

The dashboard reads everything live from the chain: the pot, every burn, every round with its winners, and what any given emobox has waiting.

This page describes how the contracts work. It is not investment advice, and holding an emobox is not a claim on anyone's revenue — the payouts are exactly the trading fees the system collects, no more.