Claiming: paid in tokenised stock
Claim settles cost against bond and swaps each vein's share into that vein's tokenised stock. There is no ETH payout.
A claim is one transaction per deck. It settles everything the deck earned since your last touch, burns the cost from the bond, and pays. Every vein pays its own tokenised stock: the SPY vein's share is swapped into tokenised SPY, the NVDA vein's into tokenised NVDA, the SPCX vein's into tokenised SPCX. ETH never reaches your wallet.
Before this page This page assumes the bond rule from Shifts, bond and the cost of working and the roll from Cycles, veins and the roll.
What it is #
claim(deckId, minStockOuts[3]) is the only way ETH leaves the mine, and it leaves as stock. The mine sends each vein's share to StockRouterV3, the router swaps it in that stock's Renie V3 pool, and the stock lands in your wallet. The array of three numbers is your slippage floor per vein: 0 accepts whatever the pool returns, anything above 0 reverts the claim unless at least that much stock comes back. The app claims with [0, 0, 0].
Rules #
- Only the deck owner may claim.
- Claim works during a pause. The pause freezes new decks, shifts, unbinding and rolls, never your accrued rewards.
- The claim first applies the bond rule, then burns the cost from the mine's own $CARDS balance with
CARDS.burn. - Per vein: the share goes to the router's
swapEthForStock(stock, minOut, you)and the tokenised stock comes back to you. There is no ETH option; a floor of 0 means "any amount". - Slippage protection comes from the router reverting below
minOut. The mine does not check the returned amount itself. The rate is the Renie pool's at that block, not the keeper's posted price. - Retired decks can still claim what they were paid before the clip.
- Each claim emits
Claimed(deckId, payout, burned, refundedClip).
Numbers #
| Leg | Direction | Source |
|---|---|---|
| Cost | bond, burned | MinePool.sol |
| Clipped rewards | back to the same vein | MinePool.sol |
| Vein shares | to StockRouterV3, one swap per vein | MinePool.sol |
| Stock | from the Renie V3 pool, to you | StockRouterV3.sol |
| Leftover bond | stays on the deck until unbind | MinePool.sol |
Worked example #
Deck B has 0.021563 ETH pending, 0.007188 / 0.003594 / 0.010781 across SPY, NVDA and SPCX, and 3,000 $CARDS bonded against a 1,176.1 $CARDS cost.
claim(B, [0, 0, 0]) burn 1,176.1 $CARDS
0.007188 ETH swapped to tokenised SPY, 0.003594 to NVDA, 0.010781 to SPCX
any amount accepted
claim(B, [0, 0, 5e15]) the same three swaps
the SPCX leg reverts unless at least 0.005 tokenised SPCX comes back
(MinePool.sol; StockRouterV3.sol)
Edge cases #
- A claim with nothing pending and no cost burns nothing and pays nothing.
- If a pool cannot fill a swap, or returns less than your floor, the whole claim reverts. Nothing is lost; the rewards stay pending. Claim again later, or with a lower floor.
- The router and the three stock addresses sit behind the 48 h timelock. On the testnet build a mock router stood in for StockRouterV3.
Verify it on-chain #
pendingOf(deckId)shows the three rewards, the cost and the pay fraction the claim will apply.router()andstockOf(ticker)show where each vein's share goes.
Not in the game #
- "An ETH payout by default, stock on request". Every vein pays its tokenised stock; there is no ETH option.
- "Claim halts under pause". It does not.