Skip to main content

Liquidity Model

Liquidity on Silvana Book is provided by agents that operate off-chain, manage orders automatically, and coordinate settlement through the Silvana API. Agents never perform matching themselves: they submit orders, react to events, and participate in settlement workflows driven by the coordination layer.
As a liquidity provider, you run the Silvana Book Cloud Agent, a purpose-built service for market making and RFQ handling.
Liquidity providers define spreads, depth, and risk parameters entirely through configuration, while the agent enforces execution and settlement through automated logic. The Cloud Agent runs without direct Canton ledger access. All ledger operations are proxied through the Silvana API service, and your Ed25519 private key never leaves the agent. Transactions are signed locally using a two-phase protocol.

Two Modes of Providing Liquidity

Silvana Book supports two agent-native liquidity modes:
  1. Grid Orders
  2. RFQ (Request for Quote)
Both operate on top of private off-chain matching and event-driven execution.
You can enable either independently or combine both in the same market.

Grid Orders

Grid orders are passive limit orders placed at configurable price levels around the current mid price. They form structured bid and offer ladders that continuously provide depth. The agent calculates price levels as offsets from mid using delta_percent. How It Works Each market is defined in agent.toml:
[[markets]]
market_id = "market-id-here"
enabled = true
base_order_size = "0.001"
price_change_threshold_percent = 0.5
Bid and offer levels are defined separately:
[[markets.bid_levels]]
delta_percent = 0.5
quantity = "0.001"

[[markets.offer_levels]]
delta_percent = 0.5
quantity = "0.001"
  • delta_percent defines distance from mid
  • quantity defines order size
If the mid price moves beyond price_change_threshold_percent, the agent cancels and re-places the entire grid at updated levels .
For example, with mid = 100,000 and delta_percent = 1.0:
  • Bid = 99,000
  • Offer = 101,000
The matching engine processes these orders privately off-chain. The agent subscribes to order and settlement streams and reacts to fills in an event-driven way. Grid orders are deterministic, simple, and predictable. They are ideal for maintaining continuous presence.

RFQ (Request for Quote)

RFQ mode enables real-time quoting in response to incoming swap requests via a bidirectional API stream. Instead of posting passive depth, you respond directly to requests routed by the server. How It Works RFQ requires a [liquidity_provider] section:
[liquidity_provider]
name = "My LP"
max_concurrent_rfqs = 10
default_quote_valid_secs = 30
Per-market RFQ configuration:
[markets.rfq]
enabled = true
min_quantity = "0.001"
max_quantity = "1.0"
bid_spread_percent = 0.5
offer_spread_percent = 0.5
quote_valid_secs = 30
allocate_before_secs = 3600
settle_before_secs = 7200
When enabled:
  1. The agent opens a settlement stream.
  2. Server routes RFQ requests.
  3. Agent computes quote price from mid:
  • Buy request → mid \* (1 + offer_spread_percent / 100)
  • Sell request → mid \* (1 - bid_spread_percent / 100)
  1. Agent validates quantity bounds.
  2. Agent responds with quote or rejection.
Rejection Reasons
The agent rejects an RFQ if:
  • Market is not configured or disabled
  • RFQ is not enabled for the market
  • Quantity is below min_quantity or above max_quantity
  • No mid-price is available yet (temporary – resolves after first price poll)
The stream also coordinates settlement lifecycle events. RFQ gives you tighter control over sizing, spreads, and inventory exposure.

Prerequisites and Setup

The Cloud Agent is written in Rust and requires:
  • Rust (stable toolchain)
  • Protocol Buffers compiler
  • A Silvana orderbook API endpoint
Build the liquidity provider agent:
cargo build --release -p orderbook-cloud-agent
The resulting binary is available at:
target/release/cloud-agent

Onboarding

Liquidity provision begins with self-service onboarding:
cloud-agent onboard --rpc https://rpc.example.com
This single command:
  • Generates an Ed25519 keypair
  • Registers the agent with the orderbook server
  • Signs the Canton topology transaction
  • Completes ledger setup (preapproval, user service, subscription)
  • Populates the .env file
The command is idempotent and can be safely re-run .
After onboarding, the agent reads configuration from:
  • .env — identity, keys, network parameters
  • configuration.toml — token registry and Canton Coin config
  • agent.toml — liquidity logic
Liquidity behavior is entirely driven by agent.toml.

Running the Agent

Launch the long-running agent:
cloud-agent agent
This mode:
  • Places grid orders
  • Handles RFQs
  • Participates in settlement
Operational flags:
  • --orders-only
  • --settlement-only
  • --dry-run
  • --confirm
Start with --dry-run while tuning spreads and thresholds.

Practical Advice for Liquidity Providers

Strong liquidity is consistent and disciplined.
  • Use realistic price_change_threshold_percent to avoid stale grids
  • Configure max_concurrent_rfqs to control parallel exposure
  • Maintain AGENT_FEE_RESERVE_CC to ensure settlement continuity
  • Monitor balances using cloud-agent info balance
Liquidity provision on Silvana Book is systematic: deterministic grid placement, controlled RFQ pricing, secure two-phase signing, and atomic DvP settlement. Your strategy lives in configuration. The agent executes it precisely.
Stay aligned with the latest implementation by following the Silvana Book Agent GitHub repository.