App Kit can provide an estimate of the fees you’ll incur before spending from a
Unified Balance.
Prerequisites
Before you begin, ensure that you’ve:
These are required so any example below runs with a valid kit and adapter.
Estimate fees before spending
This sample estimates then spends 1.00 USDC from Base Sepolia to Arc Testnet
when you specify explicit amounts from a source blockchain:
import { AppKit } from "@circle-fin/app-kit";
import { createViemAdapterFromPrivateKey } from "@circle-fin/adapter-viem-v2";
const kit = new AppKit();
const adapter = createViemAdapterFromPrivateKey({
privateKey: process.env.EVM_PRIVATE_KEY as string,
});
const params = {
amount: "1.00",
from: {
adapter,
allocations: [{ amount: "1.00", chain: "Base_Sepolia" }],
},
to: {
adapter,
chain: "Arc_Testnet",
recipientAddress: "0xRecipientAddress",
},
};
const estimate = await kit.unifiedBalance.estimateSpend(params);
console.log("Estimated fees:", estimate.fees);
const result = await kit.unifiedBalance.spend(params);
Estimated fees may differ from actual fees due to network conditions at
execution time. Review the estimate before proceeding.
Example fee response
The JSON below shows the shape of the fees array.
{
"fees": [
{
"type": "provider",
"token": "USDC",
"amount": "0.00005",
"allocations": [{ "chain": "Base Sepolia", "amount": "0.00005" }]
},
{
"type": "gasFee",
"token": "USDC",
"amount": "3.311005",
"allocations": [
{ "chain": "Ethereum Sepolia", "amount": "3.30" },
{ "chain": "Base Sepolia", "amount": "0.011005" }
]
},
{
"type": "kit",
"token": "USDC",
"amount": ".1",
"allocations": [{ "chain": "Ethereum Sepolia", "amount": ".1" }],
"recipientAddress": "0x2222222222222222222222222222222222222222"
}
]
}
Fee type values can include:
provider — Protocol transfer fee when the spend is crosschain. Not
charged for same-chain spends.
gasFee — Onchain gas paid on source blockchains as part of the spend.
kit — Developer custom fee from your
custom fee policy.
forwarder — Forwarding Service fee when the spend
uses the forwarder
(not shown in the sample above).
See How Unified Balance fees work for
a conceptual fee breakdown.