Binary recorder wire format#
<!-- Generated by scripts/generate_docs_event_wire.mjs from program/src/events/schema.rs and recorder.rs. -->This is the language-neutral byte layout of authenticated Seesaw LOG inner instructions. It is distinct from text log messages, REST responses, and the SDK’s coarse projection event kinds. An assigned legacy layout does not imply a live instruction still emits it.
Recorder version: 1. Header after the instruction discriminator: 95 bytes. Maximum payload after that discriminator: 900 bytes; maximum complete instruction data: 901 bytes.
All multibyte integers are little-endian. i64 uses signed two’s complement. Public keys are raw 32-byte addresses, not base58 text. bytes32 is an uninterpreted 32-byte value. Fields are packed in the order listed with no alignment padding.
Authenticate before decoding#
Require a successful transaction and the expected Seesaw program ID for the inner instruction. The recorder uses the self-program account and its log authority PDA; arbitrary text containing an event name is not evidence. Use the SDK decoder and validation contract in stream consumer recipes. Preserve commitment, slot, signature, instruction index, batch index, and event index for deduplication and rollback handling.
Batch header#
Offsets in this table start at byte zero of the complete inner instruction data.
| Offset | Bytes | Source field |
|---|---|---|
| 0 | 1 | discriminator::LOG |
| 1 | 1 | RECORDER_VERSION |
| 2 | 1 | instruction_kind |
| 3 | 1 | LOG_AUTHORITY_KIND |
| 4 | 2 | batch_index |
| 6 | 8 | event_sequence |
| 14 | 8 | slot |
| 22 | 8 | unix_timestamp |
| 30 | 32 | subject_addr |
| 62 | 32 | signer |
| 94 | 2 | event_count |
The discriminator is 0xFF; LOG_AUTHORITY_KIND is 2. Event bodies start at byte 96. There is no per-event length prefix: read the one-byte tag, select its fixed layout, then advance by that layout’s total bytes. Decode exactly event_count events and reject truncation or unexplained trailing bytes. An unknown tag cannot be skipped safely using a guessed length; update the decoder or quarantine that batch.
Fixed arrays#
recipients: 8 consecutive public keys.resolver_entries: 8 consecutive 72-byte registry entries; use the resolver-registry layout in account layouts.numerators: 8 consecutive little-endianu16payout numerators.
Arrays occupy their full fixed width even when an accompanying active-count field is smaller.
Event inventory#
The schema defines 81 assigned layouts. Tag 46 is reserved and has no body layout. All offsets below are relative to the beginning of that event, including its tag at offset zero.
Field layouts#
OrderFilled#
Tag 1 (ORDER_FILLED), 118 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 1 | side | u8 |
| 2 | 2 | price_bps | u16 |
| 4 | 8 | quantity | u64 |
| 12 | 8 | taker_fees | u64 |
| 20 | 8 | fee_protocol | u64 |
| 28 | 8 | fee_creator | u64 |
| 36 | 8 | fee_referral | u64 |
| 44 | 32 | referrer_earnings | pubkey |
| 76 | 1 | protocol_treasury_index | u8 |
| 77 | 1 | effective_protocol_treasury_index | u8 |
| 78 | 8 | supply_delta_yes | i64 |
| 86 | 8 | supply_delta_no | i64 |
| 94 | 8 | creator_fees_accumulated_after | u64 |
| 102 | 8 | referral_fees_accumulated_after | u64 |
| 110 | 8 | fee_maker | u64 |
OrderFilledMaker#
Tag 2 (ORDER_FILLED_MAKER), 59 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 32 | maker | pubkey |
| 33 | 8 | maker_order_id | u64 |
| 41 | 2 | price_bps | u16 |
| 43 | 8 | quantity | u64 |
| 51 | 8 | collateral | u64 |
OrderPlaced#
Tag 3 (ORDER_PLACED), 52 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 1 | side | u8 |
| 2 | 2 | price_bps | u16 |
| 4 | 8 | quantity | u64 |
| 12 | 8 | order_id | u64 |
| 20 | 16 | client_order_id | bytes16 |
| 36 | 8 | supply_delta_yes | i64 |
| 44 | 8 | supply_delta_no | i64 |
OrderEvicted#
Tag 4 (ORDER_EVICTED), 52 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 32 | maker | pubkey |
| 33 | 8 | order_id | u64 |
| 41 | 2 | price_bps | u16 |
| 43 | 8 | quantity | u64 |
| 51 | 1 | original_side | u8 |
SharesMinted#
Tag 5 (SHARES_MINTED), 49 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 32 | user | pubkey |
| 33 | 8 | amount | u64 |
| 41 | 8 | vault_after | u64 |
SharesRedeemed#
Tag 6 (SHARES_REDEEMED), 65 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 32 | user | pubkey |
| 33 | 8 | amount | u64 |
| 41 | 8 | payout | u64 |
| 49 | 8 | supply_debit | u64 |
| 57 | 8 | vault_after | u64 |
MarketResolved#
Tag 7 (MARKET_RESOLVED), 2 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 1 | outcome | u8 |
MarketExpired#
Tag 8 (MARKET_EXPIRED), 1 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
ForceClosed#
Tag 9 (FORCE_CLOSED), 49 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 32 | user | pubkey |
| 33 | 8 | refund | u64 |
| 41 | 8 | vault_after | u64 |
CreatorFeesDeferred#
Tag 10 (CREATOR_FEES_DEFERRED), 9 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 8 | amount | u64 |
CreatorFeesClaimed#
Tag 11 (CREATOR_FEES_CLAIMED), 49 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 8 | amount | u64 |
| 9 | 32 | destination | pubkey |
| 41 | 8 | accumulated_after | u64 |
OrderCancelled#
Tag 12 (ORDER_CANCELLED), 50 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 32 | user | pubkey |
| 33 | 8 | order_id | u64 |
| 41 | 8 | collateral_returned | u64 |
| 49 | 1 | side | u8 |
OrderForceCancelled#
Tag 13 (ORDER_FORCE_CANCELLED), 82 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 32 | maker | pubkey |
| 33 | 32 | admin | pubkey |
| 65 | 8 | order_id | u64 |
| 73 | 8 | collateral_returned | u64 |
| 81 | 1 | side | u8 |
OrderReclaimed#
Tag 14 (ORDER_RECLAIMED), 90 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 32 | maker | pubkey |
| 33 | 32 | caller | pubkey |
| 65 | 8 | order_id | u64 |
| 73 | 8 | collateral_returned | u64 |
| 81 | 1 | side | u8 |
| 82 | 8 | bounty_paid | u64 |
SnapshotCaptured#
Tag 15 (SNAPSHOT_CAPTURED), 9 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 8 | price | i64 |
SharesWithdrawn#
Tag 16 (SHARES_WITHDRAWN), 42 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 32 | user | pubkey |
| 33 | 8 | amount | u64 |
| 41 | 1 | token_type | u8 |
MarketCreated#
Tag 17 (MARKET_CREATED), 49 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 8 | duration | u64 |
| 9 | 8 | market_id | u64 |
| 17 | 32 | feed_id | bytes32 |
MarketClosed#
Tag 18 (MARKET_CLOSED), 9 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 8 | rent_recovered | u64 |
ConfigInitialized#
Tag 19 (CONFIG_INITIALIZED), 291 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 32 | authority | pubkey |
| 33 | 256 | recipients | recipients |
| 289 | 2 | tick_size_bps | u16 |
ProtocolPaused#
Tag 20 (PROTOCOL_PAUSED), 33 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 32 | authority | pubkey |
ProtocolUnpaused#
Tag 21 (PROTOCOL_UNPAUSED), 33 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 32 | authority | pubkey |
TickSizeUpdated#
Tag 22 (TICK_SIZE_UPDATED), 3 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 2 | tick_size_bps | u16 |
MinRestingNotionalUpdated#
Tag 23 (MIN_RESTING_NOTIONAL_UPDATED), 9 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 8 | min_resting_notional | u64 |
FeeConfigUpdated#
Tag 24 (FEE_CONFIG_UPDATED), 17 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 2 | fee_cap_bps | u16 |
| 3 | 2 | decay_rate_bps | u16 |
| 5 | 2 | protocol_share_bps | u16 |
| 7 | 2 | creator_share_bps | u16 |
| 9 | 2 | referral_share_bps | u16 |
| 11 | 2 | maker_rebate_share_bps | u16 |
| 13 | 4 | maker_rebate_min_rest_seconds | u32 |
ReferrerSet#
Tag 25 (REFERRER_SET), 73 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 32 | referee | pubkey |
| 33 | 32 | referrer | pubkey |
| 65 | 8 | expires_at | i64 |
ReferralAccrued#
Tag 26 (REFERRAL_ACCRUED), 73 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 32 | referee | pubkey |
| 33 | 32 | referrer | pubkey |
| 65 | 8 | amount | u64 |
ReferralForfeited#
Tag 27 (REFERRAL_FORFEITED), 42 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 32 | referee | pubkey |
| 33 | 8 | amount | u64 |
| 41 | 1 | reason | u8 |
ReferralClaimed#
Tag 28 (REFERRAL_CLAIMED), 50 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 32 | referrer | pubkey |
| 33 | 8 | amount | u64 |
| 41 | 1 | treasury_index | u8 |
| 42 | 8 | accumulated_after | u64 |
AuthoritySuccessorNamed#
Tag 29 (AUTHORITY_SUCCESSOR_NAMED), 65 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 32 | current | pubkey |
| 33 | 32 | new | pubkey |
AuthorityClaimed#
Tag 30 (AUTHORITY_CLAIMED), 65 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 32 | prior | pubkey |
| 33 | 32 | new | pubkey |
PostOnlyModeEnabled#
Tag 31 (POST_ONLY_MODE_ENABLED), 34 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 32 | authority | pubkey |
| 33 | 1 | previous_mode | u8 |
PostOnlyModeDisabled#
Tag 32 (POST_ONLY_MODE_DISABLED), 34 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 32 | authority | pubkey |
| 33 | 1 | previous_mode | u8 |
MarketEmergencyStatusChanged#
Tag 33 (MARKET_EMERGENCY_STATUS_CHANGED), 67 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 1 | previous_status | u8 |
| 2 | 1 | new_status | u8 |
| 3 | 32 | authority | pubkey |
| 35 | 32 | reason | pubkey |
MarketCapUpdated#
Tag 34 (MARKET_CAP_UPDATED), 41 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 32 | authority | pubkey |
| 33 | 8 | max_total_shares | u64 |
ReferrerEarningsAccountInitialized#
Tag 35 (REFERRER_EARNINGS_ACCOUNT_INITIALIZED), 33 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 32 | referrer | pubkey |
PositionClosed#
Tag 36 (POSITION_CLOSED), 73 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 32 | market | pubkey |
| 33 | 32 | owner | pubkey |
| 65 | 8 | rent_recovered | u64 |
TreasuryRecipientsUpdated#
Tag 37 (TREASURY_RECIPIENTS_UPDATED), 297 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 32 | authority | pubkey |
| 33 | 256 | recipients | recipients |
| 289 | 8 | timestamp | i64 |
FundsDeposited#
Tag 38 (FUNDS_DEPOSITED), 49 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 32 | user | pubkey |
| 33 | 8 | amount | u64 |
| 41 | 8 | quote_free_after | u64 |
FundsWithdrawn#
Tag 39 (FUNDS_WITHDRAWN), 49 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 32 | user | pubkey |
| 33 | 8 | amount | u64 |
| 41 | 8 | quote_free_after | u64 |
MakerFillApplied#
Tag 40 (MAKER_FILL_APPLIED), 89 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 32 | maker | pubkey |
| 33 | 32 | taker | pubkey |
| 65 | 8 | yes_delta | i64 |
| 73 | 8 | no_delta | i64 |
| 81 | 8 | quote_delta | i64 |
OrderReduced#
Tag 41 (ORDER_REDUCED), 60 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 32 | user | pubkey |
| 33 | 8 | order_id | u64 |
| 41 | 1 | side | u8 |
| 42 | 2 | price_bps | u16 |
| 44 | 8 | removed_quantity | u64 |
| 52 | 8 | remaining_quantity | u64 |
MarkPositionSettled#
Tag 42 (MARK_POSITION_SETTLED), 42 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 32 | owner | pubkey |
| 33 | 8 | amount | u64 |
| 41 | 1 | settled | u8 |
TraderLedgerResized#
Tag 43 (TRADER_LEDGER_RESIZED), 49 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 32 | market | pubkey |
| 33 | 8 | new_size | u64 |
| 41 | 8 | old_size | u64 |
ForceCloseOrderRemoved#
Tag 44 (FORCE_CLOSE_ORDER_REMOVED), 41 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 32 | user | pubkey |
| 33 | 8 | order_id | u64 |
ForceCloseProgress#
Tag 45 (FORCE_CLOSE_PROGRESS), 78 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 32 | user | pubkey |
| 33 | 8 | refund | u64 |
| 41 | 2 | processed | u16 |
| 43 | 1 | has_more | u8 |
| 44 | 8 | collateral_deposited | u64 |
| 52 | 8 | collateral_locked | u64 |
| 60 | 8 | locked_yes | u64 |
| 68 | 8 | locked_no | u64 |
| 76 | 2 | order_count | u16 |
UpdateOperationalParams#
Tag 47 (UPDATE_OPERATIONAL_PARAMS), 68 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 8 | closer_reward_lamports | u64 |
| 9 | 8 | max_price_staleness_seconds | u64 |
| 17 | 8 | market_expiration_window_seconds | u64 |
| 25 | 8 | min_market_duration_seconds | u64 |
| 33 | 8 | max_market_duration_seconds | u64 |
| 41 | 8 | max_order_size | u64 |
| 49 | 8 | timestamp | i64 |
| 57 | 1 | spline_flags | u8 |
| 58 | 8 | spline_min_commitment | u64 |
| 66 | 2 | spline_mid_jump_reset_bps | u16 |
PauserUpdated#
Tag 48 (PAUSER_UPDATED), 97 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 32 | authority | pubkey |
| 33 | 32 | previous_pauser | pubkey |
| 65 | 32 | new_pauser | pubkey |
ReferralFeeDeferred#
Tag 49 (REFERRAL_FEE_DEFERRED), 57 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 32 | referrer | pubkey |
| 33 | 8 | amount | u64 |
| 41 | 8 | position_pending | u64 |
| 49 | 8 | market_pending | u64 |
ReferralRollupCompleted#
Tag 50 (REFERRAL_ROLLUP_COMPLETED), 58 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 32 | referrer | pubkey |
| 33 | 8 | amount | u64 |
| 41 | 1 | position_count | u8 |
| 42 | 8 | earnings_accumulated | u64 |
| 50 | 8 | market_pending | u64 |
ReferrerTreasuryShardInitialized#
Tag 51 (REFERRER_TREASURY_SHARD_INITIALIZED), 66 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 1 | treasury_index | u8 |
| 2 | 32 | shard | pubkey |
| 34 | 32 | payer | pubkey |
ReferralPendingForfeited#
Tag 52 (REFERRAL_PENDING_FORFEITED), 49 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 32 | referrer | pubkey |
| 33 | 8 | amount | u64 |
| 41 | 8 | remaining_market_pending | u64 |
CloserRewardsToppedUp#
Tag 53 (CLOSER_REWARDS_TOPPED_UP), 49 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 32 | funder | pubkey |
| 33 | 8 | lamports | u64 |
| 41 | 8 | budget_after | u64 |
SelfTradePrevented#
Tag 54 (SELF_TRADE_PREVENTED), 59 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 32 | owner | pubkey |
| 33 | 8 | order_id | u64 |
| 41 | 1 | side | u8 |
| 42 | 1 | action | u8 |
| 43 | 8 | released_or_decremented_quantity | u64 |
| 51 | 8 | remaining_quantity | u64 |
MakerRebateCredited#
Tag 55 (MAKER_REBATE_CREDITED), 95 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 1 | subject_kind | u8 |
| 2 | 32 | subject | pubkey |
| 34 | 32 | maker | pubkey |
| 66 | 8 | maker_order_id | u64 |
| 74 | 8 | fill_taker_fee | u64 |
| 82 | 8 | rebate | u64 |
| 90 | 4 | resting_age_seconds | u32 |
| 94 | 1 | eligible | u8 |
SplineFill#
Tag 56 (SPLINE_FILL), 148 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 32 | spline | pubkey |
| 33 | 32 | maker | pubkey |
| 65 | 32 | taker | pubkey |
| 97 | 1 | taker_side | u8 |
| 98 | 2 | price_bps | u16 |
| 100 | 8 | lots | u64 |
| 108 | 8 | collateral_spent | u64 |
| 116 | 8 | pair_minted | u64 |
| 124 | 8 | rebate | u64 |
| 132 | 8 | spline_supply_delta_yes | i64 |
| 140 | 8 | spline_supply_delta_no | i64 |
SplineAttached#
Tag 57 (SPLINE_ATTACHED), 81 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 32 | spline | pubkey |
| 33 | 32 | market | pubkey |
| 65 | 8 | commit_amount | u64 |
| 73 | 8 | attached_at | i64 |
SplineSettled#
Tag 58 (SPLINE_SETTLED), 97 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 32 | spline | pubkey |
| 33 | 32 | market | pubkey |
| 65 | 8 | payout | u64 |
| 73 | 8 | returned_collateral | u64 |
| 81 | 8 | yes_supply_dec | u64 |
| 89 | 8 | no_supply_dec | u64 |
SplineShapeUpdated#
Tag 59 (SPLINE_SHAPE_UPDATED), 43 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 32 | spline | pubkey |
| 33 | 1 | bid_region_count | u8 |
| 34 | 1 | ask_region_count | u8 |
| 35 | 8 | exposure | u64 |
SplineInitialized#
Tag 60 (SPLINE_INITIALIZED), 97 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 32 | spline | pubkey |
| 33 | 32 | maker | pubkey |
| 65 | 32 | vault | pubkey |
SplineVaultDeposited#
Tag 61 (SPLINE_VAULT_DEPOSITED), 81 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 32 | spline | pubkey |
| 33 | 32 | maker | pubkey |
| 65 | 8 | amount | u64 |
| 73 | 8 | vault_balance_after | u64 |
SplineVaultWithdrawn#
Tag 62 (SPLINE_VAULT_WITHDRAWN), 81 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 32 | spline | pubkey |
| 33 | 32 | maker | pubkey |
| 65 | 8 | amount | u64 |
| 73 | 8 | vault_balance_after | u64 |
SplineClosed#
Tag 63 (SPLINE_CLOSED), 81 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 32 | spline | pubkey |
| 33 | 32 | maker | pubkey |
| 65 | 8 | tokens_returned | u64 |
| 73 | 8 | lamports_returned | u64 |
ResolverRegistryUpdated#
Tag 64 (RESOLVER_REGISTRY_UPDATED), 627 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 32 | authority | pubkey |
| 33 | 8 | epoch | u64 |
| 41 | 1 | market_kinds_enabled | u8 |
| 42 | 1 | count | u8 |
| 43 | 576 | entries | resolver_entries |
| 619 | 8 | timestamp | i64 |
ExternalMarketOpened#
Tag 65 (EXTERNAL_MARKET_OPENED), 78 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 32 | resolver | pubkey |
| 33 | 1 | market_kind | u8 |
| 34 | 1 | leg_count | u8 |
| 35 | 32 | external_ref_hash | bytes32 |
| 67 | 8 | close_ts | i64 |
| 75 | 1 | platform_id | u8 |
| 76 | 2 | template_version | u16 |
ExternalMarketHalted#
Tag 66 (EXTERNAL_MARKET_HALTED), 41 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 32 | resolver | pubkey |
| 33 | 8 | halted_at | i64 |
ExternalMarketResolved#
Tag 67 (EXTERNAL_MARKET_RESOLVED), 60 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 32 | resolver | pubkey |
| 33 | 1 | leg_count | u8 |
| 34 | 16 | payout_numerators | numerators |
| 50 | 1 | provenance | u8 |
| 51 | 1 | outcome | u8 |
| 52 | 8 | resolved_at | i64 |
ExternalMarketExpired#
Tag 68 (EXTERNAL_MARKET_EXPIRED), 28 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 1 | leg_count | u8 |
| 2 | 16 | payout_numerators | numerators |
| 18 | 1 | provenance | u8 |
| 19 | 1 | outcome | u8 |
| 20 | 8 | resolved_at | i64 |
ExternalMarketPreallocationBegun#
Tag 69 (EXTERNAL_MARKET_PREALLOCATION_BEGUN), 179 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 32 | receipt | pubkey |
| 33 | 32 | market | pubkey |
| 65 | 32 | resolver | pubkey |
| 97 | 32 | creator | pubkey |
| 129 | 32 | external_ref_hash | bytes32 |
| 161 | 1 | market_kind | u8 |
| 162 | 1 | leg_count | u8 |
| 163 | 4 | orderbook_capacity | u32 |
| 167 | 4 | trader_ledger_seats | u32 |
| 171 | 8 | permissionless_reclaim_at | i64 |
ExternalMarketPreallocationConsumed#
Tag 70 (EXTERNAL_MARKET_PREALLOCATION_CONSUMED), 113 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 32 | receipt | pubkey |
| 33 | 32 | market | pubkey |
| 65 | 32 | creator | pubkey |
| 97 | 8 | receipt_rent_returned | u64 |
| 105 | 8 | opened_at | i64 |
ExternalMarketPreallocationReclaimed#
Tag 71 (EXTERNAL_MARKET_PREALLOCATION_RECLAIMED), 161 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 32 | receipt | pubkey |
| 33 | 32 | market | pubkey |
| 65 | 32 | creator | pubkey |
| 97 | 32 | caller | pubkey |
| 129 | 8 | orderbook_lamports | u64 |
| 137 | 8 | trader_ledger_lamports | u64 |
| 145 | 8 | receipt_lamports | u64 |
| 153 | 8 | reclaimed_at | i64 |
ReclaimWitnessEpochUpdated#
Tag 72 (RECLAIM_WITNESS_EPOCH_UPDATED), 51 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 8 | epoch | u64 |
| 9 | 8 | active_from | i64 |
| 17 | 1 | threshold | u8 |
| 18 | 1 | member_count | u8 |
| 19 | 32 | deployment_id | bytes32 |
ReclaimWitnessVerified#
Tag 73 (RECLAIM_WITNESS_VERIFIED), 69 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 32 | claim_identifier | bytes32 |
| 33 | 32 | witness | pubkey |
| 65 | 1 | member_index | u8 |
| 66 | 1 | verified_count | u8 |
| 67 | 1 | threshold | u8 |
| 68 | 1 | status | u8 |
ReclaimClaimConsumed#
Tag 74 (RECLAIM_CLAIM_CONSUMED), 34 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 32 | claim_identifier | bytes32 |
| 33 | 1 | semantic_fact | u8 |
ExternalCloseTimeUpdated#
Tag 75 (EXTERNAL_CLOSE_TIME_UPDATED), 49 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 32 | claim_identifier | bytes32 |
| 33 | 8 | old_close_ts | i64 |
| 41 | 8 | new_close_ts | i64 |
ReclaimClaimClosed#
Tag 76 (RECLAIM_CLAIM_CLOSED), 74 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 32 | claim_identifier | bytes32 |
| 33 | 32 | rent_payer | pubkey |
| 65 | 8 | lamports | u64 |
| 73 | 1 | reason | u8 |
SplineRecovered#
Tag 77 (SPLINE_RECOVERED), 93 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 32 | spline | pubkey |
| 33 | 32 | market | pubkey |
| 65 | 8 | returned_collateral | u64 |
| 73 | 8 | yes_inventory_materialized | u64 |
| 81 | 8 | no_inventory_materialized | u64 |
| 89 | 4 | generation | u32 |
OrderRemainderDiscarded#
Tag 78 (ORDER_REMAINDER_DISCARDED), 13 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 1 | side | u8 |
| 2 | 2 | price_bps | u16 |
| 4 | 8 | quantity | u64 |
| 12 | 1 | reason | u8 |
ExternalMarketPolicyCreated#
Tag 79 (EXTERNAL_MARKET_POLICY_CREATED), 236 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 32 | policy | pubkey |
| 33 | 32 | verifier_program | pubkey |
| 65 | 32 | verifier_config | pubkey |
| 97 | 2 | template_version | u16 |
| 99 | 1 | source_kind | u8 |
| 100 | 32 | template_descriptor_hash | bytes32 |
| 132 | 32 | semantic_policy_hash | bytes32 |
| 164 | 32 | definition_claim_digest | bytes32 |
| 196 | 32 | definition_fact_hash | bytes32 |
| 228 | 4 | max_proof_age_s | u32 |
| 232 | 4 | finality_delay_s | u32 |
ReclaimVerifierClaimUsed#
Tag 80 (RECLAIM_VERIFIER_CLAIM_USED), 238 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 32 | verifier_program | pubkey |
| 33 | 32 | verifier_receipt | pubkey |
| 65 | 32 | claim_identifier | bytes32 |
| 97 | 32 | signed_claim_digest | bytes32 |
| 129 | 32 | proof_buffer_hash | bytes32 |
| 161 | 32 | condition_hash | bytes32 |
| 193 | 32 | derived_fact_hash | bytes32 |
| 225 | 4 | reclaim_epoch | u32 |
| 229 | 8 | timestamp_s | u64 |
| 237 | 1 | operation | u8 |
OracleObservationSubmitted#
Tag 81 (ORACLE_OBSERVATION_SUBMITTED), 41 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 32 | observation | pubkey |
| 33 | 8 | publish_time | i64 |
OracleContestFinalized#
Tag 82 (ORACLE_CONTEST_FINALIZED), 30 bytes including tag.
| Offset | Bytes | Field | Wire type |
|---|---|---|---|
| 0 | 1 | tag | u8 |
| 1 | 1 | captured | u8 |
| 2 | 8 | price | i64 |
| 10 | 8 | conf | u64 |
| 18 | 4 | expo | i32 |
| 22 | 8 | publish_time | i64 |
Projection kinds#
The SDK projection layer groups selected decoded events into semantic updates. Its kind strings are not wire tags, and it does not project every assigned binary event. Keep the original decoded event when you need fields or events outside that projection.
Stream consumer recipes document normalization, stable IDs, replay, and state reconciliation.