ERC-4626 share tokens: fUSDC, fmUSDC, and fiUSDC explained
How Forge vault share tokens work on Base — ERC-4626 NAV, three bucket symbols, and what agents should display to users.
Last updated: May 26, 2026 · Published 2026-05-26
Forge Treasury smart contracts are unaudited. Yield is variable and not guaranteed. Read Risks & Disclosures before depositing USDC or integrating MCP tools.
Forge Treasury vaults are ERC-4626 tokenized vaults over USDC. When you deposit native USDC on Base, you receive a vault share token — not a claim on a single protocol position. Each vault bucket (Core, Middle, Infra) has its own `ForgeVault` contract and its own share symbol. Today fUSDC is live for the Core vault; fmUSDC and fiUSDC map to Middle and planned Infra buckets. Share price equals total vault assets divided by total supply — standard ERC-4626 accounting. This guide explains symbols, NAV mechanics, and how agents should report balances without conflating share tokens with underlying USDC.
USDC
Deposit asset
fUSDC / fmUSDC / fiUSDC
Vault shares
FORGE
Merkle emissions
ERC-4626 basics for agents
ERC-4626 standardises `deposit(assets, receiver)`, `withdraw(assets, receiver, owner)`, `convertToShares`, and `convertToAssets`. Forge extends the shell with adapter routing, 48-hour timelock governance, and a 15% performance fee on withdraw profits above high-water mark. Agents integrating via MCP receive calldata for these functions — signing happens on the agent EOA. Read MCP-native treasury for custody posture and Risks & Disclosures before production routing.
| Share symbol | Vault bucket | Status | Mainnet vault address |
|---|---|---|---|
| fUSDC | Core | Live | 0x2C9a3922b426005B979FDD1A8F43Eb61B309193B |
| fmUSDC | Middle | Timelock-pending adapters | 0x0cAB46658aFD0F01018117475e17CAE439E36C5D |
| fiUSDC | Infra | Planned | Not deployed |
fUSDC — Core vault shares
fUSDC is the ERC-4626 share token for the Core vault. Depositors approve Circle native USDC (`0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913`) and call `deposit`; the vault routes USDC across Spark Savings, Morpho Steakhouse Prime, and Aave V3 adapters per governance weights. Conservative strategy routing sends 100% of allocated USDC here — see Conservative strategy. NAV rises as adapters accrue yield; it is not a fixed 1:1 USDC peg if losses occur.
- Symbol in UI and docs: fUSDC (legacy naming — treat as Core share token).
- Verify live TVL and share price on Stats — subgraph may lag blocks.
- Do not confuse fUSDC balance with wallet USDC — redeem via `withdraw` or `redeem`.
- FORGE emissions are separate — FORGE emissions vs vault yield.
fmUSDC and fiUSDC — other buckets
fmUSDC is the Middle vault share token. The Middle contract is deployed on Base mainnet, but adapter wiring may be timelock-pending until owner execution — verify `adapterCount` on Stats before Balanced routing. fiUSDC is reserved for the planned Infra vault (Virtuals, Venice — counsel-gated). Until Infra deploys, Balanced strategy redirects the 10% Infra weight to Middle per product canon — Balanced strategy.
fUSDC
fmUSDC
fiUSDC
Share price vs APY (honest framing)
There is no fixed APY on fUSDC. Reported yield should derive from share price delta over time, not from MCP default constants. May 2026 research snapshots for Core legs cluster around ~3.5–4% at underlying adapters (Aave Base USDC, Morpho Steakhouse Prime) — variable daily. MCP `get_current_apy` and `simulate_deposit` return target / illustrative blends — label them accordingly in agent UX.
| Driver | Effect on NAV | Agent note |
|---|---|---|
| Adapter yield accrual | Share price up (typical) | Spark, Morpho, Aave rates float |
| Performance fee on withdraw | Net to user lower on exit | 15% on profits above HWM |
| Adapter loss / exploit | Share price down | Composability risk |
| USDC depeg | Accounting stress | Circle native USDC assumption |
Decimals, previews, and rounding
USDC uses 6 decimals; ERC-4626 share tokens inherit vault `decimals()` (typically 6 for Forge). Use `previewDeposit` / `previewWithdraw` before broadcasting large amounts — rounding can leave dust on partial redeems. Agents should display assets (USDC) and shares (fUSDC) in separate fields to prevent user confusion. For cross-vault portfolios, sum USDC-equivalent via `convertToAssets(shares)` per vault, not by adding raw share balances across symbols.
Reading balances on-chain and via MCP
- Wallet USDC: ERC-20 `balanceOf` on `0x833589…2913`.
- Vault shares: ERC-4626 `balanceOf` on the vault contract (shares are the vault token).
- USDC equivalent: `convertToAssets(shares)` or MCP `get_balance` with agent address.
- Protocol-level detail: Stats for TVL; Basescan for `totalAssets()` / `totalSupply()`.
Integrator checklist
- Never label fUSDC as "USDC in vault" without clarifying it is a share token.
- Chain ID 8453 and native USDC address in system prompts — prevent Sepolia/L1 mistakes.
- Re-read Risks & Disclosures: unaudited, ~$10 smoke TVL, variable yield.
- Deep-dive Middle vs Core shares: fmUSDC vs fUSDC.
- Deposit path: USDC approve and deposit workflow.
Frequently asked questions
Is fUSDC a stablecoin?
No. fUSDC is an ERC-4626 vault share representing a pro-rata claim on Core vault assets (mostly USDC-denominated positions across adapters). It is not issued by Circle and is not redeemable 1:1 at a central issuer — redemption is via the vault `withdraw` path subject to liquidity and fees.
Can I transfer fUSDC to another wallet?
Yes — shares are standard ERC-20 transferable unless future governance adds restrictions (none today). The recipient inherits vault exposure and must understand unaudited risk. Treasury policies often block share transfers without multisig approval.
Why three symbols instead of one?
Each vault bucket has separate risk books (stable Core vs LST/Middle vs Infra). Separate share tokens preserve clear NAV per book and enable strategy-level allocation without merging incompatible adapter sets into one ERC-4626 pool.
How do I verify share price before a large deposit?
Read `totalAssets()` and `totalSupply()` on Basescan, cross-check Stats, and run MCP `simulate_deposit` for planning UX — not a guarantee. After timelock events, re-verify adapter count.
Summary for agents
Forge share tokens (fUSDC, fmUSDC, fiUSDC) are ERC-4626 claims on separate vault buckets — not USDC itself. Core fUSDC is live on Base mainnet; Middle fmUSDC requires timelock verification; Infra fiUSDC is planned. Report variable underlying yield separately from FORGE Merkle emissions. Verify on Stats; read Risks before user funds.
External resources
Primary protocol documentation and data sources. Forge is not affiliated with these projects; links are for education only.
- EIP-4626 specification ↗Tokenized vault standard — deposit, withdraw, previews.
- Core vault — Basescan ↗Live ForgeVault — fUSDC shares.
- Middle vault — Basescan ↗Middle ForgeVault — fmUSDC shares.
- Circle USDC on Base ↗Native USDC asset deposited into vaults.
- OpenZeppelin ERC-4626 docs ↗Reference implementation patterns.
Related reading
- Conservative strategy: Core vault explainedThe Conservative agent strategy routes USDC to the Core vault — Spark Savings, Morpho Steakhouse Prime, and Aave V3 on Base mainnet.
- Balanced strategy: routing across Core and MiddleDefault 50/40/10 weights across Core, Middle, and Infra vaults — and how to deposit while Middle timelock is pending.
- fmUSDC vs fUSDC: separate vault sharesWhy Core fUSDC and Middle fmUSDC are different ERC-4626 tokens — addresses, risk, Balanced routing, and Middle timelock status.
- USDC approve and deposit on Base: agent workflowStep-by-step approve → simulate → deposit flow for AI agents using Forge MCP on Base mainnet — non-custodial calldata signing.
Share this article
Draft copy for social posts — review before publishing. URL: https://forgetreasury.com/learn/erc-4626-share-tokens-fusdc-explained
Open Graph / preview card
Forge ERC-4626 shares: fUSDC explained fUSDC, fmUSDC, fiUSDC — three vault buckets on Base. ERC-4626 NAV, variable yield, unaudited. Verify on /stats. https://forgetreasury.com/learn/erc-4626-share-tokens-fusdc-explained
Twitter / X
Forge vault shares are ERC-4626 — fUSDC (Core live), fmUSDC (Middle), fiUSDC (planned). Variable yield, unaudited contracts. Agent guide: https://forgetreasury.com/learn/erc-4626-share-tokens-fusdc-explained
AI treasury agents need clear share-token semantics. Forge separates Core, Middle, and Infra vaults with distinct ERC-4626 symbols. This explainer covers NAV, decimals, and honest APY framing for integrators on Base mainnet: https://forgetreasury.com/learn/erc-4626-share-tokens-fusdc-explained