Appearance
Submit Transaction
All state-changing actions are submitted to a single endpoint. A transaction is a signed, Borsh-encoded RuntimeCall submitted to POST /sequencer/txs or streamed to the sequencer WebSocket at /sequencer/txs/ws. The blink-tx-client library builds, signs, and submits it; see Signing Transactions for the envelope, keys, and replay protection.
The call is one of the four Blink modules' calls:
- Accounts: deposits, withdrawals, transfers, delegation.
- Spot: spot orders and market administration.
- Perps: margin, orders, leverage, vaults/BLP, protocol operations.
- Oracle: feeds and price updates.
INFO
The Blink Liquidity Provider (BLP) appears under its legacy name in some on-chain identifiers and type names, such as the perps.deposit_to_l_l_p call and the BLPStatus type. Use identifiers exactly as shown on each call's page.
Encoding
RuntimeCall and every call are serialized with Borsh, a compact, deterministic binary format. There is no JSON on the wire; the byte layout is fully determined by the type definition. The rules:
| Type | Encoding |
|---|---|
Integers (u8–u128, i8–i128) | fixed-width, little-endian |
bool | 1 byte (0 / 1) |
Option<T> | 1 tag byte (0 = none, 1 = some), then T if some |
| enum | 1-byte variant index, then that variant's fields |
Vec<T> / string | u32 little-endian length, then the elements / UTF-8 bytes |
| struct | each field in declaration order |
[T; N] (fixed array) | N elements, no length prefix |
RuntimeCall is an externally-tagged enum: the module is the outer variant and the call is the inner variant. For example, perps.place_order encodes as the perps variant index, then the place_order variant index, then the Place Order fields in the type's declared order.
The per-call tables on the module pages list fields in Borsh serialization order, the order they are written on the wire. The full type layout is available as a machine-readable schema, generated from the rollup and served at /rollup/schema (runtime-call.schema.json). The client library encodes from this schema; use the library rather than serializing Borsh by hand.