01Abstract
A word on the name first. zAVA is not wrapped AVAX, shielded AVAX or a claim on AVAX. It is its own token with its own fixed supply, mined with AVAX and never redeemable for it. The lowercase z is a nod to where zAVA can go once it is claimed: a shielded pool, for anyone who wants their balance to be nobody's business.
Most tokens are printed and then sold. zAVA is mined and then held. There is no presale, no team allocation, no treasury of unissued supply. Every zAVA in existence was paid for with AVAX at a price the contract set in public, and the price only ever goes up.
A miner commits AVAX. After 24 hours the miner takes back 90 percent of it together with the zAVA it earned. The 10 percent that stays is split four ways by constants that cannot be changed: it buys zAVA from the market and burns it, it adds liquidity that is burned so it can never be pulled, it pays AVAX to everyone holding zAVA, and a small share funds operations.
Supply is fixed at 21,000,000 across 32 cycles. Each cycle mints half of what the one before it did and prices zAVA at twice the rate, Bitcoin's halving exactly. No cycle has a deadline. The supply is finished when miners finish it.
The whole design in one sentence: a rising price to enter, a permanent bid underneath, AVAX income for holding, and privacy for anyone who wants it.
02Why mine, and why AVAX
Bitcoin's distribution worked because nobody could get coins without paying for them and because the cost of getting them rose on a schedule everyone could read in advance. zAVA keeps both properties and drops the hardware. Instead of electricity, the cost is AVAX committed for a day; instead of a block subsidy, the reward is a share of a fixed cycle allocation at a published rate.
AVAX is the right asset to mine with for three reasons. It is the gas token of the chain, so every wallet on Avalanche already holds it. The C chain finalizes in about two seconds, so a mine, a claim and a buyback all settle while you watch. And its fees are low enough that a daily claim costs cents, which keeps small miners in the game.
The 90 percent return matters more than it looks. A miner's real cost is a tenth of the headline rate, so the headline can rise steeply across cycles without pricing anyone out, and the AVAX that is returned is the same AVAX that goes right back into the next mine.
03Mining
mine() with any amount of AVAX. Ten percent is retained immediately and routed to the four buckets. Your full zAVA reward is minted at that moment's rate and held by the Mine, which earns no dividends on it. A 24 hour clock starts.claim() any time after 24 hours. You receive 90 percent of your AVAX and your zAVA together. Every position has its own clock; one claim pays out all matured positions.The rate is a headline AVAX per zAVA that doubles at every cycle boundary, while each cycle's allocation is half the last. A mine that crosses a boundary is filled in two parts inside one transaction: what remains of the current cycle at the current rate, the rest at the next rate. Nothing is refunded, nothing is turned away, and the miner who happens to close a cycle gets no special price.
There is no minimum and no maximum. There is no whitelist and no referral. The rate is applied at commit time, so a claim can never be repriced by a boundary that passed while you waited.
Two things claim can do
claimAndMine() collects every matured position and commits the returned AVAX to the current cycle in the same transaction. One button, one gas fee, and the AVAX never leaves the system between days.
claim() also accepts a shielded note. Pass one and your zAVA is minted directly into the Shield, without ever appearing in a public balance. Privacy starts at the first claim, not at a later deposit.
Auto mode
Enroll when you mine (0.1 AVAX or more) and choose how far it runs: through cycle 3, through cycle 10, through cycle 32, any cycle you like. Once a position is 24 hours old, anyone may call rollover() on it. Rollover does what claim and mine would do for you and nothing else: mints your zAVA to you (or to your shielded note) and recommits your 90 percent into a new position in your name. There is no fee and no tip. There is no parameter that chooses where value goes, so whoever calls it cannot take anything, cannot roll you past the cycle limit you chose, and cannot roll a position you switched off. When the cycle passes your limit, or the rolled principal falls below 0.1 AVAX, auto ends and your last position waits for you.
The hopper
Every enrolled position that has matured and has not yet been rolled sits in a public queue, oldest first. Anyone may call rollHopper(n) to roll up to 50 of them in one transaction, and the site shows the hopper live with one button. Nobody is paid to press it, and three things keep it moving anyway: the operations bucket funds a keeper that empties the hopper once a day, so no position waits longer than that; every mine and claim on the protocol rolls the two oldest hopper positions as a side effect, about a cent of extra gas, so the busier the protocol is the faster the hopper clears; and anyone who wants their own position rolled now can roll the whole hopper in the same click.
04Supply and cycles
21,000,000 zAVA across 32 cycles. Cycle 1 mints 10,500,000, half the supply, the way Bitcoin's first epoch mined half of Bitcoin. Every cycle after it mints half of the one before at twice the rate. Because the allocation halves as the price doubles, the AVAX needed to mine out a cycle is the same in every cycle, from the first to the thirty second.
| Cycle | Allocation | Rate | Cumulative | Share |
|---|---|---|---|---|
| 1 | 10,500,000 | rate0 | 10,500,000 | 50% |
| 2 | 5,250,000 | 2 × rate0 | 15,750,000 | 75% |
| 3 | 2,625,000 | 4 × rate0 | 18,375,000 | 87.5% |
| 4 | 1,312,500 | 8 × rate0 | 19,687,500 | 93.75% |
| 5 | 656,250 | 16 × rate0 | 20,343,750 | 96.9% |
| 6 | 328,125 | 32 × rate0 | 20,671,875 | 98.4% |
| 8 | 82,031 | 128 × rate0 | 20,917,969 | 99.6% |
| 12 | 5,127 | 2,048 × rate0 | 20,994,873 | 99.98% |
| 32 | under 1 | 231 × rate0 | 21,000,000 | 100% |
A cycle ends when its allocation is mined out and at no other time. There is no clock on the schedule, no deadline and no countdown. How long a cycle takes is decided by the people mining it. The number to watch is AVAX left before the price doubles: the cycle's remaining allocation times its rate, read live from the chain, only ever going down. The site shows that, the cycle, the rate, pool AVAX per zAVA and the solvency figures, and never a countdown in time.
Half the supply is out after cycle 1 and 93.75 percent after cycle 4. The remaining 28 cycles share the last 6.25 percent at prices that climb far above the market for a long time. That tail is deliberate: it turns the mining price into a ceiling that keeps rising long after the bulk of the supply exists.
The cap is enforced in the token contract's mint function, not only in the mining contract, and the mining contract is the token's only minter. Rewards are minted at commit, so total supply always equals what has been mined, whether claimed yet or not; the Mine's own balance is exactly the zAVA held for unclaimed positions, and that equality is one of the invariants the tests assert after every action.
05Price and liquidity
Six percent of every AVAX ever committed goes into the zAVA/WAVAX pair and stays there. Four percent arrives through liquidity deepening, which buys zAVA with half of its share and adds both halves as burned LP. Two percent arrives through the buyback, which spends AVAX into the pair and sends the zAVA it receives to the dead address. Nothing leaves the pool except through a sale.
The table is the schedule at the launch rate of 0.001 AVAX per zAVA (true cost 0.0001 AVAX, about a tenth of a cent) with a 200 AVAX launch seed, as cycles are mined out in turn. Every cycle takes 10,500 AVAX of commits to complete, of which 1,050 stays in the protocol and 630 goes into the pool.
| Cycle | True cost / zAVA | AVAX into pool | Pool AVAX after | zAVA circulating | Pool AVAX / zAVA |
|---|---|---|---|---|---|
| 1 | 0.0001 | 630 | 830 | 10,500,000 | 0.00008 |
| 2 | 0.0002 | 630 | 1,460 | 15,750,000 | 0.00009 |
| 3 | 0.0004 | 630 | 2,090 | 18,375,000 | 0.00011 |
| 4 | 0.0008 | 630 | 2,720 | 19,687,500 | 0.00014 |
| 5 | 0.0016 | 630 | 3,350 | 20,343,750 | 0.00016 |
| 6 | 0.0032 | 630 | 3,980 | 20,671,875 | 0.00019 |
| 8 | 0.0128 | 630 | 5,240 | 20,917,969 | 0.00025 |
| 12 | 0.2048 | 630 | 7,760 | 20,994,873 | 0.00037 |
Pool AVAX assumes no net selling; sales remove AVAX, buys add it.
Pool AVAX per zAVA in circulation, by cycle
The AVAX standing behind each zAVA rises every cycle and can only rise, because nothing leaves the pool but a sale; by cycle 8 the pool holds 26 times its launch seed. The mining price doubles every cycle, so from about the fifth cycle the market sets the price of zAVA and the mine sits above it as a ceiling. Miners in those cycles are paying for scarcity, and the cycle panel on the site says so.
Two prices exist at any moment: the mining price, which the contract sets, and the market price, which the pair sets. The buyback and the deepening pull the market toward the mine from below. When the market price sits under the true cost, buying on the market is the cheaper way in and the buyback is doing its work. When it sits above, mining is the cheaper way in and the cycle mines out faster. The gap between them is the arbitrage that keeps the two honest.
06The retained ten percent
Liquidity deepening
Its AVAX queues in the contract. Anyone may call it. Each call spends half of what it takes buying zAVA from the pair, adds that zAVA with the other half at the pair's current ratio, and sends the LP tokens to the dead address. Reserves are read from the pair in the same call, the buy is capped at the impact gate, and a minimum output one percent under the quote is enforced. It never touches zAVA it did not just buy, so it cannot run out and never needs topping up.
Buyback and burn
Its AVAX queues. Anyone may call execute(), and it runs only while the pair's price is below the current cycle's true cost; above it the call reverts and the queue holds its AVAX for when it matters, which makes the true cost a standing bid under the market. One call buys up to the 15 percent impact gate, which is about 7.2 percent of the pool's AVAX reserve, with a minimum output set from the pair's reserves, and sends every zAVA bought to the dead address before the call ends. A 60 second cooldown stops a caller chaining calls. The swap is made directly against the pair contract rather than through a router, so no router upgrade or deprecation can ever strand the queue.
Holder dividends
Paid in AVAX to every zAVA holder in proportion to balance. No lock, no staking, no claim deadline. The accounting is a per share accumulator, so there is no loop over holders and nothing to grief. The mining contract, the dead address and the pair are excluded at wiring, once, so the pool does not absorb dividends it can never claim.
Operations
One percent accrues to a fixed address and is pulled, never pushed, so nothing at that address can ever block a mine by refusing a payment.
07Solvency
Every AVAX the protocol holds belongs to exactly one of five ledger lines: miner principal owed, the liquidity queue, the buyback queue, dividends owed and operations owed. Each line can be spent only by its own function. Nothing in the contracts reads its budget from the raw balance, so one bucket can never spend another's money, and a forced transfer or a rounding remainder cannot make the books lie.
Miner principal, the 90 percent that comes back, is the largest line and is walled off from the first block. It is never lent to liquidity, never swapped, never touched by anything but the miner's own claim.
solvency() is a public view that returns held against owed for every line at any block. Anyone can call it, any explorer can display it, and the test suite asserts it after every action across random sequences of thousands of actions before a deploy is allowed.
zAVA itself is minted at commit and held by the Mine until the position is claimed, so the Mine's balance is always exactly what it owes miners. There is no reserve of tokens waiting to be distributed and therefore nothing that can be exhausted. A claim can never fail for lack of tokens to pay, and the liquidity bucket buys the zAVA it needs on the market in the same call that adds it.
08The Shield
Every balance on a public chain is public. With zAVA that is a choice, not a requirement. The Shield is a shielded pool: you deposit zAVA and receive a note that only you can spend, you move notes to other people without the chain recording who paid whom, and you withdraw to any address. The contract never learns who owns what, and neither does anyone reading the chain.
It is a Groth16 proof system over BN254 with a Poseidon Merkle tree of depth 30, the same construction the best known shielded pools on Ethereum use. Every transaction proves in zero knowledge that the notes being spent exist in the tree, belong to the spender, have not been spent before, and sum to the notes being created. A turnstile in the contract bounds withdrawals to what was deposited, so even a broken proof system could never drain more than the pool holds.
You can enter the Shield without ever holding zAVA in public: claim() takes a shielded note and mints your reward straight into the pool. Inside it, notes move between people with no sender, receiver or amount on chain. Leaving it, you withdraw to any address you choose.
The proving key comes from a public multi party ceremony whose transcript re verifies from the published circuit and the Hermez Powers of Tau. The Shield has no owner, no fee and no way to pause. It is what "private by choice" means: the option is always there, and nobody is forced to use it.
09Security
| Concern | Answer built in |
|---|---|
| Admin compromise | There is no admin. No owner, no fee setter, no pause, no proxy. Every parameter is a constructor constant. |
| Sandwiching the buyback | Per call cap at the impact gate, minimum output from same call reserves, 60 second cooldown. What one sandwich can take fits inside one gated call. |
| Reentrancy on claim | Positions are zeroed before AVAX moves; every value moving function is non reentrant. |
| A hostile roller in auto mode | Rollover has no parameters that choose where zAVA or AVAX go; it cannot roll past your cycle limit or roll a position you switched off. The worst anyone can do is exactly what you asked for. |
| Gaming the buyback floor | Holding the market above the true cost only delays a burn and costs the holder AVAX against every seller; pushing it below hands the queue a cheaper buy, which is the point. The price check and the swap happen in one call under one gate. |
| Cycle boundary games | Two part fill at the boundary; the closing miner gets no special price and nothing is refunded. |
| Over minting | Rewards minted at commit against the cycle allocation; the 21,000,000 cap is enforced in the token's own mint. A commit that closes the last cycle has its unpriced AVAX returned, or credited to be pulled if the sender cannot receive it. |
| Stuffing the hopper | Auto needs 0.1 AVAX to enroll, and every hopper pass has a skip budget, so a mine or claim never looks at more than eight entries whatever is queued. |
| Forced AVAX | Nothing reads the contract balance; surplus is visible in solvency() and unspendable. |
| Router deprecation | Swaps are made against the pair contract directly. A pair cannot be deprecated. |
| Rounding | All arithmetic rounds down; remainders stay in the bucket they came from; the interface truncates every estimate. |
| Gas griefing | Dividends use a per share accumulator; no loops over holders anywhere. |
| Operations address reverts | Pull based; the mine never sends to it. |
| A wallet with thousands of positions | A claim settles at most 400 positions and walks past at most 2,000 per call, and can simply be called again; positions are read in pages. No wallet can grow past what one block can pay. |
Three invariants are asserted in tests after every action across random sequences of thousands of actions: held AVAX covers every ledger line; total supply equals what the Mine has mined; the Mine's zAVA balance equals the rewards held for unclaimed positions. The contracts were also run through Slither and rehearsed end to end in a browser against a local chain. The full record is published with the code.
10Launch
One transaction does everything. The deployer's own first mine at rate0 creates the first zAVA. The pair is seeded with that zAVA against 200 AVAX of launch liquidity. The LP tokens are burned. Then mining opens to everyone. Mining does not open before the pool exists, so the first buyback always has a market to buy from.
The deployer holds no privileged role afterward. The addresses of the token, the mine, the buyback, the liquidity deepener and the pair are published on the site and on Snowtrace with verified source, and the site reads every number it shows from the chain.
What zAVA does not have: a presale, a team allocation, a treasury of unissued tokens, a transfer tax, a whitelist, a referral, a pause button, an upgrade path, or a date on which anything happens.
11Parameters
All values are constructor constants. None can be changed after deployment by anyone.