Acrossbridge relayers fund destination fills before protocol repayment
· last updated
Acrossbridge relayers use their own tokens to fulfill users' intents on the destination chain. The origin SpokePool escrows the deposited tokens, while settlement later verifies eligible fills and reimburses relayers. They compete on execution speed, subject to any exclusivity window and the deposit's fill deadline.
Open fills and exclusive fills
Open fills let relayers compete for an unfilled intent, while exclusive fills temporarily reserve execution for one address. Across Protocol permits anyone to run a relayer, although each deposit's execution conditions govern which address may fill it. The RFQ, or request-for-quote, layer supplies the order and quoted economics; the relayer network supplies destination execution. Relayers discover deposits through the origin SpokePool's
V3FundsDeposited
event. That event records the intent, giving operators the deposited terms against which to evaluate a possible fill.
An exclusive intent identifies an
exclusiveRelayer
with sole fill rights until its
exclusivityDeadline
. Other relayers can compete after exclusivity ends, subject to the intent's fill deadline.
The separate
fillDeadline
limits the time available to deliver the output. Ending exclusivity opens competition; reaching the fill deadline closes the ordinary fill window. The relayer calls
fillV3Relay()
on the destination SpokePool. That contract records the successful fill so competitors cannot fulfill the same intent again.
Destination inventory and pooled liquidity
Relayers provide immediately available destination tokens, while liquidity providers support reimbursement on routes backed by pooled capital. The user deposits input tokens into an origin SpokePool. A relayer spends its own inventory through the destination SpokePool, which handles fulfillment. Pooled liquidity bridges the funding gap between that delivery and repayment, giving those capital sources different roles. Mainnet fills typically take about two seconds. The recipient receives funds before settlement repays the operator, whose inventory must cover the intervening capital commitment.
The HubPool on Ethereum coordinates settlement and holds liquidity-provider capital, while SpokePools handle deposits and fills on supported chains. An off-chain Dataworker reconciles the activity and assembles settlement bundles. A bundle groups valid repayment claims, avoiding a separate settlement proposal for every individual fill.
The Dataworker matches destination fill events against their origin deposit events and checks the parameters. It then groups valid repayments by chain. Root bundles also carry rebalancing instructions and slow-fill data for deposits that relayers have not filled. These instructions have different purposes from the repayment claims that reimburse relayers.
In the hub-and-spoke settlement flow, roughly 1.5 hours is the minimum interval between bundle proposals. A proposal still needs to clear its challenge period before finalization and payment execution. Disputes or settlement delays can extend the capital commitment. The proposal interval therefore does not establish a reimbursement deadline.
Repayment choices and operating costs
Relayers can request a supported repayment chain to manage inventory, subject to token-routing and address rules. UMIP-179 initially selects origin-chain repayment for Lite-chain origins or missing pool routes for the origin input token or its equivalent on the requested chain. Address validation and chain-specific fallback rules can change that selection. If no valid repayment address results, settlement omits that repayment from the refund root. The destination chain fixes where they must deliver the user's output. The repayment choice concerns where the relayer recovers its capital, which may differ from both the origin and destination chains.
Acrossbridge Relayers Fund Destination Fills
- Repayment choices and operating costs
- Does an origin deposit confirm a relayer's delivery?
- Repayment verification and capital exposure
- V4 settlement and relayer repayment
The liquidity-provider, or LP, fee is zero when the relayer takes repayment on the deposit's origin chain. This repayment choice requires no cross-chain pool rebalancing. Repayment elsewhere can incur an LP fee, with pricing dependent on token, route, and pool utilization. That LP component compensates liquidity providers and sits outside the filling relayer's own compensation.
The relayer's compensation covers destination gas, the opportunity cost of committed capital, and execution risk. Destination gas varies by network, while the reimbursement delay affects the opportunity cost of committed capital. Gross fees therefore cannot establish profit without accounting for the operator's actual expenses and exposure.
The RFQ implementation uses fixed quoted fees and speed-based competition. Fresh quotes can still differ as gas prices, liquidity utilization, and market conditions change.
Does an origin deposit confirm a relayer's delivery?
A confirmed origin deposit establishes escrow and the intent; a destination fill record establishes relayer fulfillment. The
filled
status from
/deposit/status
reports the completed destination fill. Tracking accepts either the deposit transaction hash or the combination of
originChainId
and
depositId
.
This hypothetical case assumes a transfer to a wallet, without embedded actions or partial fills. The observations are illustrative: the deposit either receives a matching destination fill or expires without one. With a matching
FilledV3Relay
event and
filled
status, the recipient can proceed using the delivered output tokens. The relayer's reimbursement may remain outstanding, because the destination fill confirms a different payment.
If the deposit stays
pending
before its fill deadline, continue tracking that deposit. Once the deadline passes without a fill, and no partial fill occurred,
expired
indicates refund eligibility. Continue tracking the refund through settlement until
refunded
reports its return. Expired deposits can take several hours to refund through bundle settlement. A local polling timeout establishes neither expiry nor a completed refund, so it cannot establish that those funds are available for another transfer.
Repayment verification and capital exposure
Optimistic bundle verification exposes proposed repayments to challenge before the protocol finalizes them. The Dataworker posts a bond with its proposal. During the challenge period, an observer can compare repayment and rebalancing instructions with the underlying chain activity, then dispute an invalid bundle. A proposal that nobody disputes can finalize after its challenge period.
UMA token holders resolve disputed bundle validity through the Data Verification Mechanism. The losing party forfeits its bond, with part paying oracle fees and the rest rewarding the winner. An honest actor must challenge an invalid proposal for the optimistic dispute mechanism to intervene.
Relayer software bugs, chain reorganizations, and settlement delays remain concrete sources of exposure. A reorganization can reverse a fill that had appeared confirmed, whereas delayed reimbursement can tie up operating inventory longer than expected. Bonded verification addresses the validity of settlement proposals, leaving operators responsible for their own software and capital exposure.
V4 settlement and relayer repayment
Across V4 changes settlement while preserving the relayer's destination-fill role. V3 uses chain-specific canonical-bridge adapters; V4 uses Succinct SP1 proofs of Ethereum state. SP1Helios verifies those proofs, and UniversalSpokePool executes verified settlement messages. UMA's Optimistic Oracle still verifies repayment bundles on Ethereum. After the optimistic challenge period, the Finalizer waits for Ethereum finality before requesting a proof. Proof generation and destination message execution remain prerequisites for the relayer refunds that depend on this V4 settlement path.
Common questions about Acrossbridge relayers
Must every Across relayer use Risk Labs' implementation?
Relayers can customize Risk Labs' open-source implementation or build an alternative. Operators still need the destination inventory and gas for the fills that they submit. Any implementation must follow the SpokePool rules, including the deposited terms, exclusivity conditions, and fill deadline; choosing different software does not change those requirements.
What does an embedded action require from the filling relayer?
The filling relayer must include the intent's encoded message to qualify for repayment. For embedded Swap API actions with MulticallHandler as recipient, a non-empty message causes the destination SpokePool to call handleV3AcrossMessage(). The message carries the actions that the handler executes after destination delivery.
Is the ABT proposal bond a charge on every relayer fill?
The ABT bond belongs to root-bundle proposal and dispute operations, rather than a charge deducted from each destination fill. ABT also restricts which addresses may propose bundles to the HubPool. Running a permissionless relayer and proposing settlement bundles are separate roles with different requirements.
Can a relayer replace the recipient just by changing its repayment chain?
Changing the repayment chain does not change the deposited intent's recipient. Settlement checks fill parameters against the corresponding deposit, including the recipient and output terms. Inventory needs influence requests within the permitted repayment routes; the deposited intent determines the destination delivery that qualifies for it.
How do ERC-7683 orders enter the relayer network?
AcrossOriginSettler validates ERC-7683 order parameters and creates deposits on SpokePool contracts. It uses depositV3() or unsafeDeposit() as the deposit entry point. Relayers can discover the resulting deposits through SpokePool infrastructure. The order's output token, destination chain, recipient, and fill deadline continue to define the requested delivery.