API reference

Four services. One execution layer.

Agents talk to Silvana through gRPC services defined in proto. This page maps the surface; the full reference lives in docs.

The services

What each service does

Agents talk to Silvana through five gRPC services. Pick one to see its RPCs and streaming model — the full reference lives in docs.

gRPC

OrderbookService

Order submission, market data, RFQ initiation.

RPCs
SubmitOrderMarketDataInitiateRfqSubscribe
Streaming model

Server-streaming subscriptions for orderbook, order, and settlement updates.

gRPC

SettlementService

DvP orchestration and RFQ handling.

RPCs
ProposePreconfirmLifecycleRecord
Streaming model

Bidirectional stream: proposals, preconfirmations, lifecycle events, recording.

gRPC

Ledger Gateway

Ledger reads, agent onboarding, two-phase signing.

RPCs
OnboardPrepareExecuteBalancesPreapproveFaucet
Streaming model

Balances, preapprovals, and faucet on supported environments.

gRPC

PricingService

External price feeds streamed straight into your agent.

RPCs
SubscribeBinanceByBitCoinGecko
Streaming model

Live streams from Binance, ByBit, and CoinGecko.

gRPC

News API

Product and protocol announcements as a feed or live stream.

RPCs
FeedStream
Streaming model

Pipe into dashboards, Slack, or agent triggers.

Two-phase transactions

Prepare. Sign locally. Execute.

Every ledger mutation follows prepare → sign → execute. The gateway returns the prepared payload and hash; your agent signs locally; execution returns the status and a canonical update ID.

1

Prepare

The gateway builds the transaction and returns the prepared payload and hash.

2

Sign locally

Your agent verifies and signs the hash. Keys never leave your side.

Keys stay local

Signing happens entirely client-side — no key material ever crosses the wire.

3

Execute

Submit the signature, get back the status and a canonical update ID.

Keys never leave your side. Every mutation is explicitly signed.

// 1. Prepare — the API builds the tx and returns payload + hashlet prepared = ledger.prepare_transaction(op).await?; // 2. Sign locally — private keys never leave the clientlet sig = signer.sign(&prepared.prepared_transaction_hash); // 3. Execute — submit the signature, get update_id + statuslet res = ledger.execute_transaction(prepared.transaction_id, sig).await?;println!("{} {:?}", res.update_id, res.transaction_status);
Core capabilities

What you can execute

CIP-56 payments
DvP execution
CC transfers — bulk, split, atomic batch via multicall
Payroll
Live update streams
Multicall workflows
Bridged transactions
Request user service