--- title: Shared types description: Messages that appear across multiple methods. --- ## TradeType Sent on `QuoteRequest` and `PreviewQuoteRequest` to say which side of the trade `amount` fixes. Required; `TRADE_TYPE_UNSPECIFIED` is rejected. | Value | Meaning | | --- | --- | | `TRADE_TYPE_EXACT_INPUT` | `amount` is the deposit, in the source token's base units. | | `TRADE_TYPE_EXPECTED_OUTPUT` | `amount` is the desired payout, in the destination token's base units. The engine solves the required input and returns it as `amount_in`. | | `TRADE_TYPE_EXACT_INPUT_GUARANTEED_OUTPUT` | `amount` is the deposit; the quoted `amount_out` is committed, with refund instead of underdelivery. | | `TRADE_TYPE_EXACT_OUTPUT` | `amount` is the payout, delivered in full or refunded; the engine solves the required input. | See [Trade types](/concepts/trade-types). ## OrderParams The canonical parameter set a quote hash is computed over. Returned on every quote and on `GetOrder`. | Field | Type | Meaning | | --- | --- | --- | | `src_chain`, `dst_chain` | string | Chain names. Equal for a same-chain swap. | | `src_token`, `dst_token` | string | Token addresses on each side. | | `bridge_token_src` | string | Asset that leaves the source chain. Equals `src_token` when there is no source swap, and `dst_token` on a same-chain swap. | | `bridge_token_dst` | string | Asset that arrives on the destination chain. Differs from `bridge_token_src` on a cross-asset lane, such as USDC to USDG. | | `amount_in` | string | Exact deposit amount, base units. | | `amount_out` | string | Expected output, base units. | | `bridge_amount` | string | Amount of `bridge_token_src` the deposit is expected to produce. | | `min_bridge_out` | string | Floor for the source swap leg. | | `min_amount_out` | string | Floor for the delivered output. | | `gas_drop` | string | Native asset to deliver on the destination, base units. | | `recipient` | string | Destination recipient. | | `refund_address` | string | Where a refund is paid. | | `refund_token` | string | Token a refund is paid in. | | `referrers` | Referrer[] | Referrer addresses and basis points. | | `slippage_bps`, `src_slippage_bps` | uint32 | Applied slippage per leg. | | `router_address` | string | Contract the deposit binds to. | | `refund_fee_bridge`, `refund_fee_native` | string | Fees committed for a potential refund. | | `nonce` | bytes | Makes otherwise identical quotes distinct. | ## FeeBreakdown | Field | Type | Meaning | | --- | --- | --- | | `components` | FeeComponent[] | Itemized costs. | | `src_total_usd_micros` | string | Sum of source-side components. | | `dst_total_usd_micros` | string | Sum of destination-side components. | | `src_gas_native` | string | Source gas commitment, native base units. | | `dst_gas_native` | string | Destination gas commitment, native base units. | ### FeeComponent | Field | Type | Meaning | | --- | --- | --- | | `name` | string | One of `bps_spread`, `fixed_fee`, `same_chain_swap_fee`, `dst_fulfill_gas`, `dst_ata_create`, `src_refund_gas`, `src_ata_create`, `src_burn_cost`, `dst_burn_cost`, `referrer_fee`, `gas_drop`, `sponsor_gas`, `asset_conversion`, `guaranteed_output_buffer`, `rebalance_cost`. | | `side` | string | `src` or `dst`. | | `usd_micros` | string | Cost in USD micros. | | `native` | string | Native base units, on gas components. Optional. | See [Fees](/concepts/fees). ## Referrer | Field | Type | Meaning | | --- | --- | --- | | `address` | string | Address the fee accrues to. | | `bps` | uint32 | Share in basis points. | ## ChainStatus | Field | Type | Meaning | | --- | --- | --- | | `chain` | string | Chain name. | | `quote_enabled` | bool | Open for new quotes. | | `indexer_enabled` | bool | Deposits are being ingested. | | `relayer_enabled` | bool | Destination payouts are being submitted. | | `last_indexed_at` | string | Last indexer advance. Optional. | | `cursor` | string | Indexer position. Optional. | | `rpc_url` | string | Public RPC. Optional. | | `explorer_tx_url` | string | Template containing `{tx}`. Optional. | | `explorer_address_url` | string | Template containing `{address}`. Optional. | | `treasury` | string | Deposit target on Solana. Optional. | | `native_symbol` | string | Native asset symbol. | | `native_decimals` | uint32 | Native asset decimals. | | `max_gas_drop` | string | Gas drop ceiling, native base units. | | `router` | string | The `HularRouter` contract on EVM chains. Absent on Solana. Optional. | | `gasless` | bool | Gasless deposits are available with this chain as source. | | `vm` | string | `evm` or `svm`. | | `logo_url` | string | Chain icon. | ## CatalogToken | Field | Type | Meaning | | --- | --- | --- | | `chain` | string | Chain name. | | `chain_id` | uint64 | EVM chain id. Absent on Solana. | | `address` | string | Token address. | | `tier` | string | Liquidity tier driving default slippage. | | `symbol` | string | Display symbol. Optional. | | `decimals` | uint32 | Base-unit exponent. Optional. | | `logo_url` | string | Icon. Optional. | | `permit` | bool | Supports EIP-2612. | ## Order | Field | Type | Meaning | | --- | --- | --- | | `id` | string | Order identifier. | | `quote_id` | string | Quote it belongs to. | | `state` | string | See [Order lifecycle](/concepts/order-lifecycle). | | `src_chain`, `dst_chain` | string | Chains. | | `src_tx` | string | Deposit transaction. Optional. | | `src_block_number`, `src_log_index` | int64 | Deposit block, and its ordinal within the deposit transaction. | | `src_confirmations` | int64 | Confirmations seen. | | `required_confirmations` | int64 | Confirmations needed. | | `dst_tx_hash` | string | Destination transaction. Set at submission, not confirmation. Optional. | | `created_at`, `updated_at` | string | Timestamps. | ## Deposit | Field | Type | Meaning | | --- | --- | --- | | `chain` | string | Chain the deposit landed on. | | `tx_hash` | string | Transaction hash. | | `log_index`, `block_number` | int64 | Ordinal among the deposits in the transaction, and the block it landed in. | | `token` | string | Token received by the router. | | `amount` | string | Amount received, base units. | | `from_address` | string | Depositor. | | `block_time` | string | Block timestamp. | | `detected_at` | string | When the indexer saw it. | ## Fulfillment and Refund Both carry the same shape, differing only in which transaction they reference. | Field | Type | Meaning | | --- | --- | --- | | `id` | string | Identifier. | | `dst_tx` / `src_tx` | string | Destination transaction for a fulfillment, source transaction for a refund. Optional. | | `status` | string | Submission status. | | `attempts` | int64 | Submissions made. | | `last_error` | string | Last failure reason. Optional. | | `confirmed_at` | string | Set on confirmation. Optional. | | `created_at` | string | First submission. | | `gas_used` | int64 | Realized gas. Optional. | | `effective_gas_price` | string | Realized gas price. Optional. | | `actual_native_cost` | string | Realized cost in native base units. Optional. | | `filled_amount` | string | Fulfillment only. Amount actually delivered on-chain, base units, indexed from the destination `Fulfilled` event. Optional. | The realized cost fields are populated after the transaction lands and can be compared against the estimate committed in `fee_breakdown`. The `filled_amount` can differ from the quoted `amount_out` when the relayer applied a gas surge reduction at fulfill time. ## Voucher | Field | Type | Meaning | | --- | --- | --- | | `id` | string | Voucher id, marked used on redemption. | | `chain` | string | Chain it redeems on. | | `chain_id` | uint64 | EVM chain id. Optional. | | `router_address` | string | Contract to redeem against. | | `token` | string | Token paid. | | `referrer` | string | The only address it can pay. | | `amount` | string | Amount, base units. | | `signature` | string | Operator signature over the payload. | | `calldata` | string | Ready-to-send EVM calldata. Optional. | | `redeemed` | bool | Whether it has been redeemed. | | `redeem_tx` | string | Redemption transaction. Optional. | | `created_at`, `redeemed_at` | string | Timestamps. | | `token_symbol`, `decimals` | string, uint32 | Display metadata. Optional. |