Program reference
Network constants
| Item | Value |
|---|---|
| Slip program | 8VNZ5VseAcFaYhAZxetgE5N8eiD17ZZNchGhoatYUUXw |
| TxLINE devnet program | 6pW64gN1s2uqjHkn1unFeEjAwJkPGHoppGvS715wyP2J |
| Devnet settlement mint | ELWTKspHKCnCfCiCiqYw1EDH77k8VCP74dK9qytG2Ujh |
| Fee treasury | DZqzfMTmFyDvhLWamA4qjiEUUzS8LoTZ6d2KMkXwsiXh |
Accounts
Market
PDA seeds: ["market", creator, id_le_u64]
Stores the creator, settlement mint, MarketExpression, two to five labels, two to eight bands, five
pool counters, entry and settlement deadlines, fee and tip rates, state, winner, ticket count, claimed
winning stake, timestamps, and PDA bump.
MarketTicket
PDA seeds: ["ticket", market, owner, nonce_le_u64]
Stores market, owner, nonce, outcome index, stake, claimed flag, and PDA bump. A ticket is immutable
after purchase. Reusing a nonce for the same market and owner fails because the PDA already exists.
Vault
The vault is the associated token account for the market PDA and the market’s six-decimal classic SPL mint.Instructions
| Instruction | Required behavior |
|---|---|
create_market | Validates expression, labels, bands, mint decimals, fee/tip ceilings, and deadlines; initializes market and vault. |
buy_ticket | Before entry close, transfers at least 1 USDT into the vault and creates one ticket. |
resolve_market | After resolve_at, verifies a terminal TxLINE proof, selects a band, routes fee/tip, and records the winner; insufficient liquidity forces void. |
claim_ticket | Refunds a voided ticket or pays a winning ticket proportionally; losing and repeat claims fail. |
void_market | Voids one-sided markets after entry close or any unresolved market after void_at. |
States
| State | Allowed transitions |
|---|---|
Open | Resolved or Voided |
Resolved | No state transition; winning tickets may claim. |
Voided | No state transition; all tickets may refund. |
Limits
| Limit | Value |
|---|---|
| Minimum stake | 1_000_000 minor units, 1 USDT |
| Settlement mint decimals | 6 |
| Outcomes | 2–5 |
| Outcome bands | 2–8 |
| Outcome label | 48 bytes maximum |
| Fee ceiling | 500 bps |
| Resolver tip ceiling | 200 bps |
Settlement arithmetic
u128. The final winning claim transfers remaining rounding dust to the fee
treasury. A void refund is exactly the ticket stake and has no fee or tip.
Errors
| Error | Meaning |
|---|---|
BadState | Account state or vault balance does not permit the instruction. |
ClaimNotOpen | Proof timestamp or clock is before resolution eligibility. |
VoidNotReached | Neither the one-sided entry-close rule nor timeout applies. |
BpsTooHigh | Fee or resolver tip exceeds its ceiling. |
WrongRootsAccount | TxLINE roots owner, PDA, layout, or slot is invalid. |
ProofInvalid | Merkle folding does not reproduce the anchored root. |
FixtureMismatch | Proof fixture differs from the market fixture. |
EpochDayMismatch | Proof day and roots account day differ. |
MissingSecondStat | Expression and proof disagree on second-stat shape. |
StatKeyMismatch | Proved stat key differs from the expression. |
EntryClosed | Purchase occurred at or after the entry deadline. |
InvalidTerms | Stat key, side, period, or operation is non-canonical. |
FixtureNotFinal | Proof is not from phase 5, 10, 13, or 100. |
StakeBelowMinimum | Ticket stake is below 1 USDT. |
WrongMintDecimals | Settlement mint does not use six decimals. |
LosingTicket | Resolved ticket does not hold the winning outcome. |
TicketAlreadyClaimed | Ticket has already paid or refunded. |
InvalidOutcomes | Labels or bands do not form a valid complete market. |
InvalidOutcomeIndex | Outcome index is outside the market’s labels. |
Overflow / BadNumeric | Integer calculation or conversion is outside the supported range. |