â–ŠThe Framework
for Stake-Secured
|
Relay Apps are language-agnostic and turn any computation, data or an event into stake-securely attested programmable outcomes that settle cross chain.
Audited by
Early adopters
Audited by
Early adopters
Audited by
Early adopters
>1M
MAX OPERATORS SUPPORTED
<=400k
VERIFICATION GAS COST
40MS
PROOF TIME
Why Relay
Built for developers who demand speed, security, and scalability without compromise.
Cheaper at Scale
Constant EVM verification gas via BLS aggregation/compression — no linear scaling.
Cross-Chain by Default
Works across EVMs, Cosmos, L1/2/3 with unified interface — no chain-specific code.
Stake-Backed Security
Economic guarantees and slashing — no reliance on multisigs or trusted parties.
Unified Interface
One attestation flow for any workload — no more custom verification logic per use case.
Language-Agnostic
Lightweight clients in Go, Rust, TypeScript. Bring your own compute runtime.
Cost Predictable
Pay only for validator set settlement and on-chain verification — transparent pricing.
Use Cases
From vaults to bridges, Relay powers the next generation of cross-chain applications
Bridges and Crosschain Message Passing
Secure, efficient cross-chain communication with stake-backed guarantees.
Cloud & Compute
Decentralized Docker — verifiable off-chain computation with on-chain settlement.
Data Availability Attestations
Cryptographic proof that data is available and accessible across networks.
Liquidity Management
Symbiotic turns idle vault liquidity into safe productive credit, gives you instant usability for slow to settle assets, and backs every promise with real money at risk.
Chain Agnostic Applications
Turn any source-chain event into a stake-secured attestation that you can verify natively on your Cosmos app (module or contract) and act on immediately.
Oracles & Data Feeds
Trust-minimized data feeds with cryptographic verification and slashing.
Bridges and Crosschain Message Passing
Secure, efficient cross-chain communication with stake-backed guarantees.
Cloud & Compute
Decentralized Docker — verifiable off-chain computation with on-chain settlement.
Data Availability Attestations
Cryptographic proof that data is available and accessible across networks.
Liquidity Management
Symbiotic turns idle vault liquidity into safe productive credit, gives you instant usability for slow to settle assets, and backs every promise with real money at risk.
Chain Agnostic Applications
Turn any source-chain event into a stake-secured attestation that you can verify natively on your Cosmos app (module or contract) and act on immediately.
Oracles & Data Feeds
Trust-minimized data feeds with cryptographic verification and slashing.
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); }
Start Building
Join the growing ecosystem of developers building the future of cross-chain infrastructure with Relay
R
Relay
Built on Symbiotic
The framework for stake-secured cross-chain systems
Developers