Monkey Trading
Trade global markets
with institutional size.
Trade large positions with high leverage across crypto, FX, indices, commodities and shares. The house takes the other side of your trade. The engine processes orders without putting every trade onchain.
Global watchlist
- BTC / USD+2.41%Bitcoin67,420.00
- ETH / USD+1.82%Ethereum2,614.80
- EUR / USD−0.18%Euro / US Dollar1.0824
- US 500+0.63%US equity index5,842.50
- XAU / USD+0.92%Gold2,731.20
Crypto, FX, indices,
commodities and shares.
BTC / USD Bitcoin
67,420.00 +2.41%
Reference
Multi-venue median
Execution
House counterparty
Risk mode
Normal
Position sizing
- Required margin
- Counterparty
- Protocol house
Required margin equals position size divided by leverage.
Long · $100,000 position
Offchain execution · USDC settlement · Public accounting
Read the source code on GitHub (opens in a new tab)Markets
Trade across asset classes.
Each market has its own reference prices, trading hours and risk limits. Positions across asset classes share one USDC account.
Crypto
BTC / ETH
Continuous markets
FX
EUR/USD · USD/JPY
Global currency sessions
Indices
US 500 · Germany 40
Exchange calendars
Commodities
Gold · Oil
Defined reference contracts
Equities
Individual shares
Local market hours
How trading works
What you pay.
What you can lose.
When you make money, the house pays. When you lose, the house receives the loss. Its capital and exposure limits determine how much you can trade. The rules below explain pricing, costs, margin and ownership.
- 01
The house takes the other side
You can open a position without waiting for another trader to match it. The house takes the opposite exposure, subject to its capital and risk limits.
Your long position ↔ the house’s short exposure - 02
Prices come from several venues
The engine uses the median of fresh quotes from independent venues. It stops quoting when too few sources remain or their prices disagree beyond the market’s limit.
100 · 101 · 102 → median 101 - 03
Spreads depend on size and risk
Orders within the normal size bands pay no spread unless stress or account adjustments apply. Larger positions can pay a size spread. Repeatedly trading just before prices move against the house can also increase your spread.
Reference price, adjusted for the spreads that apply - 04
The house charges a fee on profits
Closing at a profit incurs a fee on the realised gain. Closing at a loss incurs no profit fee. Spread charges and overnight financing are separate.
Realised gain → your proceeds + house profit fee - 05
Overnight positions accrue financing
Holding a position through daily rollover can incur a financing charge or credit. The amount uses a benchmark rate and markup, with the calculation depending on the market and whether you are long or short.
Open position → daily rollover → financing - 06
Losses stop at your account balance
Your positions share the margin in your account. The engine closes positions when equity falls below the close-out threshold. If a gap creates a loss beyond the account balance, the house absorbs the excess.
Account balance is at risk; no debt beyond it - 07
Trading follows each market’s hours
Markets follow their trading sessions, holidays and early closes. A resting order can fill at the next eligible price after reopening, which may be far from the previous close.
Friday close → market gap → next opening price - 08
House exposure limits new positions
The engine limits the house’s net exposure in each market and across the account book. It refuses new risk that exceeds those limits, even when your account has enough margin.
Existing exposure + your order ≤ applicable cap - 09
Withdrawals wait for daily settlement
The custody system holds USDC in an onchain vault. Withdrawal requests wait for the daily state check before funds can be released.
Intraday requests → daily verification → eligible release - 10
Trader losses share the MONKEY budget
Accounts with eligible realised losses share a fixed MONKEY budget every ten minutes. Holders stake or delegate their tokens to choose operators.
Eligible losses → MONKEY → stake or delegate - 11
You can replay the account history
The engine publishes its ordered commands and signed state checkpoints. You can replay the commands and compare the calculated balances with those checkpoints. An account proof checks that your balance is included in a published state.
Commands → replay → compare state roots
MONKEY distribution
Own a share of the house
you trade against.
Ownership of the house is distributed to traders through MONKEY. Every ten minutes, a fixed token budget is divided among accounts with eligible realised losses. Your share depends on your loss relative to everyone else’s in that period.
The schedule halves every six months
Share of the original maximum scheduled supply
The schedule allocates up to 50% in six months and 75% in a year. Periods with no eligible losses issue nothing, and their unused tokens are cancelled permanently.
The chart shows scheduled allocation as a share of the original maximum supply, using equal-length half-years.
How one ten-minute budget is shared
If two eligible accounts lose $100 and $300 in one period, they receive 25% and 75% of that period’s tokens.
If they instead lose $1,000 and $3,000, they receive the same shares of the same budget. Losing more does not create more tokens.
Cancelled tokens cannot be issued in a later period.
- 01Eligible realised losses
- 02MONKEY ownership
- 03Stake or delegate
- 04Operator governance
MONKEY holders stake or delegate to choose operators. Stakers share in house value above a required reserve. Papertrade introduced the mechanism of distributing house ownership through trader losses that inspired this design.
Who gets access at genesis?
Genesis starts with restricted mainnet access, real funds and real MONKEY issuance. The emissions clock starts then and does not restart when public trading opens. Early access therefore gives participants an allocation advantage.
There is no reserved founder allocation. Founder participation uses the same ten-minute distribution mechanism.
How the exchange runs
One trading engine.
Rotating operators.
One active node runs the engine inside a trusted execution environment (TEE). It publishes the commands needed to replay its calculations. At the daily handover, the day’s state is verified onchain and the next operator continues from that state.
01 / INPUT
Trader orders
Signed requests
The node checks and sequences each signed order.
02 / EXECUTE
One active TEE
Trading engine
Attestation identifies the software and keys running inside the TEE.
03 / VERIFY
Public history
Commands and balances
Commands, events and signed state checkpoints.
04 / SETTLE
Onchain custody
Daily settlement
The vault releases withdrawals after daily state verification.
Operator governance & daily handover
MONKEY stake / delegation
Holders delegate voting power to operator candidates.
Candidate TEE registry
Eligible operators register an attested node and a bond.
Select the successor
Delegated stake selects the next active operator.
Chooses the next operator
Incumbent active TEE
The current operator finishes the day’s command log.
Authenticated state
The next operator checks the signed checkpoint against the recorded history.
Successor active TEE
After verifying the state, the next operator starts processing orders.
The next operator runs the engine until the following handover.
Withdrawals settle once a day
Trades update your account during the day. Withdrawal requests wait for the daily state check and onchain finality before the vault can release USDC.
Operators put a bond at risk
Operators stake a MONKEY bond. State verification links withdrawal approval to the operator’s published record, with bond slashing for provable protocol misconduct.
What you can verify
Attestation lets you check which software and keys a TEE is running. It cannot tell you whether the house has enough assets or its price feeds are correct. An account proof shows that a balance belongs to a published state; replay lets you check how that state was calculated. The withdrawal contract must enforce its own verification rules. Hardware failures, unavailable hosts and disputed handovers remain part of the system’s risk model.
Reference pricing
A price has to earn its place.
The engine combines fresh independent quotes into a median reference. If sources become stale or disagree beyond the configured threshold, it stops providing an executable price.
Stale quotes are excluded. If the remaining sources cannot agree, trading pauses until a valid reference price is available.
Three venues quoting BTC-USD, combined into a median index. When a venue stops quoting it goes stale and the index uses the other two; when the venues disagree by more than 25 basis points, the market has no price and nothing fills.
Public accounting
The history behind the balance.
The node publishes ordered commands and the events they produce. Signed checkpoints commit to the engine state, allowing others to inspect the record behind an account.
Each command occupies a numbered place in the history. Signed checkpoints let a verifier compare the calculated state with the published state.
A public log of sequenced price updates, orders, and deposits, each with its running root, and a signed checkpoint every twelve commands.
Independent verification
Recalculate the result.
Your browser can replay the log below, recompute each keccak-256 state root and compare it with the published result. Change a value to find the first mismatch.
To verify an engine log, use engine replay from the engine repository (opens in a new tab).
- seq 01list BTC-USD, quotes at most 25 bps apart, min 2published root 0x22e1cf…3e4b
- seq 02deposit 50,000.00 USDC to 0x00a1published root 0x792f5a…c9e6
- seq 03prices BTC-USD: coinbase 100,018.90, kraken 100,009.70, bitstamp 100,012.40published root 0x825229…fa8f
- seq 04order 0x00a1 buy 0.250 BTC-USDpublished root 0x9a4e2d…cc93
- seq 05deposit 20,000.00 USDC to 0x00b2published root 0x238522…ad6a
- seq 06order 0x00b2 sell 0.100 BTC-USDpublished root 0x79b188…07b6
- seq 07prices BTC-USD: coinbase 100,560.00, kraken 100,228.40, bitstamp 100,231.10published root 0x386a1c…beaf
- seq 08order 0x00a1 sell 0.250 BTC-USDpublished root 0xeb7376…c5d0
- seq 09prices BTC-USD: coinbase 100,405.20, kraken 100,399.90, bitstamp 100,402.70published root 0x94032d…0f7e
- seq 10order 0x00a1 sell 0.250 BTC-USDpublished root 0xc2180c…9bdd
- seq 11order 0x00b2 buy 0.100 BTC-USDpublished root 0x0c827e…bf0b
11 commands, 11 published roots. Press replay to recompute them in your browser.
Roadmap / 23 October–3 December 2026
The next six weeks.
The target is to bring the system into use over six weeks, starting with restricted testing. Opening to the public depends on the custody, market-data and security checks passing.
- Week 0123–29 Oct 2026
Execution & risk core
- Pricing, margin, close-out, fees and exposure capsDone
- Deterministic history, replay and account proofsDone
- Week 0230 Oct–5 Nov 2026
Custody & resilience
- USDC vault deposit pathDone
- Withdrawal gates, recovery and failure testingIn Progress
- Week 036–12 Nov 2026
Market data & benchmarks
- Live crypto venue adaptersDone
- Cross-asset data, capacity and latency benchmarksIn Progress
- Week 0413–19 Nov 2026
MONKEY emissions & staking
- Ten-minute budgets, halving and cancellation accountingTodo
- Staking and delegation contractsTodo
- Week 0520–26 Nov 2026
Attested operators & governance
- TEE hardware infrastructure and verificationIn Progress
- Registry, operator selection and daily handoverTodo
- Week 0627 Nov–3 Dec 2026
Genesis & public rollout
- Security, access policy and genesis disclosuresTodo
- Permissioned testing, then readiness for public accessTodo
Testing dates and access details will be posted on Telegram.
Join the community on Telegram (opens in a new tab)