Docs
Every buy opens the box.
$QCAT is a memecoin on Robinhood Chain with one rule: every buy opens a box. Alive, the buyer is paid in $QUBT, a tokenized quantum-computing stock. Dead, the pot grows. This page explains exactly how, so you can check it yourself.
Overview
- $QCAT launches on pons, paired against $QUBT (Quantum Computing Inc., a Robinhood Stock Token).
- Its creator tax, paid in $QUBT on every buy and sell, goes to the box contract. That is the pot.
- Every buy gets one box. The box opens one L2 block after it is sealed and pays from the pot if the cat is alive.
How a box opens
- You buy $QCAT on pons, on the launch curve or, after graduation, in its Uniswap v4 pool. Buys of at least the minimum (2 QUBT at launch) count.
- The keeper seals a box. It reads your buy from the chain and calls
sealBoxes. The box records the wallet that received the $QCAT, the $QUBT you spent, and the L2 block it was sealed in. A buy is identified by its transaction hash and log index, so one buy can never get two boxes. - The box opens a block later.
openBoxesreads the hash of the block the box was sealed in and decides the outcome. Anyone can call it; the keeper does so automatically. If a box is not opened within 256 L2 blocks, its hash is no longer available and it is resealed to the current block.
Odds and payouts
| Outcome | Chance | Pays |
|---|---|---|
| Superposition | 1 in 500 | 10% of the whole pot. |
| Alive | 50% | The smaller of 10% of what you spent and 1% of the pot. |
| Dead | 50% | Nothing. The pot keeps growing. |
Payouts are sent in $QUBT to the wallet that received your $QCAT, in the same transaction that opens the box. No more than 30% of the pot can be paid out in any one hour. If a transfer fails (a stock token can refuse one), the amount is recorded as owed and you can collect it with claimOwed.
These are the launch settings. Until ownership is renounced they can be retuned within hard limits written into the contract (for example, superposition can never pay more than 25% of the pot). The current values are public: call config() on the box.
The pot
The pot is the $QUBT held by the box contract. It is filled by the $QCAT creator tax. Pons collects that tax on every trade and credits it to the box in the pons fee escrow; harvest() moves it into the pot. Anyone can call harvest(), and the keeper does it whenever fees are waiting.
Because sells pay the tax too and dead boxes pay nothing, the pot refills on its own. Because an alive box pays at most 1% of the pot, it never pays the pot to zero.
Randomness
Robinhood Chain is an Arbitrum chain, so the contract reads L2 block numbers and hashes from the ArbSys precompile. A box sealed in block N is opened with the hash of block N, which does not exist yet when the sealing transaction is sent: nobody, including the keeper, knows the outcome in advance.
seed = keccak256(abi.encode(blockHash(N), boxId, boxContract))
superposition if seed % 500 == 0
alive else if (seed >> 128) % 10000 < 5000
dead otherwise
Every outcome can be recomputed from public chain data.
Contracts
| Box (proxy) | 0x425d0aeb61e028D0F2647266c7843Ee85A175B0f |
|---|---|
| $QUBT | 0x59818904ab4cE163b3cE4FfB64f2D6Ca02c434B4 |
| $QCAT | Shown on the home page once launched. |
| Chain | Robinhood Chain, chain id 4663 |
Useful reads
stats(): boxes, outcomes, total paid, biggest win, pot.latestBoxes(n): the newest boxes, newest first.getBox(id): one box with its buyer, amount, outcome and payout.owner(): the zero address once ownership is renounced.
Ownership and safety
The box is an upgradeable (UUPS) contract so that it can be fixed during launch if anything goes wrong. Until ownership is renounced, the owner can:
- upgrade the contract, retune the odds within the hard limits, and pause it;
- withdraw the pot to the owner wallet, as an emergency exit.
owner() live, so you can see which state it is in.A separate guardian role can only pause and replace the keeper. It exists so that a compromised keeper can be stopped even after ownership is renounced, and it can be removed for good with renounceGuardian().
The keeper
Buys happen on pons, not in the box contract, so a keeper watches the chain for $QCAT buys and seals a box for each one. It is stateless: its scan position is stored in the contract (scannedBlock), so it can restart at any time without skipping or repeating a buy. It runs every minute; opening itself is permissionless, so anyone can call openBoxes at any time.
Risks
- $QCAT is a memecoin. It can lose all of its value. Most boxes pay nothing.
- $QUBT is a Robinhood Stock Token: a tokenised debt security issued by Robinhood Assets (Jersey) Limited that gives economic exposure to Quantum Computing Inc. without rights in or against it. Stock Tokens are not available to US persons or in other restricted jurisdictions.
- The keeper is trusted to report real buys. Its powers are limited to sealing and opening boxes, payouts are capped per hour, and it can be paused and replaced.
- Smart contracts can have bugs. Nothing here is investment advice.