Practice Week rules
Practice Week is one week of Freyday with demo dollars.
Overview
You get $1,000 in demo dollars, buy real weekly options on the live market prices, and on Friday, September 18, every ticket settles by the same Chainlink rule as a real ticket. Wallets that end the week at least $10 up and pass the ETH check share a pool of 5,000,000 FREY. A loss costs you nothing.
It runs on Robinhood Chain mainnet: every claim, purchase and settlement is an on-chain transaction. Only the dollars are demo.
- Get $1,000 in demo dollarsFrom Saturday, September 12, 00:00 UTC to Wednesday, September 16, 4:00 PM UTC
- TradingFrom Sunday, September 13, 8:00 PM ET to Friday, September 18, 12:00 PM ET
- Expiry and settlementFriday, September 18, 4:00 PM ET (20:00 UTC)
- Results and prize claimsAfter every Practice Week series has settled
Joining
Connect your wallet on the Practice page and press Get $1,000. Each address can get it once, between Saturday, September 12, 00:00 UTC and Wednesday, September 16, 4:00 PM UTC.
The wallet needs at least 0.01 ETH on Robinhood Chain at that moment. The contract checks the balance before the gas of that transaction is paid, so you need 0.01 ETH plus a little gas. Keep more than that: the gas for claiming and trading comes out of the same balance, and the balance is checked again during the week (see The ETH check).
Demo dollars move only between you and the Practice Week contracts. Buying pays the practice vault and the fee address, and payouts come back from the vault; a transfer to another wallet fails.
Trading
The Practice market has the same ten tickers, the same ladder of strikes and the same Friday expiry as the real market. Prices come from the same pricing engine, the same volatility and the same Chainlink spot. The practice vault is so large that its limits are never reached and its utilisation stays near zero, so prices match what the real market shows for an empty vault.
Buying is open during the US session for stock tokens, from Sunday, September 13, 8:00 PM ET, and stops at noon ET on Friday, September 18, four hours before expiry. The minimum ticket is $1 in demo dollars. The 10% protocol fee is charged in demo dollars too and counts as part of what you paid. Every purchase is a transaction on Robinhood Chain and costs gas in ETH.
Practice tickets are ERC-721 tokens named “Freyday Practice Ticket”. They can be transferred, but a ticket always counts for the wallet that paid for it, whoever it was sent to.
The ETH check
Hold at least 0.01 ETH on Robinhood Chain from the moment you get $1,000 until trading stops. The balance is checked 24 times during the week at moments nobody can know in advance. If it is below 0.01 ETH at any check that applies to you, your result is void.
The check window runs from Monday, September 14, 00:00 UTC to Friday, September 18, 4:00 PM UTC. It is split into 24 equal slots of 4 hours 40 minutes, and each slot holds one check. The moment of the check inside slot k is set by a seed: the hash of the first block with a timestamp at or after expiry, Friday, September 18, 20:00 UTC. Nobody knows that hash before expiry, including us.
For slot k (0 to 23), the moment is t_k = windowStart + k × 16800 + (uint256(keccak256(abi.encode(bytes32 seed, uint256 k))) mod 16800), where windowStart is 1789344000 (Monday, September 14, 00:00 UTC) and 16800 is the slot length in seconds. The check reads the ETH balance at the end of the first block with a timestamp at or after t_k. A check applies to you if its block is not earlier than the block in which you got $1,000. Getting $1,000 later means fewer checks: a wallet that joins before the claim closes on Wednesday has at least 10.
If any balance that a check needs cannot be read, results are not computed until it is.
Prizes
Profit. For each wallet, add up what its tickets paid out at settlement and subtract everything it paid for them, fees included. A ticket counts for the wallet that paid for it, not for the wallet that holds it now or the one it was bought for. You do not need to claim the demo payout of a ticket: profit uses the settlement price.
Winners. A wallet wins if it got $1,000, bought at least one ticket, passed the ETH check and ended the week with a profit of at least $10 in demo dollars.
The pool. 5,000,000 FREY is shared between winners in proportion to their profit, with at most 100,000 FREY per wallet. What a capped wallet cannot take goes to the others, in the same proportion. Winners are ranked by profit, highest first, equal profits by address; each receives min(100,000 FREY, pool left × its profit ÷ profit left), and the pool and profit left shrink after each wallet. All amounts are whole numbers in FREY’s smallest unit, rounded down.
Examples. With 1,000 winners and $400,000 of combined demo profit, the pool pays about 12.5 FREY per demo dollar of profit, and a wallet with $10,000 of profit is capped at 100,000 FREY. With three winners, each receives 100,000 FREY and 4,700,000 FREY stay in the pool.
With 50 or more winners, the whole pool is paid out. With fewer than 50, every winner receives 100,000 FREY, and the rest stays in the contract’s Campaign programme for future practice weeks. If nobody wins, no prizes are published and the whole pool stays there.
The pool is paid by the MerkleDistributor contract, which cannot pay out more FREY than it has been funded with. The funding transaction and the balance are public on robinhoodchain.blockscout.com.
Results and claims
Results are computed once every Practice Week series has settled. If a price feed delays the settlement of a series, the results wait for it; no series is left out.
The results file lists every trade with the wallet that paid, the seed and the block of every check, each wallet’s profit and check result, the prizes and the Merkle tree. It is published on the site, and anyone can recompute it from the chain with the method above. The tree is built the same way as OpenZeppelin’s StandardMerkleTree with the leaf types (uint8 programme, uint64 epoch, address account, uint256 amount), so its root can be checked with that library.
Prizes become claimable when the protocol owner publishes the results root on-chain in the MerkleDistributor contract. The Practice page then shows Claim N FREY to each winner. Claims do not expire. Anyone can submit a claim for a winner; the FREY always go to the winner’s wallet.
FREY that no published root assigns stay in the Campaign programme for future practice weeks. The owner can withdraw them; prizes in a published root cannot be withdrawn.
Contracts
All on Robinhood Chain, chain ID 4663. Explorer: robinhoodchain.blockscout.com.
- PracticeDollar: the demo dollar, “Freyday Practice Dollar” (PRACTICE), 6 decimals: 0x26AA74504743c3f23D55334fF4702006543B5719.
- PracticeMarket: the Practice market and its tickets: 0x4DFf66c50377E61806A2A41D6BbCBC8895FF5f26.
- PracticeVault: the practice vault that sells every practice option: 0x1060aeEfE02EEf18BE79622b293036d307FaC85e.
- MerkleDistributor: holds the pool and pays the prizes, programme Campaign (3), epoch 1789761600: 0xC3b99cbbc9bb8f78E39dDfB540DA34fB42B20247.
- Shared with the real market: SpotOracle 0xfE8E66751E1d5f564A84A1850f46203FdEF3D840, VolOracle 0x1c8ec6D5f3736a927a3d8ca91C1314284Dbf3970 and PricingEngine 0x1cEDE2A394059F5B36B90D837DaBE255a1c70D4d.
Fine print
- Demo dollars are practice money: they have no price and stay inside the practice market, and practice tickets are demo in the same way.
- The prize is paid in FREY only. Nothing here is a statement about the price of FREY.
- Practice Week is open outside the United States, like the stock tokens and Freyday itself.
- During the week, the leaderboard shows each wallet’s value at the current Chainlink price. It is an estimate, not a result: results use settlement prices only.
- The claim window is set in the PracticeDollar contract. The owner can move it, and any change is a public on-chain transaction.
- Nothing to deposit: you need only ETH for gas and for the check.