-
A submission interface where solvers can submit their filled outputs. The submission interface should accept arbitrary packages for validation and then call the associated output settlement contract to check whether the payloads are valid. If submission is automatic by being capable of proving contract calls, events, or storage this requirement can be ignored.
Oracle implementations can validate whether an output has been filled through the
IAttesterinterface: -
Implement the validation interfaces so attested (or filled) outputs can verify whether outputs have been filled:
- Submission or receive interfaces do not have to be standardized; they need to be documented so solvers can implement it.
- Oracle systems can either have automatic relaying or manual relaying.
- Trust assumptions for the oracle system needs to be explicit, so intent issuers and solvers can make informed decisions.
Implemented Validation Interfaces
There are two types of validation interfaces:- Self-serve: Validation interfaces where submitting the payload generates an off-chain proof that must be collected and submitted on the input chain.
- Automatic: Validation interfaces where submitting the payload automatically delivers the associated proof on the input chain.
Speed & Price
Some oracle systems are significantly faster than other oracle systems. While speed does not impact asset delivery for users, it matters for solvers. Choosing an oracle system with fast repayments results in cheaper intents, as solvers can rotate their capital faster.
Some oracle systems are significantly faster than other oracle systems. While speed does not impact asset delivery for users, it matters for solvers. Choosing an oracle system with fast repayments results in cheaper intents, as solvers can rotate their capital faster.
Polymer
Polymer is an event based system that provides real time proofs at low cost. Security is based on bundled state through Polymer with block headers sourced from Sequencer preconfirmations.- Low gas cost.
- Low latency for quick settlement.
- Polymer can only prove one output at a time requiring batch proving to be implemented on the solver side to optimise efficiency.
- Broadcast
OutputFilled, emitted when an output has been filled.
receivedMessage.
For an example of a integration for fetching Polymer proofs, see lintent.org/polymer or the receiveMessage call made.
Wormhole
Wormhole is a messaging based system that allows contracts to broadcast VAAs (Verified Action Approvals). VAAs are messages signed by the Wormhole Guardian network.- Security through a decentralized guardian set.
- Supports batch proving of multiple outputs in a single VAA.
- Comparatively slow compared to alternatives.
- Broadcast
submit interface. Messages must be encoded into FillDescriptions and then submitted:
receiveMessage on the input chain to validate their intents.
There are many ways to get Wormhole VAAs like the Wormholescan api or the Wormhole SPY.
The Wormhole implementation uses a significantly more efficient validation algorithm than Wormhole’s
Implementation.sol for gas saving purposes.Hyperlane
Hyperlane is a highly customizable messaging based system that allows contracts to send and receive messages verified through a selected Interchain Security Modules (ISM).- Highly customizable security modules.
- Supports batch proving of multiple outputs in a single message.
- Strong censorship guarantees.
- Automatic or manual relaying.
dispatch function on the Hyperlane mailbox. To configure Hyperlane relaying, provide the relevant customHook and customHookMetadata when calling submit.
Chainlink CCIP
Chainlink CCIP is a messaging based system that allows contracts to send and receive messages verified through Chainlink oracles.- Security through Chainlink’s oracle network.
- Supports batch proving of multiple outputs in a single message.
- Comparatively slow and expensive compared to alternatives.
ccipSend with an EVM2AnyMessage . To submit filled outputs to the CCIP oracle, first call the quote endpoint: getFee to estimate the messaging fee. Then call submit to send the message to the output chain along with the required fee. If an ERC20 token is used to pay the fee, approve the token transfer first.
Axelar
Axelar is a messaging based system that allows contracts to send and receive message verified by Axelar’s Proof of State network.- Security through Axelar’s Proof of State network.
- Supports batch proving of multiple outputs in a single message.
- Automatic relaying.
callContract function. To submit filled outputs to the Axelar oracle, first use the gasService to estimate the fees. Then call submit to send the message to the output chain along with the required fee.
LayerZero
LayerZero is a security customizable messaging based system that allows contracts to send and receive messages verified through a selected set of Decentralized Verifier Networks (DVNs).- Customizable security
- Popular and broad chain compatibility.
- Supports batch proving of multiple outputs in a single message.
- Expensive
send on the LayerZero endpoint. To submit filled outputs to the LayerZero oracle, first use the quote function to estimate fees and then call submit with the required fee to send the message to the output chain.

