Claim ledger
Generated by scripts/src/gen-docs.ts from proof/claims/, which is itself generated from evidence by scripts/src/build-claims.ts and checked by scripts/src/validate-evidence.ts. 35 claims.
| Status | Claim | Value | Network | Evidence |
|---|---|---|---|---|
| MAINNET_VERIFIED | GATE0_COLLATERAL_MAINNET: Perpl's Monad Mainnet exchange margins in Agora AUSD (0x00000000eFE302BEAA2b3e6e1b18d08D69a9012a) | AUSD | Monad Mainnet | proof/receipts/mainnet/gate0.json |
| MAINNET_VERIFIED | GATE0_MIN_ACCOUNT_MAINNET: Minimum AUSD to open a Perpl account on Monad Mainnet | 10.00 | Monad Mainnet | proof/receipts/mainnet/gate0.json |
| MAINNET_VERIFIED | GATE0_WHITELIST_MAINNET: Perpl's exchange on Monad Mainnet has whitelisting disabled, so a desk contract can open its own account without a whitelist step | false | Monad Mainnet | proof/receipts/mainnet/gate0.json |
| TESTNET_VERIFIED | GATE0_COLLATERAL_TESTNET: Perpl's Monad Testnet exchange margins in Agora AUSD (0xa9012a055bd4e0eDfF8Ce09f960291C09D5322dC) | AUSD | Monad Testnet | proof/receipts/testnet/gate0.json |
| TESTNET_VERIFIED | GATE0_MIN_ACCOUNT_TESTNET: Minimum AUSD to open a Perpl account on Monad Testnet | 100.00 | Monad Testnet | proof/receipts/testnet/gate0.json |
| TESTNET_VERIFIED | GATE0_WHITELIST_TESTNET: Perpl's exchange on Monad Testnet has whitelisting disabled, so a desk contract can open its own account without a whitelist step | false | Monad Testnet | proof/receipts/testnet/gate0.json |
| TESTNET_VERIFIED | TESTNET_CANONICAL_CLOSE_PAYOUT: A flat desk was closed on Monad testnet and its residual AUSD was paid by contract; the trader's higher balance was read back on an independent RPC | 99948853 base units; 4.925 s submit-to-verified | Monad Testnet | proof/receipts/testnet/testnet_desk_close_payout.json |
| TESTNET_VERIFIED | TESTNET_CANONICAL_GRADUATION: A desk earned +2% over two closed trades on Monad testnet, graduated to tier 1 and was funded by the pool | 400 AUSD credit | Monad Testnet | proof/receipts/testnet/graduation-attempt/05-graduate-by-keeper.json |
| TESTNET_VERIFIED | TESTNET_CANONICAL_GUARDED_REJECTION: An over-limit (6.00x) order sent directly to Desk.trade() on Monad testnet was mined and reverted by the contract with LeverageExceeded | LeverageExceeded | Monad Testnet | proof/receipts/testnet/testnet_canonical_guarded_rejection.json |
| TESTNET_VERIFIED | TESTNET_DEPLOYMENT_DESKFACTORY: DeskFactory deployed on Monad testnet; deployed runtime matches the compiled bytecode (immutables masked) | 0x1569ee4a7210e226db932b5b7633e63d3ac8c544 | Monad Testnet | proof/receipts/deployments/testnet-DeskFactory.json |
| TESTNET_VERIFIED | TESTNET_DEPLOYMENT_IMPRESTPOOL: ImprestPool deployed on Monad testnet; deployed runtime matches the compiled bytecode (immutables masked) | 0x85ffff6b1e8e62d2ce8aca45b69ae530c6fbf457 | Monad Testnet | proof/receipts/deployments/testnet-ImprestPool.json |
| TESTNET_VERIFIED | TESTNET_KEEPER_ACTION: The Imprest keeper sent a contract-accepted graduate() on Monad testnet after simulating it | 0x4e616c9939a95c0419c32d915dbb964e5074e724fe242a9e963be853f32587ed | Monad Testnet | proof/receipts/testnet/graduation-attempt/05-graduate-by-keeper.json |
| TESTNET_VERIFIED | TESTNET_MARK_STALENESS_SAMPLE: Share of sampled testnet blocks where Perpl's BTC mark was older than its 60 s max age (when desks refuse new risk) | 0/90 | Monad Testnet | proof/receipts/testnet/mark-staleness.json<br>proof/experiments/mark-staleness-testnet.json |
| TESTNET_VERIFIED | TESTNET_RELAYED_TRADE: A trader-signed EIP-712 trade intent was submitted to Desk.tradeWithSig by the Imprest relayer (relayer paid gas), filled on Perpl testnet, and the resulting position was confirmed on an independent RPC | 0xb2e83f497ed2667296c0c8d9dab07c41557c21d90fc0f1de8558fc9cb344665e | Monad Testnet | proof/receipts/testnet/graduation-attempt/01-open.json<br>relayer/src/handler.ts |
| SIMULATED | FORK_LIVE_TESTNET_BOOK_FILL: In a fork of live Monad testnet, a desk opened its own Perpl account, filled an IOC order against the real testnet order book, and closed reduce-only; a 6x order was refused by the contract | 100 lots (BTC, 0.00001 BTC each) | Monad Testnet fork (local, nothing broadcast) | proof/local/testnet-fork-run.json<br>contracts/test/perpl/TestnetFork.t.sol |
| SIMULATED | REPLAY_ATOMIC_VS_KEEPER_OVERSHOOT: Median overshoot past the floor: in-transaction enforcement vs a 1 s keeper, on replayed real BTC/ETH 1-second history (pre-registered protocol; null threshold 10 bps) | 0 bps median gap (n=51); null threshold hit, overshoot headline dropped | simulation on real Binance spot price history | proof/experiments/replay/results.json<br>proof/experiments/replay/PROTOCOL.md<br>proof/experiments/replay/data/MANIFEST.json |
| LOCAL_REPRODUCTION | LOCAL_CONTRACT_SUITE: Imprest contract tests passing against Perpl's own exchange bytecode (rc_v1.1.7-203) on a local EVM | 120/120 | local Foundry EVM | proof/local/forge-test-results.json |
| LOCAL_REPRODUCTION | LOCAL_GUARDED_ORDER_REJECTION: An order one unit over the 5.00x leverage cap (5.01x) is rejected by the Desk contract with LeverageExceeded, and no position exists afterwards | true | local Foundry EVM | proof/local/forge-test-results.json<br>contracts/test/unit/DeskPolicy.t.sol |
| LOCAL_REPRODUCTION | LOCAL_GUARDED_TRADE_GAS: Gas used by a guarded desk trade (policy checks + Perpl fill + floor re-check), measured on Foundry's Ethereum gas schedule | 461254 | local Foundry EVM | proof/local/gas-profile.json |
| LOCAL_REPRODUCTION | LOCAL_INVARIANT_CAMPAIGN: Stateful invariant campaign (cash-basis pool identity, principal and exposure ledgers, fee subledger and cap, closed desks empty) held across every run | 31200 | local Foundry EVM | proof/local/forge-test-results.json<br>contracts/test/invariant/PoolInvariant.t.sol |
| LOCAL_REPRODUCTION | PAIRED_DESK_CALM_CAP2500: Paired long/short desks run by one actor, scored jointly (calm_cap2500): pool net result after principal loss, fees and profit share | 1.32 | local Foundry EVM | proof/experiments/paired-desk/calm_cap2500.json<br>contracts/test/security/PairedDesk.t.sol |
| LOCAL_REPRODUCTION | PAIRED_DESK_GAP15PCT_CAP1000: Paired long/short desks run by one actor, scored jointly (gap15pct_cap1000): pool net result after principal loss, fees and profit share | 0.60 | local Foundry EVM | proof/experiments/paired-desk/gap15pct_cap1000.json<br>contracts/test/security/PairedDesk.t.sol |
| LOCAL_REPRODUCTION | PAIRED_DESK_GAP15PCT_CAP1500: Paired long/short desks run by one actor, scored jointly (gap15pct_cap1500): pool net result after principal loss, fees and profit share | -52.88 | local Foundry EVM | proof/experiments/paired-desk/gap15pct_cap1500.json<br>contracts/test/security/PairedDesk.t.sol |
| LOCAL_REPRODUCTION | PAIRED_DESK_GAP15PCT_CAP2500: Paired long/short desks run by one actor, scored jointly (gap15pct_cap2500): pool net result after principal loss, fees and profit share | -159.83 | local Foundry EVM | proof/experiments/paired-desk/gap15pct_cap2500.json<br>contracts/test/security/PairedDesk.t.sol |
| LOCAL_REPRODUCTION | PAIRED_DESK_GAP8PCT_CAP2500: Paired long/short desks run by one actor, scored jointly (gap8pct_cap2500): pool net result after principal loss, fees and profit share | -35.94 | local Foundry EVM | proof/experiments/paired-desk/gap8pct_cap2500.json<br>contracts/test/security/PairedDesk.t.sol |
| LOCAL_REPRODUCTION | PAIRED_DESK_GAPDOWN15PCT_CAP2500: Paired long/short desks run by one actor, scored jointly (gapdown15pct_cap2500): pool net result after principal loss, fees and profit share | -159.70 | local Foundry EVM | proof/experiments/paired-desk/gapdown15pct_cap2500.json<br>contracts/test/security/PairedDesk.t.sol |
| LOCAL_REPRODUCTION | PAIRED_DESK_TREND3PCT_ATOMIC_KEEPER_CAP2500: Paired long/short desks run by one actor, scored jointly (trend3pct_atomic_keeper_cap2500): pool net result after principal loss, fees and profit share | 9.24 | local Foundry EVM | proof/experiments/paired-desk/trend3pct_atomic_keeper_cap2500.json<br>contracts/test/security/PairedDesk.t.sol |
| LOCAL_REPRODUCTION | PAIRED_DESK_TREND3PCT_DELAYED_KEEPER_CAP2500: Paired long/short desks run by one actor, scored jointly (trend3pct_delayed_keeper_cap2500): pool net result after principal loss, fees and profit share | 9.24 | local Foundry EVM | proof/experiments/paired-desk/trend3pct_delayed_keeper_cap2500.json<br>contracts/test/security/PairedDesk.t.sol |
| LOCAL_REPRODUCTION | REFERENCE_MODEL_AGREEMENT: Independent Python reference model (exact rational arithmetic, no shared code) agrees with contract outputs from real desk executions | 26/26 | local Foundry EVM | proof/reference_model/results.json<br>proof/reference_model/imprest_model.py |
| PENDING | KEEPER_BOUNTY_COVERS_MONAD_GAS: The payable 0.5 AUSD keeper bounty exceeds measured Monad enforce() gas cost plus margin | PENDING | Monad Testnet | none yet |
| PENDING | MAINNET_AUSD_PAID_BY_CONTRACT: AUSD paid out by contract to real traders on Monad mainnet | PENDING | Monad Mainnet | none yet |
| PENDING | MAINNET_CLAIM_TO_VERIFIED_SECONDS: Seconds from claim submission to an independently verified wallet balance on mainnet | PENDING | Monad Mainnet | none yet |
| PENDING | MAINNET_PRINCIPAL_LOSS_BEYOND_STAKES: Pool principal loss beyond first-loss stakes across included mainnet breaches | PENDING | Monad Mainnet | none yet |
| PENDING | MAINNET_REAL_TRADERS_FUNDED: Real outside traders evaluated and funded on mainnet | PENDING | Monad Mainnet | none yet |
| PENDING | TESTNET_CANONICAL_CLAIM_PAID: Realized profit claimed on Monad testnet and verified on an independent RPC | PENDING | Monad Testnet | none yet |