Lifecycle
- Open. The maker deposits collateral per side, chooses long or short, sets an expiry and can optionally reserve the position for one taker.
- Match. The taker deposits the same amount. The contract reads a fresh oracle report and stores it as the start price.
- Settle. After expiry, anyone can submit a fresh oracle report. The contract computes both payouts and transfers them directly to the two sides.
Payout formula
The long result is collateral plus twice the percentage price change. The short receives the opposite result. Each side starts at one collateral unit, and both results are capped between zero and two collateral units. Integer rounding never changes the combined payout.
gain = collateral × 2 × absolute price move long payout + short payout = total collateral
Oracle rules
The market is deployed for one Chainlink-compatible Stock Token feed. Reports must be positive, complete and no older than the configured maximum age. The start price is not selected by the maker. It is recorded in the matching transaction.
Cancellation and recovery
The maker can cancel an unmatched position. After an unmatched expiry, the maker can reclaim the deposit. If a matched position cannot obtain a valid settlement for seven days after expiry, either side can call the equal-refund path so collateral cannot remain locked indefinitely.
Terms and risks
A side can lose its entire deposit when the underlying price moves at least 50 percent against it. Oracle availability, transaction timing, USDG behavior, smart-contract behavior and the underlying Stock Token market remain relevant. The contracts are unaudited.
Current deployment
The public app is configured for Robinhood Chain mainnet with canonical USDG and the verified market feed.
Open application