Skip to content
EXDATE
Building

Integration overview

Reading protocol state and separating a position from a contract.

EXDATE is designed to be called. Separating a position, pricing a claim and settling an outcome are all callable operations.

Separating from a contract

solidity
(uint256 principal, uint256 rights) =
    exdate.split(asset, amount, eventId);

The call transfers the underlying into the event vault and mints the pair to the caller. Both return values equal the amount deposited; they are returned separately because the two tokens have different addresses.

Recombining

solidity
uint256 underlying =
    exdate.recombine(eventId, amount);

Redeeming a settled distribution

solidity
uint256 received =
    exdate.redeem(eventId, rightsAmount);

Reading event state

typescript
interface MarketDataAdapter {
  listEvents(at?: number): MarketRow[];
  getEvent(id: string, at?: number): MarketRow | undefined;
  query(q: MarketQuery, at?: number): MarketRow[];
  totals(at?: number): ProtocolTotals;
}
The adapter interface the interface itself is built on

The application reads all protocol state through adapters with these shapes. In this preview environment they resolve against a deterministic engine; against a deployed protocol they resolve against an indexer and the contracts, without the interface changing.

The contract suite is not yet deployed. The signatures above describe the intended interface. Addresses and ABIs are published here once contracts are deployed and verified.