Skip to main content
The App Kit SDK includes the Unified Balance capability that combines USDC from multiple blockchains into a single, instantly spendable balance. It is built on top of Circle Gateway and abstracts the Gateway workflow so that cross-ecosystem spends (for example, EVM → non-EVM) are as straightforward as same-ecosystem spends (for example, EVM chain → another EVM chain).

How it works

Unified Balance works by depositing funds held across multiple blockchains into a single, chain-agnostic Unified Balance. Those funds are then available to spend instantly on any blockchain. The process is illustrated below:

Quick look

This code snippet creates a Unified Balance by depositing funds from two blockchains to spend on a third:
TypeScript
// Deposit 1.00 USDC into the Unified Balance from Base
const depositBase = await kit.unifiedBalance.deposit({
  from: { adapter: viemAdapter, chain: "Base_Sepolia" },
  amount: "1.00",
  token: "USDC",
});
// Deposit 1.00 USDC into the Unified Balance from Arbitrum
const depositArb = await kit.unifiedBalance.deposit({
  from: { adapter: viemAdapter, chain: "Arbitrum_Sepolia" },
  amount: "1.00",
  token: "USDC",
});
// Spend 1.50 USDC from the Unified Balance on Arc
const spendResult = await kit.unifiedBalance.spend({
  amount: "1.50",
  from: { adapter: viemAdapter },
  to: {
    adapter: viemAdapter,
    chain: "Arc_Testnet",
    recipientAddress: "0xRecipientAddress",
  },
});
For a complete end-to-end flow, follow the quickstart for your scenario:

Installation

Install the App Kit SDK to use Unified Balance. If you only need Unified Balance and don’t want to install the full App Kit SDK, follow the steps below to install the standalone Unified Balance Kit.
1

Install Unified Balance Kit

npm install @circle-fin/unified-balance-kit
2

Install adapters

Install the adapters you need for the blockchains you plan to deposit from and spend on.
npm install @circle-fin/adapter-viem-v2 viem