Stablecoin treasury management across chains
What is stablecoin treasury management across chains?
Stablecoin treasury management across chains is keeping one current view of the stablecoin cash a business holds in every wallet, on every chain, by token, also called a multi-chain cash position.
Treasury teams need it to know how much cash they can move and where it sits, and wallets spread across chains and custodians make that hard to see from their treasury system; the AFP lists integration with treasury and ERP systems among the barriers to using stablecoins in treasury.
Goldsky keeps each watched wallet’s balance current in your database as cash moves, and your treasury system adds them up by wallet, chain and token.
You can see stablecoin cash across chains two ways: stream balances for every wallet into your database with Turbo Pipelines, or call the Feeds balances API for each wallet from your app.
Who uses stablecoin treasury management across chains?
Stablecoin payment companies, remittance companies, sponsor banks and fintechs that hold operating cash in stablecoins, in dollars or euros, on more than one chain.
How a multi-chain stablecoin cash view works
The diagram follows one treasury wallet from the day it’s opened to its balance in your total cash view, and shows who does each step. Your setup may differ.
Ways to see stablecoin cash across chains
The pipeline pushes each balance change to your database as cash moves; the balances API returns holdings with US dollar values when your app calls it, with nothing running in between.
- Best for
- Many wallets, with positions kept beside your treasury system
- Products
- Turbo
- What you run
- The destination: your database, queue or bucket, or a Postgres database Goldsky hosts
- What you write
- Pipeline YAML and SQL; TypeScript transforms when needed
- Where your data lives
- In your own database or systems
- How results reach you
- Pushed to you
- Best for
- Tens of wallets, checked from your app when needed
- Products
- Feeds
- What you run
- Nothing; you call an endpoint and keep what you need
- What you write
- REST requests
- Where your data lives
- Hosted by Goldsky
- How results reach you
- Returned when you call
| Usual setupOption 1: Stream to your database | Option 2: Balances API | |
|---|---|---|
| Best for | Many wallets, with positions kept beside your treasury system | Tens of wallets, checked from your app when needed |
| Products | Turbo | Feeds |
| What you run | The destination: your database, queue or bucket, or a Postgres database Goldsky hosts | Nothing; you call an endpoint and keep what you need |
| What you write | Pipeline YAML and SQL; TypeScript transforms when needed | REST requests |
| Where your data lives | In your own database or systems | Hosted by Goldsky |
| How results reach you | Pushed to you | Returned when you call |
Open a treasury wallet
Cash sits in wallets the business opens for operations, collections or payouts on each chain it uses.
Your treasury team decides what each wallet is for and records it. A wallet with no recorded purpose shows up in the total with nobody to answer for it.
Create the address
Your custodian creates the wallet and holds its keys under your policy.
The new address has to reach your treasury records as soon as it exists. If it doesn’t, cash can arrive in a wallet nobody is watching.
Watch every wallet
Handled by Goldsky TurboYou only see balances for wallets you’re watching, so each new one has to join the list.
The list has to update without restarting anything. A gap between opening a wallet and watching it leaves its first receipts out of your cash view.
With Goldsky, the wallet list is a Turbo Pipelines dynamic table in your Postgres database; insert a row and the running pipeline starts watching that address.
Learn about dynamic tables (opens in a new tab)Move cash in and out
Stablecoins arrive from customers and counterparties and leave as payments.
Each movement is recorded in a block. For a short time the newest blocks can still be replaced, so a balance seen once can still change.
Keep balances current
Handled by Goldsky TurboTreasury needs each wallet’s balance now, not as of yesterday’s export.
When a watched wallet moves, its balance is read at that block and replaces the previous figure, one row per wallet and token. Reading only on a schedule leaves the view behind between reads.
Turbo Pipelines calls
Read balances in pipeline SQL (opens in a new tab)_gs_eth_callwithbalanceOfat the transfer’s block and upserts one row per wallet and token, so a reorg correction replaces the same row.See all your cash
Treasury wants one figure per wallet, chain and token, and a total.
Your treasury system sums the rows by wallet, chain and token and shows where cash sits, next to your bank balances, with each currency’s stablecoins, such as dollar and euro stablecoins, in their own total. Tokens with different decimals have to be scaled before they’re added, or one token’s units swamp the total.
What to know about streaming treasury balances
- Goldsky runs the pipeline; totals by wallet, chain and token are queries in your database or treasury system.
- A new wallet is watched as soon as you add it to the list, with no redeploy.
- Balances update when a wallet moves, so a wallet that hasn’t moved keeps its last balance.
- Rows keyed on the wallet take reorg corrections as updates.
Open a treasury wallet
Cash sits in wallets the business opens for operations, collections or payouts on each chain it uses.
Your treasury team decides what each wallet is for and records it. A wallet with no recorded purpose shows up in the total with nobody to answer for it.
Create the address
Your custodian creates the wallet and holds its keys under your policy.
The new address has to reach your treasury records as soon as it exists. If it doesn’t, cash can arrive in a wallet nobody is watching.
Keep your wallet list
The API returns only the wallets you request, so your app needs the full list.
Store each wallet’s address and purpose, and add new wallets as they’re opened. A wallet missing from the list is missing from the total.
Move cash in and out
Stablecoins arrive from customers and counterparties and leave as payments.
Each movement is recorded in a block. For a short time the newest blocks can still be replaced, so a balance seen once can still change.
Read each wallet’s balances
Handled by Goldsky FeedsTreasury needs what each wallet holds now, on every chain it uses.
Your app requests each wallet’s balances on the chains you use. A dollar total needs a price for every token, and a token without one adds nothing to it.
The Goldsky Feeds balances endpoint returns one wallet’s latest balance of each token across the chains you request, with a US dollar value per token and a total for the wallet.
Read wallet balances (opens in a new tab)See all your cash
Treasury wants one figure per wallet, chain and token, and a total.
Your app adds the wallets together by chain and token, keeping dollar and euro stablecoins in separate currency totals, and shows where cash sits. Record when each balance was read, because a total built from reads at different times can count a transfer twice.
What to know about using a balances API for treasury
- Your app calls the API when it needs a figure; nothing is pushed to you when cash moves.
- The API returns the latest balance only; a past date has to be rebuilt from transfers.
- Each call covers one wallet, so the total across wallets is your step.
- A token without a recent price comes back without a US dollar value.
What you control
- Your team
- Open a treasury wallet
- See all your cash
- Your providers
- Custodian
Security and deployment
- SOC 2 Type IIIndependently audited security controls.
- Dedicated infrastructureSingle-tenant options for production workloads.
- Data residencyCloud, on-premises or co-located.
More use cases that manage treasury
- Idle stablecoin cash sweepsMove idle stablecoin balances into tokenized money funds when they pass a threshold.
- Gas wallet monitoringKeep gas wallets funded on every chain and alert before one runs dry.
- Sponsored gas spendTotal the gas you pay for your users per user, paymaster and day, watch the paymaster’s deposit and check the provider’s bill.
- Intercompany settlement in stablecoinsSettle what group entities owe each other in stablecoins, and land each transfer beside the intercompany ledger.
Use cases built the same way
- Stablecoin dollar accountsOffer dollar accounts held in stablecoins, with balances and history kept in step with the chain.
- Stablecoin card program operationsWatch card-backing wallets and read balances at authorization time for stablecoin-linked cards.
- Embedded wallet balances and historyShow balances and history for wallets embedded in a fintech app.
- Digital asset treasury company holdings and mNAVTrack what listed treasury companies hold onchain, per share, and their mNAV.
Manage stablecoin treasury across chains with Goldsky
We’ll map it to your systems and show you what Goldsky runs, so your team builds the product, not the pipelines underneath it.