â–ŠThe Framework
for Stake-Secured
|
Build in any language. Turn computation, data, or events into stake-backed attestations that settle across chains.
Audited by
Early adopters
Audited by
Early adopters
Audited by
Early adopters
>1M
MAX OPERATORS SUPPORTED
<=400k
VERIFICATION GAS COST
40MS
PROOF TIME
How Relay Works
Three steps from staked capital to verified attestation — on any chain
01
Commit Capital
Stake real assets across Ethereum, L2s, and supported chains. Your network's security scales with total stake — the more committed, the stronger your guarantees.
02
Compress Signatures
BLS aggregation combines operator signatures. ZK proofs compress attestations to constant size. Verification costs less than 3 DEX swaps (~380k gas) whether you have 100 or 100,000 operators.
03
Settle Anywhere
Verify Relay attestations on any EVM, L1 that supports BLS, or off-chain system. One format works everywhere — no chain-specific integration code.
How Relay Works
A unified framework for stake-secured cross-chain operations
Gas costs stay flat as operators increase.
Why Relay
Ship faster than building yourself. Pay less than running your own infrastructure.
Flat Gas at Any Scale
Verification costs stay constant whether you have 100 or 100,000 operators. BLS aggregation and ZK compression eliminate linear gas scaling.
One Interface, Every Chain
Deploy to EVMs, Cosmos, and L1/L2/L3s with the same integration. No chain-specific code, no custom verification logic per deployment.
Economic Security, Not Trust
Operators back attestations with slashable stake. No multisigs. No committees. No weak links — just cryptographic proof and capital at risk.
Days to Integrate, Not Months
Lightweight clients in Go, Rust, and TypeScript. One attestation pattern for any workload — bridges, oracles, compute, data availability.
Transparent Pricing
Pay for validator settlement and on-chain verification. No hidden fees, no surprise costs — budget accurately before you commit.
Audited and Battle-Tested
Security reviewed by Statemind, Bailsec, Cyfrin, and Sigma Prime. Production-ready infrastructure you don't have to build, secure, or maintain yourself.
Use Cases
One framework powers bridges, oracles, compute networks, and more
Bridges & Message Passing
Move assets and messages across chains with stake-backed finality. Skip the middlemen — verify directly with cryptographic proof and economic guarantees.
Verifiable Compute
Execute computation off-chain, settle results on-chain. Operators attest to correct execution with slashable stake — like Docker, but decentralized and cryptographically accountable.
Data Availability
Prove data is available and retrievable across networks. Stake-secured attestations back every DA commitment with real economic guarantees, not just signatures.
Liquidity Management
Turn idle vault liquidity into productive credit with instant usability for slow-settling assets. Every liquidity promise backed by slashable operator stake.
Chain-Agnostic Apps
Transform source-chain events into portable attestations. Verify natively on Cosmos modules, EVM contracts, or off-chain systems — one format everywhere.
Oracles & Data Feeds
Deliver external data with cryptographic verification and slashing enforcement. Operators have skin in the game — wrong data means lost stake.
Bridges & Message Passing
Move assets and messages across chains with stake-backed finality. Skip the middlemen — verify directly with cryptographic proof and economic guarantees.
Verifiable Compute
Execute computation off-chain, settle results on-chain. Operators attest to correct execution with slashable stake — like Docker, but decentralized and cryptographically accountable.
Data Availability
Prove data is available and retrievable across networks. Stake-secured attestations back every DA commitment with real economic guarantees, not just signatures.
Liquidity Management
Turn idle vault liquidity into productive credit with instant usability for slow-settling assets. Every liquidity promise backed by slashable operator stake.
Chain-Agnostic Apps
Transform source-chain events into portable attestations. Verify natively on Cosmos modules, EVM contracts, or off-chain systems — one format everywhere.
Oracles & Data Feeds
Deliver external data with cryptographic verification and slashing enforcement. Operators have skin in the game — wrong data means lost stake.
Audited by
Early adopters
Audited by
Early adopters
Audited by
Early adopters
Developer Quickstart in 5 minutes
Clone and install dependencies
Clone the Symbiotic Super Sum repository, initialize its submodules, and install the dependencies
Generate the network configuration
Generate the local network definition and helper artifacts Docker uses to start the stack
Start the network
Launch the Anvil chains, deployer, and relay services defined in the generated Compose file
import { createClient } from "@connectrpc/connect"; import { createGrpcTransport } from "@connectrpc/connect-node"; import { SymbioticAPIService } from "@symbioticfi/relay-client-ts"; import { GetLastAllCommittedRequestSchema, SignMessageRequestSchema, ListenProofsRequestSchema, } from "@symbioticfi/relay-client-ts"; import { create } from "@bufbuild/protobuf"; async function main() { const transport = createGrpcTransport({ baseUrl: "http://localhost:8080", }); const relayClient = createClient(SymbioticAPIService, transport); const getLastAllCommittedRequest = create(GetLastAllCommittedRequestSchema); const getLastAllCommittedResponse = await relayClient.getLastAllCommitted(getLastAllCommittedRequest); const epochInfos = getLastAllCommittedResponse.epochInfos; let suggestedEpoch = 0; for (const epochInfo of epochInfos) { if (suggestedEpoch === 0 || epochInfo.lastCommittedEpoch < suggestedEpoch) { suggestedEpoch = epochInfo.lastCommittedEpoch; } } const signMessageRequest = create(SignMessageRequestSchema, { keyTag: 15, // default key tag - BN254 message: message.into(), requiredEpoch: suggestedEpoch, }); const signMessageResponse = await relayClient.signMessage(signMessageRequest); const listenProofsRequest = create(ListenProofsRequestSchema, { startEpoch: suggestedEpoch }); const proofsStream = await relayClient.listenProofs(listenProofsRequest); let aggregationProof; for await (const proofResponse of proofsStream) { if (proofResponse.requestId === signMessageResponse.requestHash) { aggregationProof = proofResponse.aggregationProof?.proof; break; } } await appContract.completeTask(taskId, signMessageResponse.epoch, aggregationProof); }
Ready to Talk?
Whether you're evaluating Relay for a new project or migrating existing infrastructure, we'll help you figure out if it's the right fit. No commitment required.
R
Relay
Built on Symbiotic
The framework for stake-secured cross-chain systems
Developers