Skip to main content

Documentation Index

Fetch the complete documentation index at: https://eco.com/docs/llms.txt

Use this file to discover all available pages before exploring further.

An intent is a signed declaration of a desired outcome on a destination chain. Instead of specifying a route (“call this contract, then this one”), the user specifies the result (“I want 1000 USDT on Base in exchange for 1000 USDC on Optimism”). Solvers compete to deliver the result; provers verify it happened.

Anatomy of an intent

An intent has two parts:
PartHoldsLives where
RouteWhat to execute on the destination chain (token transfer, contract call, deadline)Read by the solver on the destination
RewardWhat the solver gets paid on the source chain when execution is provenLocked in a Vault on the source
The intent hash is keccak256(destination, routeHash, rewardHash) — a deterministic identifier that both chains agree on without ever transmitting the full intent.

The intent lifecycle

  1. Publish + fund. The user (or a relayer) publishes the intent and transfers the reward tokens to a deterministic vault address. Funding can happen before publishing — the vault address is CREATE2-derived from the intent hash.
  2. Fulfill. A solver executes the route on the destination chain, recording the fulfillment in the destination Portal.
  3. Prove. A prover (chosen by the user) carries proof of fulfillment back to the source chain.
  4. Settle. The source-chain Portal verifies the proof and releases the reward from the vault to the solver.
  5. Refund (if no fulfillment by deadline). A permissionless refund service returns the reward to the user.

Why intents (vs. transactions)

Transactions specify a path. Intents specify an outcome. The difference matters when the optimal path is unknown at signing time, or when the path crosses chains that don’t share execution.
PropertyTransactionIntent
SpecifiesExact contract callsDesired outcome
Best path chosenAt signing timeAt fulfillment time, by competing solvers
Cross-chainManual coordination requiredAtomic with cryptographic proof
Failure modePartial state, manual recoveryAtomic refund, no partial states