Table of Contents
A Utila USDC treasury isn't defined by where the dollars sit. It's defined by who can move them, and Utila's rule engine is strict about that: if no policy rule matches a transaction, the transaction is automatically rejected, per Utila's Help Center.
That default is why so many teams that read Stablecoin Insider's Utila vs Fireblocks comparison ask the same next question: how do you actually set the thing up so USDC moves when it should and stops when it shouldn't?
This guide walks through the build in seven steps, using only Utila's own docs, Help Center and pricing page as of 20 October 2026. Then it prices the Starter plan per dollar moved and names where the setup breaks.
Key Takeaways
- Utila Starter costs $799 a month, capped at $3M outbound per quarter (Utila pricing).
- Any transaction that matches no policy rule is rejected automatically (Utila Help Center).
- The admin quorum is 1 or 2 approvers; changing it needs the old quorum (Utila).
- Service accounts get only Viewer or Signer roles and up to 3 RSA keys (Utila docs).
- One sponsor wallet can pay gas for USDC sweeps on EVM chains, Solana, Sui and Aptos (Utila docs).
What a Utila USDC treasury is made of
Let's start with vocabulary, because Utila's words map onto treasury jobs in a specific way. A vault is the workspace with one governance layer: transaction and compliance policies, the admin quorum and one address book for every wallet inside it, per Utila's vault guide.
| Utila building block | What it does | Treasury job it covers |
|---|---|---|
| Vault (docs) | Workspace with its own policy, quorum and address book | Entity or business-line boundary |
| Wallet and wallet group (Utila) | One wallet maps to one address per chain; groups let one rule cover many wallets | Reserve, operating, deposit and gas balances |
| Address book (docs) | Whitelisted destinations and contracts that rules can reference | Approved beneficiary list |
| Transaction policy (docs) | Ordered rules; first full match decides the outcome | Approval matrix and limits |
| Admin quorum (docs) | 1 or 2 admins approve vault actions such as policy edits | Change control over the rules themselves |
| Service account and Co-Signer (docs) | API identity plus a CLI tool that signs designated transactions automatically | Sweeps and routine payouts without clicks |
Here's why that matters. The quorum that approves a payment and the quorum that changes the payment rules are separate controls, and Utila's treasury playbook says they should be configured separately. Most setup mistakes come from treating them as one.
Before you start: plan limits that shape the design
The Starter plan is $799 a month for 12 months, billed quarterly, and covers up to $3M of outbound volume per quarter, 1,000 active wallets, 1 vault and 3 users, per Utila's pricing page. Growth, Pro, Scale and Enterprise plans are quoted on request.
Those limits decide your layout before any technical choice does. One vault means every wallet shares one policy and one address book. Three seats means maker-checker has to fit inside three people. And a $3M quarterly cap works out to roughly $1M of outbound USDC a month before Utila moves you to a custom plan (Utila).
Settle four things first: which chains carry your USDC, whether you hold client funds (which changes licensing), who approves what, and whether idle balances may earn yield. Utila's pay-ins guide makes the same point: these are commercial and regulatory calls, not technical ones.
Step 1: Create the vault and lock the admin quorum first
Set the admin quorum before you fund anything. In Utila it can be 1 or 2 approvers, and with 2, the initiating admin plus one more admin must approve each vault action, according to Utila's admin quorum guide.
The quorum guards the sensitive levers: changing the quorum itself, transaction and compliance policies, users and devices, address book entries and groups, wallet names, and backups. A quorum change also has to be approved by the existing quorum, which clears every pending request before the new one takes over (Utila).
Utila recommends two approvers for any vault that holds client funds, per its migration guide. You can also set custom quorums per vault action under Vault Settings, Admin Quorum, Manage Quorums, and some actions offer auto approval (Utila).
Stablecoin Insider's recommendation for a USDC treasury: a quorum of 2, with no auto approval on policy or address book changes.
Step 2: Assign roles so no one can pay and approve alone
Utila has five member roles, and they split cleanly along maker-checker lines, per Utila's role guide:
- Viewer: read-only, no vault settings, can't create or sign.
- Non-signing operator: initiates and approves transactions, manages address book entries, can't sign. A restricted version is limited to specific wallets.
- Signer: everything an operator does, plus holds key shares and signs transactions. No vault settings.
- Non-signing admin: full vault configuration and signs vault actions, but can't sign transactions.
- Admin: everything, including signing transactions. One admin is the vault owner.
On a 3-seat Starter plan, one workable split is: the treasurer as Admin, the controller as Non-signing admin (so the two of them form the quorum of 2), and an accounts-payable lead as a restricted Non-signing operator who initiates payouts from one wallet only. That layout uses every seat on the plan (Utila pricing).
Step 3: Lay out wallets by job, not by chain
Utila maps one wallet to one address per chain, so a single "Treasury" wallet holds your USDC on Ethereum, Base and Solana under one name, per the pay-ins guide. Split wallets by purpose instead, then group them so rules can target the group.
| Wallet | Holds | Who can move it | Policy posture |
|---|---|---|---|
| Treasury reserve | Surplus USDC | Signer after 2 approvals | Requires approval, two groups |
| Operating / payouts | Next 1 to 2 weeks of outflows | Co-Signer within limits; humans above | Allow below a cap, approval above |
| Deposit wallet group | Customer or counterparty receipts | Sweep service account only | Allow to treasury wallet only |
| Gas sponsor | ETH, SOL and other native tokens | Sponsor role in sweeps | Excluded from sweeps |
| Yield (optional) | USDC allocated to Utila Yield | Treasurer plus approver | Requires approval both ways |
The three-tier split (operating, reserve, investable surplus) comes from Utila's own treasury playbook, which also says to keep excess liquidity in a reserve wallet that automated payouts can't reach. Creating a wallet group needs admin quorum approval (Utila).
Step 4: Load the address book before the first payout
The address book is the allowlist your rules point at. Utila says it can ensure assets only go to pre-approved addresses and block any transfer or contract call to a destination that isn't on the list, per Utila's address book guide.
For a supplier list, upload a CSV with the columns Name, Address, Blockchain and an optional Note. Each entry is a sensitive vault action that needs admin quorum approval, and bulk uploads can be approved and signed in one pass on the mobile app (Utila). Duplicate address and chain pairs, special characters in names and blank addresses are rejected, so clean the file first.
Then put suppliers, internal wallets and off-ramp deposit addresses into separate address book groups. You'll reference those groups as destinations in Step 5.
Step 5: Write a first-match transaction policy
Every outbound transaction is checked against your rules from top to bottom, and the first rule whose conditions all match decides the outcome, per Utila's policy guide. Each rule takes one of three actions: Deny, Requires approval, or Allow (Utila).
A Transfer rule can match on initiator, source wallet or group, amount (per transfer or accumulated hourly, daily, weekly or monthly), destination, chain and token, plus an allowed signer. One catch: a saved rule can't be edited, only duplicated or deleted, per Utila's rule editor guide.
Here's an illustrative USDC policy stack. Order matters, so the narrow rules sit above the broad ones.
| Priority | Rule (Transfer, token USDC) | Action |
|---|---|---|
| 1 | Initiator: sweep service account. From: deposit wallet group. To: treasury reserve wallet | Allow (Co-Signer signs) |
| 2 | Initiator: payout service account. From: operating wallet. To: supplier address book group. Up to $5,000 per transfer and $50,000 per day | Allow (Co-Signer signs) |
| 3 | From: operating wallet. To: supplier group. Up to $100,000 per transfer | Requires approval: 1 from finance group |
| 4 | From: treasury reserve. To: operating wallet or off-ramp group | Requires approval: finance plus compliance groups |
| 5 | Any transaction type, any source | Requires approval: 2 admins |
| (none) | Anything no rule matched | Rejected by default (Utila) |
Dollar thresholds above are Stablecoin Insider's examples. Utila's own advice is to start auto-approval limits low and raise them as payout history builds, per its pay-ins guide. Keep the accumulated-amount box in mind too: with "All transfers count against this amount" ticked, transfers caught by other rules still eat into the daily cap (Utila).
Step 6: Automate sweeps and payouts with a service account and Co-Signer
Automation runs through service accounts. Creating one doesn't need the quorum, but granting it a role does, and the only roles available are Viewer and Signer. Each account can hold up to 3 active RSA keys, and adding a key needs quorum approval while removing one is immediate, per Utila's service account docs.
Lock each account to your egress IPs. Utila supports individual IPv4 and IPv6 addresses but not CIDR ranges, and changing the list is itself a quorum action (Utila). Use a Viewer account for deposit monitoring, since crediting deposits only reads data (Utila).
The Co-Signer is a CLI tool that polls the vault and signs only transactions designated to its service account. It runs in sign-all mode or webhook mode, and in webhook mode an unreachable or non-200 endpoint leaves the transaction pending rather than signing it. Transfers created in the console are never sent to the Co-Signer, per Utila's Co-Signer docs.
Utila's documented USDC sweep then runs in four calls:
- Query balances for the USDC asset across every wallet with the wildcard wallet ID, up to 1,000 results per page (Utila sweep guide).
- Filter out zero, below-threshold and frozen balances, plus the treasury and sponsor wallets (Utila).
- Initiate one transfer per wallet with the sponsor field set, so the deposit wallet needs no native gas (Utila).
- Track each one to CONFIRMED, ideally through TRANSACTION_STATE_UPDATED webhooks (Utila).
Two details save real pain. Pass a requestId on InitiateTransaction and Utila ignores a retried duplicate for at least 60 minutes, per the API reference. And webhooks are retried with back-off for up to 24 hours, then discarded, so keep a polling backstop (Utila).
Step 7: Decide what idle USDC does (Utila Yield)
On 19 October 2026, Utila added Presto's USDC Prime and Forte vaults to Utila Yield, with deposits and withdrawals governed by each client's existing transaction policies and approvals, per Utila's announcement. Prime lends against blue-chip collateral; Forte lends against selected real-world asset collateral, including tokenized private credit.
Presto's own Morpho post lists a 3% to 5% target APY and a 10% performance fee for Prime (WBTC collateral only), and 5% to 8% with a 15% performance fee for Forte, both on Ethereum (Morpho forum). Targets aren't guarantees, and withdrawals depend on vault liquidity.
If you allow yield at all, give it its own wallet and a Requires approval rule in both directions, so allocations never ride the payout automation. Stablecoin Insider's guide to stablecoin yield for corporate treasury covers the mandate questions to settle first.
Worked example: what Starter costs per dollar moved
The Starter fee is fixed, so its cost per dollar falls as volume rises. At $799 a month for 12 months, the annual platform fee is $9,588 (Utila pricing). Gas, screening vendors and off-ramp fees come on top.
| Outbound USDC per quarter | Outbound per year | Starter fee per year | Fee as share of outbound |
|---|---|---|---|
| $250,000 | $1M | $9,588 | 0.96% |
| $500,000 | $2M | $9,588 | 0.48% |
| $1.5M | $6M | $9,588 | 0.16% |
| $3M (Starter cap) | $12M | $9,588 | 0.08% |
Source for fee and cap: Utila pricing. Percentages are Stablecoin Insider's arithmetic.
The read: at $500,000 a quarter or less, the platform fee alone is about half a percent or more of what you move. Near the cap it's under a tenth of a percent, but a busy quarter can push you past $3M and into a custom plan quote (Utila).
The downside: where a Utila USDC treasury setup breaks
- One vault on Starter. Utila's playbook recommends separate vaults per legal entity, but Starter includes 1 vault, so multi-entity groups pay for more (Utila pricing, Utila playbook).
- Three seats is tight. A quorum of 2 plus one operator uses all 3 users; one approver on holiday can stall policy changes. Ask sales whether service accounts count as seats (Utila).
- Rules are append-only. A saved rule can't be edited, and a broad rule placed too high silently overrides narrower ones (Utila).
- Gas still needs care. Bitcoin, Cosmos and TON wallets need gas prefunded, and Tron USDT sponsorship needs a one-time approval with initial gas (Utila, Utila).
- Fail-safe can mean stuck. If your Co-Signer webhook is down, payouts wait in pending instead of failing loudly (Utila).
- Rate limits aren't contractual. Utila calls its defaults guidance that may change, and raises them commercially (Utila).
And it isn't a licence. Utila positions itself as software plus a Licensed Partner Network, so holding customer USDC still needs your own licence or a regulated partner, per the pay-ins guide.
Who a Utila USDC treasury fits, and who should look elsewhere
It fits payment-heavy teams: PSPs, payroll platforms and fintechs sweeping thousands of deposit wallets into one treasury, where gas sponsorship and Co-Signer automation remove most manual work. Utila says batch payouts run on 26 EVM networks plus Bitcoin, Tron, Solana and Stellar, among others (Utila).
Trading-first desks that live on exchange connectivity and off-exchange settlement may still prefer the incumbent; Stablecoin Insider's Fireblocks review covers that side, and the digital asset custody solutions roundup covers regulated custodians if you need a qualified custodian rather than self-run MPC wallets.
Still choosing a platform? Stablecoin Insider's head-to-head of Utila and Fireblocks compares architecture, payment tooling, pricing signals and migration paths.
FAQ
How do I set up a Utila USDC treasury?
Create the vault, set a quorum of 2, assign roles, split wallets by purpose, load the address book and write ordered transaction rules. Then automate sweeps with a Signer service account and the Co-Signer (Utila).
How much does Utila cost?
The Starter plan is $799 a month for 12 months, billed quarterly, with up to $3M of outbound volume per quarter, 1 vault and 3 users. Larger plans are quoted (Utila pricing).
What happens if a transaction matches no Utila policy rule?
It's rejected automatically. Rules run top to bottom and the first full match decides the outcome (Utila).
Can Utila sweep USDC without gas in every deposit wallet?
Yes, on chains that support sponsored transfers: leading EVM chains, Solana, Sui and Aptos. Bitcoin, Cosmos and TON wallets still need gas first (Utila).
What roles can a Utila service account have?
Only Viewer or Signer. Assigning the role, adding keys and changing IP restrictions all need admin quorum approval (Utila).
Is Utila a custodian?
Not in the regulated sense. Utila provides MPC wallet and governance software; licences for holding client funds come from you or a partner in Utila's Licensed Partner Network (Utila).
Can a Utila treasury earn yield on idle USDC?
Yes, through Utila Yield, which added Presto's USDC Prime and Forte vaults on 19 October 2026 under the client's own policies (Utila).
Forward look: build the policy before the integration. Write the rule stack on paper, run it on a testnet vault with a Viewer deposit monitor and a Signer sweep account, and only then raise the auto-approval cap. If you're still weighing platforms, start with Stablecoin Insider's Utila vs Fireblocks breakdown, then come back to this checklist.
This content is provided for informational and educational purposes only and does not constitute financial, investment, legal, or tax advice; it is not financial advice, and no material herein should be interpreted as a recommendation, endorsement, or solicitation to buy or sell any asset or token. Utila's plans, limits, supported chains and features are set by Utila and can change; check the live pricing page, Help Center and API reference before you configure a production vault. Nothing here is a solicitation to buy or sell.