Skip to main content
Every quote from POST /v1/quotes carries a top-level signature: an EIP-712 signature by the address published as quoteSigner on the source chain’s entry in GET /v1/chains. Verification is one hash and one signature recovery, with no API key and no extra call. With options.allQuotes, each entry in quotes carries its own signature.

What is signed

An intent hash already commits to the route, reward, recipient, and amounts, so changing any of them changes the hash and breaks the signature. The funding calldata is intentionally outside the signature. The source chain lives in the domain, so a signature for a Base quote does not verify as an OP Mainnet quote.

Verify

The same recovery applies whether the source chain is EVM or Solana; only the domain chainId differs.

What a match proves

A matching signer proves the quote was issued by Eco, names exactly those intents, and has not been altered or extended past expiresAt. It does not prove the price is the best available, and it does not cover the bytes of execution.transaction. Read quoteSigner from GET /v1/chains and cache it with a refresh rather than pinning it in code. The published signer can rotate.