Client
apsis and partner are typed clients over ApsisApi and PartnerApi. Every RPC in the API reference is a method on one of them, in camelCase.
The transport is gRPC-web, which works in browsers and in Node.
Chain adapters
ChainAdapter is the interface that hides the difference between an EVM deposit and a Solana one.
steps returns an ordered list. Each has a kind of approve or deposit and a run that sends it and resolves to a transaction hash. EVM deposits produce one or two steps depending on the existing allowance; Solana always produces one.
chainId is required for EVM chains and ignored for Solana. walletKindOf(chain) tells you which wallet family a chain needs.
The entry point and target contract are chosen from the quote: depositNative, depositToken, depositWithSwap, or swapAndForward for a same-chain swap. See Deposit on EVM and Same-chain swaps.
For a gasless quote, gaslessSteps(wallet, quoteHash, orderParams, { sponsorAddress }) replaces steps: it collects the permit2 signature on EVM or the sponsor-paid transaction on Solana, submits it through SubmitGaslessOrder, and resolves once the relayed deposit is on chain. canPayGas(owner) tells you whether the wallet could pay for a normal deposit at all, which is the usual trigger for offering gasless.
Wallets
Browser wallet plumbing, for apps that do not already have it:
If you already have wagmi, viem, or a wallet adapter, use yours and pass a
ConnectedWallet-shaped object to steps.
Quote helpers
Order helpers
Amount helpers
parseAmount truncates beyond the token’s decimals rather than rounding, which matches what the contract will accept.
Low-level building blocks
encodeDepositNative, encodeDepositToken, encodeDepositWithSwap, evmBalance, evmAllowance, buildSvmDeposit, and buildSvmSwapDeposit are exported for integrations that want the calldata without the step machinery. The generated protobuf types are re-exported too, so OrderParams, ChainStatus, and the rest are importable from the package root.