A market that keeps moving
after the close.
TIDE is a time-driven market protocol for a fixed-supply token on Robinhood Chain. It combines spot trading, after-hours opening orders and two-sided price predictions into one deterministic cycle.
The spot market does not simply stop. When the live session closes, TIDE turns the gap before the next session into an explicit market for orders and expectations.
Protocol architecture
TIDE separates trading, scheduling, settlement, positions and rewards into dedicated contracts. The controller acts as the time and settlement coordinator while custody remains isolated in purpose-built components.
TideTokenFixed-supply ERC-20 used by the official TIDE/WETH market.
TideHookControls the official Uniswap v4 pool, enforces the market schedule and maintains the geometric price oracle.
TideLiquidityManagerCreates and holds the protocol liquidity position and collects LP fees.
ProtocolControllerCoordinates the Europe/Madrid market clock, TWAP references, settlement and market outcomes.
OpeningAuctionEngineCollects after-hours orders and computes a uniform opening price that maximizes executable volume.
ConditionalPositionsERC-1155 position layer used for binary opening-price outcomes.
PredictionBookTwo-sided YES/WETH order book for next-open direction markets.
RewardsDistributorDistributes WETH rewards according to holder balance and holding time.
Flood, Ebb and Slack
The protocol surface is determined by the contract clock. Each phase exposes a different set of actions and produces the input required by the next one.
Users buy and sell TIDE through the official pool. The session produces the closing reference used by the next-open markets.
Users queue opening orders and trade directional positions on whether the next official open will be above or below the previous close.
Eligible opening interest is locked, the auction clears at one price and prediction positions settle from that official opening result.
The scheduling layer is defined in the Europe/Madrid timezone and coordinated by ProtocolController.
One book. One opening price.
After-hours orders do not execute independently against a stale last price. They enter a common opening book and clear together at a uniform price.
- 01Queue
Users submit irrevocable opening orders while after-hours markets are active.
- 02Lock
Eligible buy and sell interest is frozen for the opening event.
- 03Find the clearing price
The engine selects the price that maximizes total executable volume.
- 04Execute uniformly
Every matched opening order receives the same official opening price. Marginal interest can be prorated.
Only the net imbalance needs to interact with the AMM. Claims are pull-based, and custody is separated into the auction vault/executor path.
Price direction without leverage
TIDE exposes a binary market on the next official opening price. Positions express a directional view rather than leveraged spot exposure.
Conditional shares are represented through ConditionalPositions, while PredictionBook provides the two-sided order book. The opening auction's official price is the settlement reference.
If the official open remains inside the ±1% band, or the auction resolves through an invalid/aborted fallback path, YES and NO each redeem at half collateral.
Fees flow back to holders
The reward layer distributes WETH using balance × time rather than a single-block snapshot. This rewards persistent exposure to the token instead of transient balance changes around distribution time.
If an epoch has no eligible holders, its reward amount is re-queued instead of becoming trapped.
TIDE token
TideToken is a fixed-supply ERC-20 designed around a single official market.
The final token address can be precomputed with CREATE2 using TideTokenDeployer, allowing the rest of the protocol to be configured before token bytecode is materialized.
Protocol parameters
Uniswap v4 can additionally apply a directional protocol fee. Settlement reads the live fee state and accounts for the composed fee when calculating required input.
Trust and administration
TIDE v1 is not trustless administration. The upgradeable protocol components are controlled by the deployer EOA and there is currently no Safe, timelock or guardian layer.
TideLiquidityManager is UUPS-upgradeable. A verified recovery implementation can be used by the administrator to withdraw or migrate the managed liquidity position.
The initial implementation intentionally separates escrowed user funds from arbitrary sweep functionality: auction custody and conditional-position custody do not expose a generic sweep path. Pausing also does not block user refund, cancellation, merge or redemption paths that are designed to remain available.
The contracts should not be deployed with real user funds before an independent security review, and production documentation should disclose administrative capabilities prominently.
Deployment model
The deployment script targets chain ID 4663, validates the canonical Uniswap v4 dependencies and supports either a one-pass deployment or a two-stage CREATE2 flow.
Deploy and configure protocol contracts while the predicted TIDE address can still have no bytecode.
Create exactly the precomputed token, allocate supply to the manager and finalize reward/exclusion configuration.
Check owners, bytecode, PoolKey, official dependencies, exclusions and cross-contract references.
Pool launch is deliberately separate from deployment and should only happen after final verification.
forge fmt --check forge build --sizes forge test -vv forge lint ./scripts/check-storage-layout.sh