switchboard Cross-chain Intents Atomic Composability AI Agents

From Bridges to Intents: Cross-Chain State Sync for the AI Agent Economy

Autonomous agents act across many chains at once. Why bridges aren't enough, and how cross-chain state synchronization plus atomic intents give agents one coherent execution surface.

DS
Dipankar Sarkar
22 min read 4,277 words

Autonomous agents do not operate on one chain; they hold positions, route payments, and hunt for yield across dozens of them simultaneously, which means the primitive they need is not a token bridge but a way to read and write shared state across chains as if it were one machine. Bridges move assets, messaging protocols deliver payloads, but neither gives an agent a coherent, low-latency view of state across the chains it acts on. Switchboard closes that gap: it is a sub-400ms cross-chain state synchronization platform that uses Solana as a coordination layer, so a single contract can read and write state across 50+ EVM and non-EVM chains without bespoke bridge code — and when those reads and writes must be all-or-nothing, atomic intents (settled by protocols like Tesseract) complete the picture.


TL;DR

  • Agents are multi-chain by default. An agent managing a treasury, arbitraging a spread, or paying for services touches many chains in a single logical action. It needs one execution surface, not N disconnected ones.
  • Bridges and messaging are the wrong abstraction for this. Bridges move tokens. Messaging protocols (LayerZero, Wormhole) deliver a payload. Neither lets a contract read and write shared state across chains, and neither guarantees the agent’s higher-level outcome.
  • Switchboard provides cross-chain state synchronization in under 400ms, using Solana as a coordination layer. One contract, one SDK, 50+ chains, no per-chain bridge glue. It is MIT-licensed and open source.
  • Intents express outcomes, not steps. Instead of scripting “bridge, then swap, then deposit,” an agent declares the end state it wants and lets solvers find the path. When those intents must settle atomically across rollups, Tesseract enforces all-or-nothing execution with commit-reveal MEV protection.
  • The ROI is fewer integrations and no stranded funds. One SDK replaces a matrix of bridge integrations; atomic settlement removes the partial-execution risk that makes autonomous multi-chain execution unsafe today.
  • This builds on our atomicity research. For the formal proof and the Buffer/Resolve/Execute protocol, see the companion post on the cross-chain atomicity problem. This article is about the layer above it: coordinating state for agents. See /solutions for the full stack, or /contact to talk through an integration.

Why the Agent Economy Breaks the Single-Chain Model

For a decade, the mental model for on-chain software has been implicitly single-chain. You deploy a contract to a chain, users interact with that chain, and if you need liquidity or data from somewhere else you bridge it in. The chain is the boundary of your world.

Autonomous agents shatter that model. An agent is not a user clicking one button on one dApp. It is a continuously running process that observes state, forms a plan, and executes across whatever venues offer the best outcome. Consider what a single “reduce portfolio risk” instruction actually entails for an agent:

  • Read collateral ratios on a lending market on Arbitrum.
  • Read a perp position’s funding rate on Base.
  • Read spot prices from AMMs on three different chains.
  • Decide to unwind part of the perp, move the freed collateral, and top up the lending position — all before the state it read goes stale.

Every one of those reads is on a different chain. Every write the agent wants to make lands on a different chain. And the whole plan is only valid if the state it read is still true when it acts. This is the core difficulty of the agent economy: agents reason over a global state, but the infrastructure they inherited exposes only local state, one chain at a time, stitched together by bridges that were designed to move tokens for humans who could tolerate multi-minute finality.

The result is that agents today are forced into one of two bad patterns. Either they run a bespoke integration per chain — a maintenance nightmare that grows quadratically as you add venues — or they collapse their strategy down to a single chain and leave opportunity and safety on the table. Neither scales to an economy where agents transact autonomously, continuously, and across the entire multi-chain surface.

The state-staleness problem

There is a subtler issue than integration count: time. An agent’s plan is computed against a snapshot of state. If reading that state across five chains takes thirty seconds, the snapshot is already wrong by the time the agent acts. Prices moved. Someone else took the arbitrage. The collateral ratio the agent optimized for no longer holds.

This is why latency is not a nice-to-have for agent infrastructure — it is load-bearing. A coordination layer that synchronizes cross-chain state in under 400ms keeps the agent’s world-view coherent long enough to act on it. A coordination layer that takes minutes hands the agent a plan built on fiction.

Four Abstractions, Precisely Distinguished

The cross-chain space is a graveyard of conflated terminology. “Bridge,” “messaging,” “interop,” and “intents” get used interchangeably, which makes it impossible to reason about what an agent actually needs. Let’s define them exactly, because the differences determine what you can and cannot build.

Bridges: move tokens

A bridge answers one question: how do I get an asset from chain A to chain B? Mechanically, a lock-and-mint bridge locks (or burns) the asset on the source chain and mints (or releases) a representation on the destination chain. Liquidity-network bridges instead pay out from a pool on the destination and rebalance later.

A bridge is an asset-transfer primitive. It has no concept of your higher-level goal. If you bridged USDC to Optimism because you intended to open a position there, and the position-opening transaction reverts, the bridge does not know or care — your USDC is sitting on Optimism, and the intent that motivated the transfer has silently failed. Bridges also typically operate on the timescale of source-chain finality, which for optimistic rollups can be minutes to hours in the pessimistic case.

Messaging: deliver a payload

Messaging protocols — LayerZero, Wormhole, and similar — generalize bridges. Instead of moving only tokens, they let a contract on chain A send an arbitrary payload to a contract on chain B, with some security model (a set of oracles, guardians, or DVNs) attesting that the message is authentic.

This is strictly more powerful than a bridge, and it is the right tool for many jobs. But note what messaging does not give you. A message is fire-and-forget from the sender’s perspective: chain A emits a message, and eventually chain B receives and acts on it. There is no guarantee the action on B succeeds, and no built-in mechanism to undo the action on A if B fails. Messaging gives you delivery, not coordination, and certainly not atomicity. It is honest to describe LayerZero and Wormhole as excellent message-passing rails — and equally honest to say that message-passing is not the same as a shared, readable, writable state surface.

State synchronization: read and write shared state

State synchronization is the abstraction agents are actually missing. The question it answers is: how does a contract read the current state of many chains, and write to them, as if they were one coherent system?

This is what Switchboard provides. Rather than emitting a message and hoping, a contract using Switchboard can query the synchronized state of 50+ chains and issue writes against them, coordinated through Solana as a fast, high-throughput settlement and sequencing layer. Solana’s role here is specific and deliberate: it is a globally-ordered, low-latency ledger that can act as the coordination point where cross-chain state is reconciled, so that reads reflect a consistent snapshot and writes are sequenced coherently. The sub-400ms target is what makes this usable for agents — it keeps the synchronized view fresh enough to plan against.

Crucially, state sync removes the per-chain integration tax. You write against one SDK and one logical state surface. Adding a chain is Switchboard’s problem, not yours.

Intents: express an outcome, let solvers execute

Intents are the highest-level abstraction. An intent does not say how — it says what. “I want 100 USDC on Base in exchange for at most 0.03 ETH on Arbitrum, settled atomically.” The user (or agent) signs that declaration and hands it to a competitive set of solvers, who figure out the concrete path — which liquidity, which venues, which order — and get paid for delivering the outcome.

Intents matter for agents for two reasons. First, they collapse a brittle multi-step script into a single declarative statement, which is far easier for an agent to generate and reason about. Second, they shift execution risk onto solvers who specialize in it. Across is a good example of a production intents-based bridge: the user expresses a cross-chain transfer outcome and relayers fill it, taking on the inventory and finality risk.

But intents raise the atomicity question in its sharpest form. If an agent’s intent spans two rollups and only one leg settles, the agent is worse off than if nothing had happened — funds are stranded and the strategy is broken. This is exactly the problem our atomicity research formalizes, and exactly what Tesseract enforces at settlement time.

Putting It Together: Read, Decide, Act

Here is the shape of a real agent loop built on this stack. The agent uses Switchboard to read coherent cross-chain state, forms an intent, and settles atomically. Let’s walk through it in code.

Switchboard resources: switchboard.cryptuon.com · Documentation · Source on GitHub

Reading and writing cross-chain state

With Switchboard, an agent points at one client and queries many chains through a single synchronized surface. The key property is that the reads come back reflecting a consistent, recent snapshot — coordinated through Solana — rather than N independent RPC calls that drift out of sync.

from switchboard import Switchboard, Chain

# One client, coordinated through Solana, spans 50+ chains.
sb = Switchboard(coordinator="mainnet")

# Read state from several chains as one coherent snapshot.
snapshot = sb.read_state([
    (Chain.ARBITRUM,  "0xLendingMarket", "collateralRatio(address)", agent_addr),
    (Chain.BASE,      "0xPerpVenue",     "fundingRate(bytes32)",     market_id),
    (Chain.OPTIMISM,  "0xAmmPool",       "spotPrice(address)",       eth_addr),
])

# snapshot.block_age is bounded by the sync window (<400ms target),
# so the values are fresh enough to plan against.
assert snapshot.block_age_ms < 400

collateral = snapshot[Chain.ARBITRUM]["collateralRatio"]
funding    = snapshot[Chain.BASE]["fundingRate"]
spot       = snapshot[Chain.OPTIMISM]["spotPrice"]

# Write back across chains through the same surface — no per-chain bridge code.
if collateral < TARGET_RATIO:
    sb.write_state([
        (Chain.BASE,     "0xPerpVenue",     "reducePosition(bytes32,uint256)", (market_id, unwind_amt)),
        (Chain.ARBITRUM, "0xLendingMarket", "addCollateral(address,uint256)",  (agent_addr, topup_amt)),
    ])

The single-SDK ergonomics are the point. There is no LayerZero endpoint per chain, no Wormhole guardian wiring, no bespoke relayer per venue. The agent reasons over one state object and issues writes against one interface.

Expressing the same action as an intent

For value-moving actions where the agent cares about the outcome rather than the path, the same logic becomes an intent. The agent declares the end state and constraints; solvers compete to deliver it.

/// An intent is a signed declaration of a desired outcome,
/// not a script of steps. Solvers race to fill it.
struct Intent {
    // What the agent gives up, and where.
    input:  Asset,        // e.g. 0.03 ETH on Arbitrum
    // What the agent must receive, and where.
    output: Asset,        // e.g. 100 USDC on Base
    // Hard constraints the fill must respect.
    max_slippage_bps: u16,
    deadline:         u64, // unix seconds
    // Settlement mode: does this leg have to be atomic with others?
    atomic_group:     Option<GroupId>,
    // Signature over the canonical encoding, from the agent's key.
    signature:        [u8; 65],
}

/// Solver flow (simplified): observe, plan, fill, get paid.
fn solve(intent: &Intent, book: &SolverBook) -> Result<Fill> {
    // 1. Find a path that satisfies the outcome within constraints.
    let route = book.best_route(intent.input, intent.output)?;
    route.check_slippage(intent.max_slippage_bps)?;

    // 2. If this intent is part of an atomic group, it cannot be
    //    filled in isolation — settlement must be all-or-nothing.
    match intent.atomic_group {
        Some(group) => settle_atomic(group, route),   // via Tesseract
        None        => settle_direct(route),
    }
}

The atomic_group field is where state sync and atomicity meet. An agent that wants two legs — say, closing a position on one rollup only if it can open the hedge on another — tags both intents with the same group. Solvers may fill each independently, but settlement is gated on the whole group, so the agent never ends up half-hedged.

Enforcing all-or-nothing settlement with Tesseract

When an intent group must be atomic across rollups, Tesseract’s three-phase protocol settles it. We covered the formal guarantees in the companion atomicity post; here is the settlement call from the intent solver’s perspective.

from tesseract import AtomicGroup, Chain

# Solver has found fills for both legs; now settle them atomically.
group = AtomicGroup(coordination_window=30)  # seconds; configurable 5-300

group.add_leg(
    chain=Chain.OPTIMISM,
    action="closePosition",
    params={"market": market_id, "size": size},
)
group.add_leg(
    chain=Chain.BASE,
    action="openHedge",
    params={"market": hedge_id, "size": size},
)

# Buffer -> Resolve -> Execute. Either both legs execute or neither does.
# Commit-reveal ordering protects the reveal from front-running.
receipt = group.settle()
assert receipt.status in ("EXECUTED_ALL", "ABORTED_ALL")   # never partial

Tesseract does this without bridges or wrapped assets, using Vyper contracts and a Rust relayer, and enforces the all-or-nothing property through its Buffer/Resolve/Execute phases. The EXECUTED_ALL / ABORTED_ALL invariant is the whole reason an agent can act on a multi-chain plan without risking a stranded, half-completed state.

Fair ordering with commit-reveal

The reveal step in an atomic settlement is a juicy target for MEV: if a searcher can see the reveal before it lands, they can front-run it. Cryptuon’s commit-reveal primitive addresses this with a simple, auditable scheme — commit to a hash first, reveal the preimage later, so ordering is decided before anyone learns the payload.

from commit_reveal import commit, reveal, verify
import os

# Phase 1: commit. Publish only a hash of (action || nonce).
nonce  = os.urandom(32)
action = encode_settlement(group)           # canonical bytes
c      = commit(action, nonce)              # H(action || nonce)
publish_commitment(c)                        # ordering is fixed on this hash

# ... coordination window elapses; ordering is now settled ...

# Phase 2: reveal. Now disclose the preimage.
r = reveal(action, nonce)
assert verify(c, r)                          # anyone can check H(action||nonce)==c

# Optional: a Schnorr ZK proof on secp256k1 can attest knowledge of the
# preimage without revealing it early, for stronger fairness guarantees.

Because ordering is committed before the payload is known, a searcher cannot selectively reorder based on content. The optional Schnorr proofs on secp256k1 let a party prove they hold a valid preimage without disclosing it, which is useful when you want to lock ordering even earlier in the pipeline. This is the same fairness primitive Tesseract uses for its MEV protection.

How the Approaches Compare

No single protocol is best at everything, and it would be dishonest to claim otherwise. Bridges, messaging, state sync, atomic swaps, and interop each occupy a distinct point in the design space. The table below is an honest map of the trade-offs, with an explicit column for how well each fits an autonomous agent’s needs.

ApproachWhat it doesAtomic?LatencyTrust modelAgent-fit
Switchboard (state sync)Read/write shared state across 50+ chains via one contractCoordinated writes; pair with Tesseract for hard atomicitySub-400ms sync targetSolana coordination layer + source-chain securityHigh — gives agents one coherent, fresh state surface
Tesseract (atomic swaps)All-or-nothing cross-rollup settlement, no bridges/wrapped assetsYes — Buffer/Resolve/Execute enforces all-or-nothingConfigurable 5–300s window (default 30s)Coordinator + commit-reveal; no trusted custodianHigh — removes partial-execution risk at settlement
LayerZeroDeliver arbitrary messages between chainsNo — delivery only, no cross-chain revertDepends on DVN/config; often seconds to minutesConfigurable DVN/oracle+relayer setMedium — good rail, but agent must build coordination on top
WormholeDeliver arbitrary messages/attestationsNo — delivery onlyGuardian finality, typically seconds+Guardian multisig setMedium — same as above; messaging, not state
AcrossIntents-based bridge; solvers fill transfersPer-transfer fill, not multi-leg atomicFast fills (seconds) for supported routesRelayers + optimistic verificationMedium-High — great for single transfers, not multi-chain plans
Optimism InteropLow-friction cross-L2 composability in the SuperchainAims for atomic cross-L2 within SuperchainLow, intra-Superchain (as reported, rolling out ~early 2026)Shared Superchain securityHigh within its scope — bounded to Superchain chains

A few honest notes on this table. Optimism Interop is, as reported and rolling out around early 2026, a genuinely exciting step: the goal is to make cross-L2 transactions feel like switching browser tabs rather than bridging, with atomic composability across the Superchain. If your agent lives entirely inside the Superchain, that may be all the coordination you need. The distinction is scope: Interop is Superchain-native, while Switchboard’s purpose is to span 50+ EVM and non-EVM chains, including ecosystems no single Superchain will encompass. LayerZero and Wormhole are best understood as messaging rails — powerful, widely integrated, and correctly described as delivery layers rather than state or atomicity layers. Across is an excellent intents-based bridge for single transfers; it is not designed to be a multi-leg atomic settlement engine.

The Business Case: Fewer Integrations, No Stranded Funds

The engineering economics here are stark, and they compound as the number of chains grows.

Integration count collapses from a matrix to a line

Without state sync, supporting an agent across N chains means building and maintaining N bridge/messaging integrations, each with its own endpoint configuration, security assumptions, upgrade cadence, and failure modes. Add a chain and you add another integration, another audit surface, another on-call rotation. The cost is superlinear because the interactions between integrations also have to be tested.

With Switchboard, the agent codes against one SDK and one state surface. Onboarding a new chain is Switchboard’s responsibility. The team’s integration cost goes from “one per chain, forever” to “one, total.” For a team shipping an agent product, that is the difference between a dedicated cross-chain infra team and a single dependency.

Partial-execution risk goes to zero

The scarier cost is not engineering hours — it is stranded capital. An autonomous agent that can strand funds mid-plan is an agent you cannot let run unattended, which defeats the entire premise of autonomy. Every partial execution is a manual cleanup, a reconciliation headache, and a potential loss. Atomic settlement via Tesseract makes the outcome binary: the multi-chain action either fully happens or fully doesn’t. That is what lets an operator actually delegate execution to the agent and walk away.

The same principle underpins how agents pay for things across chains — atomic, verifiable settlement is what makes machine-to-machine payments trustworthy. We explore that adjacent problem in the post on agentic payments and on-chain settlement.

Time-to-market and opportunity capture

Freshness has direct P&L consequences for agents that trade or rebalance. A sub-400ms synchronized state view means the agent acts on a world that is still roughly true, capturing spreads and rebalancing at ratios that still hold. Slow, stitched-together RPC views hand that edge to faster competitors. For a yield or arbitrage agent, latency is revenue.

Limitations

Cryptuon publishes limitations because balanced infrastructure claims are the only ones worth trusting. Here is where this stack stands today and where it is going.

Current limitations

  • Coordination latency is a floor, not zero. Switchboard targets sub-400ms synchronization, which is excellent for cross-chain coordination, but it is not the sub-millisecond world of a single-chain read. Agents whose strategy depends on truly instantaneous cross-chain state must design around this window. Atomic settlement via Tesseract adds a further, deliberate coordination window (default 30 seconds, configurable 5–300s) — the price of the all-or-nothing guarantee.
  • Liveness assumptions. State synchronization coordinated through Solana inherits a dependency on the coordination layer’s liveness, and atomic settlement inherits a dependency on the relayer/coordinator being available during the window. These are honest liveness assumptions; they do not compromise safety (funds are not at risk), but a coordinator outage delays coordination.
  • Chain coverage is broad but not universal. “50+ EVM and non-EVM chains” is a large surface, but it is not every chain in existence. A long-tail chain your agent needs may not yet be supported, and adding one is real work even if it is Switchboard’s work rather than yours.
  • Atomicity requires opt-in. State sync coordinates reads and writes; it does not by itself make a multi-leg action atomic. You get hard all-or-nothing guarantees by routing the settlement through Tesseract’s atomic group. Teams that skip that step get coordinated-but-not-atomic behavior, which is fine for many reads and idempotent writes but not for value-moving multi-leg plans.

Roadmap items

  • Tighter state-sync-to-settlement integration, so that an agent’s read snapshot and its atomic settlement share a single freshness guarantee end to end.
  • Wider non-EVM coverage, extending the coherent state surface to more ecosystems beyond the current set.
  • Solver marketplace maturation for intents, so that competitive fill quality improves and atomic-group intents become a first-class, well-tooled path rather than a manual assembly.
  • Formal verification of the coordination path, extending the rigor of the “Towards Universal Atomic Composability” research (recognized by a16z Crypto Startup School) further up the stack into the state-sync layer.

For where these pieces fit in the broader Cryptuon stack, see /solutions and the research index.

Frequently Asked Questions

Why do AI agents need cross-chain infrastructure?

Because agents act across many chains at once, not one. A single agent instruction — rebalance a portfolio, capture an arbitrage, pay for a service — typically requires reading state from several chains and writing to several others, all within the window before that state goes stale. Single-chain infrastructure forces the agent to either maintain a brittle integration per chain or artificially restrict itself to one chain. Cross-chain state synchronization gives the agent one coherent execution surface so it can reason globally and act coherently, which is the precondition for genuine autonomy.

What’s the difference between a bridge and cross-chain state sync?

A bridge moves an asset from one chain to another; it is an asset-transfer primitive with no awareness of your higher-level goal. Cross-chain state synchronization lets a contract read and write shared state across many chains as if they were one system. The bridge answers “how do I move these tokens?”; state sync answers “what is the current state across all these chains, and how do I coherently change it?” An agent needs the latter, because its plans depend on a consistent, fresh view of state it does not own, on chains it does not live on. Switchboard provides that view across 50+ chains with a sub-400ms sync target.

What are intents in crypto?

An intent is a signed declaration of a desired outcome rather than a script of steps. Instead of “bridge X, then swap Y, then deposit Z,” you declare “I want 100 USDC on Base for at most 0.03 ETH on Arbitrum, by this deadline,” and a competitive set of solvers finds and executes the path, getting paid for delivering the result. Intents are powerful for agents because they collapse brittle multi-step logic into one declarative statement and push execution risk onto specialized solvers. Across is a well-known production example of an intents-based bridge. The open question intents raise is atomicity — which is where Tesseract comes in.

How does Switchboard keep cross-chain state consistent?

It uses Solana as a coordination layer — a fast, globally-ordered, high-throughput ledger — to reconcile and sequence cross-chain reads and writes, so that a contract sees a consistent recent snapshot rather than N independently-drifting RPC views. The sub-400ms synchronization target keeps that snapshot fresh enough to plan against. A single contract can then read and write across 50+ EVM and non-EVM chains through one SDK, without writing per-chain bridge code. Switchboard is MIT-licensed and open source at github.com/cryptuon/switchboard.

When do I need Tesseract on top of Switchboard?

Whenever a multi-leg, value-moving action must be all-or-nothing across chains. Switchboard coordinates reads and writes, but it does not by itself guarantee that two writes on two different rollups either both succeed or both fail. When your agent’s plan has that requirement — close a position on one chain only if the hedge opens on another — you route the settlement through a Tesseract atomic group, whose Buffer/Resolve/Execute protocol enforces the all-or-nothing property with commit-reveal MEV protection and no bridges or wrapped assets. The formal treatment is in the cross-chain atomicity problem.

How is this different from LayerZero, Wormhole, or Optimism Interop?

LayerZero and Wormhole are messaging protocols: they reliably deliver a payload from one chain to another under some security model, but delivery is not the same as a shared readable/writable state surface, and it does not provide cross-chain atomicity. Optimism Interop (rolling out around early 2026, as reported) aims to make cross-L2 transactions inside the Superchain feel like switching browser tabs, with atomic composability — genuinely powerful, but scoped to the Superchain. Switchboard’s distinct role is to give agents one coherent state surface across 50+ EVM and non-EVM chains, including ecosystems no single Superchain encompasses, and to pair with Tesseract when hard atomicity is required. If you want to discuss which layer your agent needs, get in touch.

Is Switchboard production-ready and open source?

Switchboard is a cross-chain state synchronization platform that targets sub-400ms coordination across 50+ chains, is MIT-licensed, and is open source at github.com/cryptuon/switchboard with documentation at docs.cryptuon.com/switchboard. As with any coordination infrastructure, evaluate it against your own liveness and coverage requirements — see the Limitations section above for an honest accounting, and reach out via /contact to talk through your specific multi-chain agent architecture.

DS

Dipankar Sarkar

Founder, Cryptuon

Blockchain researcher and systems engineer. Author of 5 published papers on cross-chain composability, MEV mitigation, and DePIN protocols. Building production blockchain infrastructure in Rust and Zig.

Build on research-grade infrastructure

Ready to deploy smart contracts across chains, execute atomic cross-rollup swaps, or protect your validators from slashing?