Skip to content

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:

TypeEncoding
Integers (u8u128, i8i128)fixed-width, little-endian
bool1 byte (0 / 1)
Option<T>1 tag byte (0 = none, 1 = some), then T if some
enum1-byte variant index, then that variant's fields
Vec<T> / stringu32 little-endian length, then the elements / UTF-8 bytes
structeach 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.