QuaiAxe (QAXE)
QuaiAxe turns Quai mining rewards into a token burn. A miner points their payout at a predicted address that has no code deployed to it. Anyone can later "collect" that address's balance into a shared vault, which splits it between a burn (the miner's chosen share, bought from the QAXE market and burned on the spot) and, optionally, a payout back to the miner — plus a small protocol fee.
The mental model
- A miner picks a burn share, 10% to 100%, and — below 100% — a payout wallet for the rest.
- The site derives a mining address for that exact combination. The address is a CREATE2 prediction: nothing is deployed there. It is just a normal-looking Cyprus-1 address that the miner's rig can be pointed at like any other wallet.
- The miner mines to it. A Quai mining reward is a coinbase credit, not a function call — it lands on the address's balance whether or not anything is deployed there, and whether or not the address will ever have code. So does a plain transfer from a pool that pays from its own wallet.
- Anyone collects the deposit. Collecting deploys a tiny forwarder contract at the predicted
address; its constructor immediately
selfdestructs the balance into the shared vault, in the same transaction, and the address is code-free again — reusable for the next reward. - The vault splits the deposit: a 0.5% protocol fee to the treasury, the miner's chosen burn share reserved to buy and burn QAXE, and the rest (if any) pushed to the miner's payout wallet.
- Anyone sweeps. Sweeping buys QAXE from the live market with a bounded slice of everything reserved for burning, and burns every QAXE the vault holds. The caller who triggers a collect or a sweep gets a small, capped gas refund funded out of that action's own principal — it is never worth more than the real cost, but it is enough that running the keeper is close to free.
Nothing in the system has an owner-controlled pause, upgrade, or withdrawal of burn principal. See security for the full threat model.
Why a no-code deposit address ("Model A")
The alternative would be pointing a miner's payout directly at a smart contract. That does not
work reliably on Quai: RedeemLockedQuai() (the function that finally pays out a locked mining
reward) does an unconditional balance credit with no code check and no EVM call — so a
contract-adjacent address technically can receive it, but a plain pool payout, sent with a fixed
21,000 gas limit, cannot reach an address that has a receive() or fallback() to run, because
21,000 gas is exactly what a value transfer to an empty account costs and nothing is left over
to execute code.
QuaiAxe avoids the whole problem: a deposit address has genuinely no code at the time a reward or transfer lands on it. Coinbase credits and plain transfers both work exactly like they would to any ordinary wallet, because as far as the chain is concerned, that is what it is. The address only briefly gets code — a forwarder that self-destructs in the same transaction — when someone chooses to collect it, and it is code-free again immediately after.
Components
| Component | What it does | Reference |
|---|---|---|
| QaxeDepositFactory | Derives deposit addresses (CREATE2), deploys+self-destructs the forwarder on collect, batches collections | deposit-factory |
| QaxeForwarder | One-shot, per-collection contract: constructor selfdestructs straight into the vault | deposit-factory |
| QaxeBurnVault | Holds every deposit's accounting, splits fee/burn/payout, buys and burns QAXE on sweep | burn-vault |
| QaxeLens | Stateless batch-read helper for the site and keeper (balances + ledger in one call) | deposit-factory |
| QAXE BondingCurve | The market QaxeBurnVault buys from — graduated, so buys execute against its internal pool | pool |
| Quainance QAXE/WQUAI pair | A standard Uniswap-V2-style pair, seeded at the curve's price, for wallets/aggregators that don't know the curve | pool |
| MinerBurnVault (V1 probe) | An older, simpler, 100%-burn-only vault, kept running as a real-world probe | v1-probe |
| Keeper | Off-chain, permissionless collector/sweeper — anyone can run one | keeper |
Splitting the deposit — the exact formula
For a gross deposit g and a chosen burn share burnBps (1000–10000, i.e. 10%–100%):
fee = g * 50 / 10000 // 0.5%, always to the treasury
rest = g - fee
burnLeg = rest * burnBps / 10000 // reserved principal, eventually bought and burned
minerLeg = rest - burnLeg // pushed to the payout wallet (0 at burnBps = 10000)Integer division truncates every intermediate term; the remainder always lands in minerLeg
because it is computed by subtraction, never its own product, so fee + burnLeg + minerLeg is
exactly g to the wei. See burn-vault for the full accounting model.
The 14-day reward lock
This is a Quai network rule, not a QuaiAxe rule: every mining reward is locked for a minimum of
lock=0 — about 241,920 blocks, roughly 14 days — before it is credited to the miner's address at
all. Locking longer (lock=1/2/3, roughly 3/6/12 months) earns a network reward boost that decays
over the first year. A QuaiAxe deposit address does not exist as far as the chain's balance is
concerned until that lock clears; there is nothing to collect before then. See
integrate for the exact stratum strings, including the password field that carries
the lock byte.
Status (soft launch, 2026-09-23)
V2 was deployed to mainnet and its readback (curve, token, treasury, factory, every constant,
INIT_CODE_HASH) verified to match the source on 2026-09-23. Independently, at deploy time:
QaxeBurnVault.sweeps() == 0,totalTokensBurned() == 0,totalQuaiSpent() == 0— no sweep has happened yet.- The V1 probe vault (see v1-probe) also shows
sweeps() == 0and a zero balance — no reward has reached it yet either.
Both are expected: nothing mines to a QuaiAxe address until a miner is actually pointed at one, and a fresh reward sits in Quai's mandatory lock for ~14 days before it is even credited. No mining reward has been observed landing on a QuaiAxe deposit address, and V2 has never swept or burned. This page states that plainly rather than implying otherwise.
Live addresses (Cyprus-1, chain 9)
Verified by reading each contract's code and constructor-bound state directly from
https://rpc.quai.network/cyprus1 on 2026-09-23.
| Contract | Address |
|---|---|
| QaxeBurnVault (V2) | 0x000e8FA7cFA09827f0A0786CE3E96aC5e4E9f46C |
| QaxeDepositFactory | 0x0000c6aE51b3698a2945D68696b59cf52dbB3a94 |
| QaxeLens | 0x00472f13e471B97429a45bF1890187a8AB850E8f |
INIT_CODE_HASH (forwarder creation-code hash) | 0x93921cd2500d1f18799ed6c2728cfd6983ac9afde51abc838963cbfea5597dea |
| MinerBurnVault (V1 probe) | 0x0003Dc0349B75ee1A81FE25310BA420a6aaB5938 |
| QAXE token | 0x0035187a7660f595D93cd53a4D16c635D6cFFC8f |
| QAXE BondingCurve (graduated) | 0x004Bc407903A51506bcF0b1aB423958c5991c237 |
| Quainance V2 router | 0x000284FD8Df039CFF2949b62D854dc43c2Eae6E1 |
| Quainance V2 factory | 0x000993E799424EEB1f1d6AdAa0e68006f4C696Fe |
| WQUAI | 0x006C3e2AaAE5DB1bCd11A1a097cE572312EADdBB |
| QAXE/WQUAI pair | 0x005592Ec74fB9690b7361B834bf38dC03537356F |
The treasury address is not printed here; read it live with vault.treasury() (see
burn-vault) if you need it.
Where to go next
- Integrating a miner or a site: integrate
- Full vault accounting reference: burn-vault
- Deriving deposit addresses and batching collections: deposit-factory
- Running a keeper: keeper
- Trading QAXE: pool
- Threat model: security