Integrate WalletSuite into your backend — balances, prices, fees, and unsigned transaction payloads — via the TypeScript SDK or REST API.
Time: 10-15 minutes.Integrate from TypeScript via the SDK, or from any language via the REST API. Either way, run it server-side — keys and signing stay on your infrastructure. WalletSuite returns unsigned transaction payloads you sign with your existing signer (KMS, HSM, custodian, or a local wallet).
The response contains everything your signing infrastructure needs: nonce, gas parameters, calldata, and value. Sign this payload with your own key management (HSM, KMS, or any signer) and broadcast via your infrastructure or the WalletSuite API.
The SDK throws a typed ApiError carrying the HTTP status; the REST API returns the ApiResponse envelope (ok, code, message) alongside that status. Branch on it:
import { ApiError } from "@walletsuite/wallet-sdk";try { const balance = await sdk.api.getNativeBalance(address, chain);} catch (error) { if (!(error instanceof ApiError)) throw error; switch (error.status) { case 400: // Fix input (bad address, invalid chain) break; case 401: case 403: // Check API key, or feature not enabled on your plan break; case 429: // Back off, retry later break; default: if (error.status && error.status >= 500) { // Retry with backoff (transient upstream error) } }}
response = session.get(f"{BASE_URL}/api/balance/{address}", params={"chain": chain})if not response.ok: code = response.json().get("code") # error code from the ApiResponse envelope if response.status_code == 400: ... # Fix input (bad address, invalid chain) elif response.status_code in (401, 403): ... # Check API key, or feature not enabled on your plan (see code) elif response.status_code == 429: ... # Back off, retry later elif response.status_code >= 500: ... # Retry with backoff (transient upstream error)
Run the SDK server-side, not in the browser. The integration shape:
Browser → Your Server → WalletSuite SDK → unsigned tx payload │ ▼ Your signer (KMS / HSM / custodian / local wallet) │ ▼ Signed tx → WalletSuite API or your own RPC → Blockchain
This keeps your API key on the server, keeps signing inside your existing key infrastructure, and lets you add your own auth, rate limiting, and business logic between the user and WalletSuite. The SDK never sees keys or signed payloads — it returns typed unsigned payloads with everything your signer needs (nonce, gas parameters, calldata, value).