Mayan auctions let drivers compete to deliver cross-chain swap outputs

Mayan auctions let drivers compete to deliver the tokens specified in a cross-chain order. Drivers offer execution terms, and the best offer wins. Swift uses capital drivers already hold on the destination chain to fund delivery. The selected quote determines whether the recipient gets a variable output at or above a signed floor or an exact amount. A deadline limits the fill window; an order left unfilled becomes refundable after that deadline.

Orders define the outcome drivers must deliver

An intent specifies the input asset, the destination token and chain, and the least acceptable output. The user doesn't need to design every underlying movement of funds. Drivers compete to satisfy the order within its signed conditions. A quote request returns available routes before execution. Each quote carries its own method and output terms. Selecting one establishes which mechanism applies; Swift auction fields don't describe every other method in the response. The expected return shown while choosing a route also remains distinct from an order's eventual delivery.

Where do drivers submit their Swift offers?

Swift drivers submit offers on Solana based on the output they can supply on the destination chain. The auction's location doesn't require the recipient's tokens to arrive on Solana.

Destination liquidity precedes source reimbursement

Swift separates the recipient's destination payment from the driver's recovery of locked source funds. Drivers supply destination liquidity upfront. Cross-chain verification and source-side release follow afterward, moving that wait away from an ordinary recipient.

Diagram: Destination liquidity precedes source reimbursement (Mayan auctions)
Destination liquidity precedes source reimbursement - diagram

View full-size image

The source contract locks the input, which may first be converted into the chain's primary locked asset. After fulfilment, destination data supports the later source-side unlock. Winning the auction alone doesn't release the locked source funds.

Payload-enabled Swift swaps stage the destination payout and complete it after a settlement step validates the payload. Their source unlock still waits for the cross-chain attestation. Zaps can attach destination actions to swaps, so a staged payout shouldn't be presented as already delivered.

When does the auction fix the received amount?

A Swift order fixes its received amount when the selected quote carries swiftAuctionMode equal to 3 , indicating Guaranteed Price.

Reading the settlement mode

Mode 2 preserves a minimum

With mode 2 , the driver must deliver at least minAmountOut . The eventual output usually sits near expectedAmountOut , and it can be higher or lower than that estimate. Competitive offers operate within the signed minimum; the displayed expectation isn't a fixed settlement amount.

Mode 3 fixes the output

Mode 3 makes expectedAmountOut the exact output for a successful fill. A payment can use that figure as a fixed received amount. The guarantee covers quantity, not completion time. An exact-output order still has a deadline and can expire unfilled.

Asset eligibility limits exact output

Guaranteed Price supports same-asset transfers of USDC, USDT, and ETH across supported chains. Other same-asset transfers and cross-asset swaps don't qualify. Eligibility also belongs to the individual quote: the same pair can return different settlement modes on different orders. Its previous mode doesn't establish the next order's terms.

The signed floor constrains competitive pricing

A mode 2 order can't fill below its signed minAmountOut . If drivers can't satisfy that requirement, a lower market price doesn't authorize a smaller fill. An unfilled order follows its deadline and refund rules.

Output fields also distinguish the minimum from the amount remaining after relayer fees. minReceived expresses that latter floor. Across route families, those fields shouldn't automatically be treated as interchangeable.

What ends a driver's opportunity to fill an order?

The quote's deadline64 marks the timestamp after which an unfilled order can no longer be filled and becomes refundable. It isn't an estimated processing duration. By contrast, etaSeconds and clientEta describe estimated settlement timing. A short estimate doesn't extend an expired order or promise delivery before expiry. The return of funds also requires an onchain refund action; reaching the deadline alone doesn't confirm that action has completed.

Illustration: Mayan auctions: What ends a driver's opportunity to fill an order?

View full-size image

A refund follows the locked asset

A Swift refund returns the converted source asset when the input underwent a swap before the order opened. The primary locked asset is typically USDC or ETH. If conversion occurred, returning that asset doesn't reverse the earlier source swap into the original token.

Refund execution also carries a relayer fee the quote exposes before signing. refundRelayerFee and refundRelayerFee64 describe the fee; clientRelayerFeeRefund gives the total dollar value of relayer fees for the refund outcome. Neither a quoted output nor an expired deadline establishes the amount a completed refund actually returned.

Visual summary: Mayan auctions: A refund follows the locked asset

View full-size image

Delivery records establish the final auction amount

A driver's offer describes a proposed delivery; the destination result establishes what arrived. The Explorer's toAmount records the actual delivered amount on completion, while the quote's expectedAmountOut describes the amount expected before execution.

For tracked swaps, clientStatus reports INPROGRESS , COMPLETED , or REFUNDED . A completed swap has delivered on the destination chain. A refunded order has returned funds. An in-progress order remains live and unfilled. These states distinguish an unresolved order from either terminal outcome.

The completedAt field records settlement time, allowing an application to replace its earlier estimate with the actual completion timestamp.

Terms for a payment requiring an exact amount

Can a payment rely on the displayed USDC output? An eligible USDC-to-USDC Swift quote supplies a fixed amount when it returns mode 3 .

  • Confirm the quote uses SWIFT before interpreting swiftAuctionMode .
  • Require mode 3 when the payment needs an exact received amount.
  • Keep USDC as the asset on both sides, across supported chains.
  • Treat deadline64 as the end of the fill window, not a payment-time guarantee.
  • Account for the quoted refund cost if the order expires without a fill.

A mode 2 quote can still transfer USDC, but its expected output can't serve as an exact payment commitment. The amount guarantee also doesn't eliminate the possibility of a refund.

Auction pricing remains part of a specific route

A route can include protocol and integration fees alongside its competitive execution terms. The quote exposes protocolBps and referrerBps ; an integrator's referral fee adds to the protocol fee. Reading the selected quote avoids turning one stored rate into a universal charge. The success and refund relayer-fee totals describe alternative outcomes, so adding both would overstate the relayer cost of a successful fill.

Swift drivers fund destination delivery from their own capital. MCTP transfers USDC through Circle's CCTP, with drivers competing on Solana for orders requiring a destination swap. Fast MCTP uses CCTPv2 with the same auction flow. A Wormhole Swap route that includes a swap holds its auction on Solana, where the winner performs a flash swap and atomically supplies the promised output. That output goes directly to a Solana recipient or through the Wormhole Token Bridge to another destination chain. These mechanisms sit within Mayan's wider swap service. Their shared availability doesn't give them identical auction settings, fees, or payout behaviour. Keeping the selected route's terms intact lets a recipient distinguish a competitive estimate from a fixed amount.

Mayan auctions questions, answered

Does a short quote list reveal how many drivers bid?

The quote list counts available route options, not participating drivers. By default, the Quote API returns at most two options: the fastest route and the best-return route. It returns one when the same option satisfies both. Those results don't establish the number of offers an individual auction received, so a short list can't be read as a measure of driver competition.

Can a gasless Swift order enter the auction without a wallet transaction?

An eligible gasless Swift order uses a signed message, and a Mayan relayer submits the onchain transaction. The relayer pays source-chain gas, so the user doesn't spend the chain's native token from their wallet for that submission. Gasless support belongs to the selected quote. Requesting this mode restricts the available routes; an empty response means the requested pair has no gasless route available.

May a Swift refund go to a different source-chain address?

A non-gasless Swift order can use a different valid source-chain refund wallet through the SDK's swiftRefundAddress option. A gasless Swift order requires the refund address to match the signer, and the SDK rejects a different address. Other quote types ignore that Swift-specific option and refund to the swapper wallet. A zero address isn't accepted as a custom Swift refund destination.

Is Guaranteed Price a setting I can enable for an auction?

Mayan determines Guaranteed Price eligibility and returns it on the quote without a separate enable flag or allowlist. For a Swift quote, swiftAuctionMode equal to 3 identifies the exact-output commitment. The selected quote must actually carry the mode before its expectedAmountOut can be presented as a fixed received amount.

Where is an integrator's referral fee collected after a Swift fill?

Swift collects an integrator's referral fee from the locked source asset and pays it on the source chain. With a single referrer wallet, an EVM-source Swift order credits the fee manager when the order unlocks on the source chain. That credit doesn't imply an immediate transfer to the wallet. On other Swift routes using one referrer wallet, the referral fee transfers directly when the order completes. For USDC, USDT, or WETH payouts to a Solana referrer, the corresponding associated token account must exist; without it, the fee can be lost. Split-wallet fees instead accrue to a shared address derived from the wallet list.

Updated: