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
- Collect the depositor’s coins of
src_tokenand merge them if the balance is spread across several objects. - Split off exactly
amount_in. - Call
depositwith the escrow object, the 32-byte quote hash, and the split coin.
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.