The SDK wraps the generated protobuf client with a configured transport, deposit builders for both chain families, and the formatting helpers every integration ends up writing anyway.

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.