Get a gasless quote

Quote endpoint for gasless swaps. Returns a single quote object plus the EIP-712 signing steps (`swapTxns[]`) the wallet must sign.

For a working example, visit the Hyperliquid Withdrawals Guide.

GET
/swap/gasless

Authorization

bearerAuth
AuthorizationBearer <token>

API key for authentication.

In: header

Query Parameters

inputToken*string

HyperCore-side token address. Use 0x2222…2222 for HYPE, 0x2000000000000000000000000000000000000000 for USDC-spot, 0x2100000000000000000000000000000000000000 for USDC-perps, 0x200000000000000000000000000000000000010C for USDT (USDT-SPOT).

originChainId*integer

Logical origin chain. 1337 for HyperCore-origin withdrawals.

Value in1337
outputToken*string

Destination token address. 0x000…000 denotes the chain's native token (e.g. ETH on chain 1, HYPE on chain 999).

destinationChainId*integer

Destination chain id. 999 is HyperEVM (same-token routes are passthrough). Any Across-supported EVM chain is valid.

amount*string

Amount in the input token's smallest unit, as an integer string. With tradeType=exactInput, this is the exact amount taken from the user's HyperCore balance.

tradeType*string

Trade execution strategy. exactInput is the default and only shape exercised in the canonical test suite.

Default"exactInput"
Value in"exactInput" | "exactOutput"
depositor*string

EVM address that will sign every step. The server uses this as the EIP-712 signer when verifying signatures on submit. Must match the connected wallet.

recipient*string

Address that receives the output on the destination chain. EVM hex address.

refundOnOrigin?boolean

For routes that include a destination swap (bridgeableToAny or anyToAny), destination refunds are the default behavior unless refundOnOrigin=true is explicitly set when calling the Swap API. Across determines refund behavior based on the route type (when refundOnOrigin is NOT explicitly set):

  1. B2B or A2B routes:
  • refundOnOrigin defaults to true
  • Refunds occur on the origin chain
  • Destination refunds do not apply here
  1. B2A or A2A routes
  • refundOnOrigin defaults to false
  • Refunds occur on the destination chain

If an explicit refundOnOrigin value is provided, that value is always respected. If a refund occurs, the address that receives the refunded funds is determined using the following priority order: 1. refundAddress (if explicitly specified) 2. recipient (if specified) 3. depositor (fallback) This applies to both origin and destination refunds.

slippage?number

Slippage tolerance percentage can be set to auto (default) or a numerical value. Numerical value must be between 0 and 1 representing corresponding percentage. So if you want slippage to be 0.5% , you need to pass 0.005 as the value here). If slippage is auto, the Swap API will select the best slippage intelligently and move ahead with the crosschain swap. If slippage is set to a numerical value, for example 0.01 (1% slippage), it divides this value equally for each leg. This means 0.5% slippage for origin and 0.5% slippage for destination.

appFee?number

Enables integrators to collect a customizable fee in the output token, sent to a designated address on the destination chain. appFee is expressed in percentage with value ranging between 0 and 1. For example, 1% appFee would use 0.01 as a value here.

appFeeRecipient?string

EVM address that receives the app fee on the destination chain. Required if appFee > 0.

Response Body

application/json

application/json

application/json

application/json

curl -X GET "https://across.to/api/swap/gasless?inputToken=0x2100000000000000000000000000000000000000&originChainId=1337&outputToken=0x0000000000000000000000000000000000000000&destinationChainId=1&amount=100000000&tradeType=exactInput&depositor=0xA4d353BBc130cbeF1811f27ac70989F9d568CeAB&recipient=0xA4d353BBc130cbeF1811f27ac70989F9d568CeAB"

{
  "depositId": "11693314882668005655414399642742358739341528431815608912897637273556066525329",
  "crossSwapType": "bridgeableToBridgeable",
  "amountType": "exactInput",
  "inputToken": {
    "decimals": 8,
    "symbol": "USDC-SPOT",
    "address": "0x2000000000000000000000000000000000000000",
    "chainId": 1337
  },
  "outputToken": {
    "decimals": 6,
    "symbol": "USDC",
    "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
    "chainId": 42161
  },
  "refundToken": {
    "decimals": 6,
    "symbol": "USDC",
    "address": "0xb88339CB7199b77E23DB6E890353E22632Ba630f",
    "chainId": 999
  },
  "inputAmount": "1000000000",
  "maxInputAmount": "1000000000",
  "expectedOutputAmount": "9994700",
  "minOutputAmount": "9994700",
  "expectedFillTime": 4,
  "approvalTxns": null,
  "checks": {
    "allowance": {
      "token": "0x2000000000000000000000000000000000000000",
      "spender": "0x0000000000000000000000000000000000000000",
      "actual": "0",
      "expected": "0"
    },
    "balance": {
      "token": "0x2000000000000000000000000000000000000000",
      "actual": "0",
      "expected": "1000000000"
    }
  },
  "steps": {
    "originSwap": null,
    "bridge": {
      "provider": "sponsored-cctp"
    },
    "destinationSwap": null
  },
  "fees": {
    "total": {
      "amount": "0",
      "amountUsd": "0.0"
    },
    "totalMax": {
      "amount": "0",
      "amountUsd": "0.0"
    },
    "originGas": {
      "amount": "0",
      "token": {
        "chainId": 999,
        "address": "0x0000000000000000000000000000000000000000",
        "decimals": 18,
        "symbol": "HYPE"
      }
    },
    "submission": {
      "amount": "5300",
      "token": {
        "address": "0xb88339CB7199b77E23DB6E890353E22632Ba630f",
        "chainId": 999,
        "symbol": "USDC",
        "decimals": 6
      },
      "recipient": "0x07aE8551Be970cB1cCa11Dd7a11F47Ae82e70E67",
      "valueUsd": 0.00529841,
      "sponsored": false
    }
  },
  "swapTx": {
    "ecosystem": "evm-gasless",
    "chainId": 999,
    "to": "0x10D8b8DaA26d307489803e10477De69C0492B610"
  },
  "swapTxns": [
    {
      "stepId": "hypercore-transfer",
      "ecosystem": "hypercore",
      "chainId": 1337,
      "to": "0x2000000000000000000000000000000000000000"
    },
    {
      "stepId": "gasless-auth",
      "ecosystem": "evm-gasless",
      "chainId": 999,
      "to": "0x10D8b8DaA26d307489803e10477De69C0492B610"
    }
  ],
  "quoteExpiryTimestamp": 1779287711,
  "id": "qvxmd-1779284191902-df1eb4e05240"
}

{
  "type": "AcrossApiError",
  "code": "AMOUNT_TOO_HIGH",
  "status": 400,
  "message": "Amount is higher than available liquidity. Max amount is 716928.917387 USDC.",
  "id": "vgcwv-1779284191168-cae95d247531"
}

{
  "type": "AcrossApiError",
  "code": "FORBIDDEN_API_KEY",
  "status": 403,
  "message": "Invalid or missing API key"
}
{
  "type": "AcrossApiError",
  "code": "INTERNAL_SERVER_ERROR",
  "status": 500,
  "message": "Internal server error"
}