A Sui deposit is a single programmable transaction block that calls deposit on the Hular Move package, carrying the quote hash and a Coin holding exactly the deposit amount. There is no approval step: coin ownership is authorized by the signature on the transaction itself. The package id is 0x297a37d4ba1590bbe849eee60cd346b10fc6d020fa39350405609e299bd1217f, returned as router_address on the quote. The funds land in the shared escrow object (0x44f67927e23f752c79ba83861b16b4a07b1a6a1fb1cf6c9282f6e55e56343ab0), returned as escrow by GetChains; both ids together are everything needed to build the deposit.

The transaction block

  1. Collect the depositor’s coins of src_token and merge them if the balance is spread across several objects.
  2. Split off exactly amount_in.
  3. Call deposit with the escrow object, the 32-byte quote hash, and the split coin.
The type argument T is the full coin type of src_token. The only accepted token on Sui is native USDC, so src_token always equals bridge_token_src: there are no swap-first deposits and no native SUI deposits. Gasless deposits are not available on Sui.

With the SDK

buildSuiDeposit paginates the depositor’s coins, merges and splits them, and assembles the move call. It returns a Transaction ready for a wallet to sign; the wallet estimates the gas budget.
Or let the adapter handle it, which is the same path the other chains take:
Sui deposits are always a single step.

Confirmation

The transaction digest is the order’s source transaction hash. Sui checkpoints are final: the deposit is picked up as soon as its transaction lands in a checkpoint, and one confirmation is all that is ever required. Nothing else is submitted by the user. Move to Track an order.