Skip to main content
App Kit’s Unified Balance capability 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

App Kit comes with the Unified Balance capability installed by default. If you’ve already installed App Kit, you can skip this section. If you only need to use the Unified Balance capability and don’t want the full App Kit, you can install the standalone package. Install the Unified Balance package and the adapters that match your environment:
1

Install the Unified Balance package

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