Tokenized stocks,
by the basket.
Invest stablecoins in onchain funds of tokenized equities on Base. Solvers source every constituent; you sign one transaction.
Multi-asset Open Solver & Agent Index Coordination
MOSAIC coordinates open solvers and agents to create, redeem and rebalance portfolios of tokenized equities on Base — one atomic stablecoin transaction, competitive execution.
How it works
Define the basket
A creator names the tokenized stocks and their target weights in the AssetRegistry. PortfolioVault custodies the raw units, while CompositionLens publishes the canonical, machine-readable composition for solvers and UIs.
No hidden admin, no offchain holdings list. Weights must sum to 100% and clear policy checks before the fund deploys.
Open auction
Nobody has to buy the stocks one by one. Every investment fans out to registered solvers and agents, each returning a signed EIP-712 quote for the whole basket — payment, shares, bundleHash, epoch, deadline — ranked strictly by your net outcome.
No fake quotes. If inventory, eligibility or confidence fails, the solver returns an explicit no-quote reason.
Agent coordination
Agents and managers propose weight changes, but never custody the stocks. Every proposal is checked against PortfolioPolicyGuard — max weight, turnover, NAV-loss, cooldown and Pyth equity-feed freshness — and fails closed if stale.
Equity feeds go stale when the market closes. Creation and redemption can continue; rebalancing waits.
Atomic settlement
CreationRedemptionSettlement verifies every quote — taker, fund, epoch, deadline, nonce, eligibility — then atomically swaps the settlement stablecoin, the constituent stock tokens and your shares. Checked with balance-deltas, never trusting return values.
If any check fails, the entire transaction reverts. No partial fills, no stuck Processing state.
Built on
mUSDC
Mosaic test dollar · 6 decimals
Every basket on this deployment is bought and redeemed in mUSDC. It is the unit you pay in and the unit you are paid out in — and it is worth nothing.
Get mUSDC from the faucet- Why not Circle USDC?
- Circle issues real USDC on Base Sepolia, but its faucet is captcha-gated and the deployer holds no minter role, so nobody could reliably get any to try the product. mUSDC has an open faucet instead: 10,000 per address per hour, no sign-up.
- What is it worth?
- Nothing. It is not backed, not redeemable, and not transferable off Base Sepolia. It exists so the settlement path can be exercised end to end with a real ERC-20 rather than a mock.
- What changes on mainnet?
- One address. The settlement currency is read from the deployment manifest, never hardcoded in the app, and Circle's Base Sepolia USDC address is already recorded alongside it. Nothing in the settlement contract knows or cares which token it is.
Open where it matters.
The protocol can be complex. What it promises you cannot be. Every guarantee below is enforced onchain when your basket settles, not asserted by a backend.
One transaction, whole basket
Stablecoin in, fund shares out. Taker, fund, epoch, deadline, nonce and eligibility are all checked before the swap, and any failure reverts the lot. You never end up holding half a portfolio.
Competitive execution
You never have to source the stocks yourself. Each order fans out to every registered solver, and signed quotes for delivering the basket are ranked strictly by your net outcome.
Self-custodial by construction
A share is a pro-rata claim on the tokenized stocks held in the vault. Managers and agents can propose rebalances, but they never take custody of them.
Holdings you can read
CompositionLens publishes the basket onchain — every stock token, its raw units, its target weight — so a solver, an interface and you are all reading the same truth.
Issuer policies are respected
Tokenized equities can restrict who sends, receives and executes. Those rules are enforced at settlement, not assumed away — the protocol adapts to the asset.
Prices that admit what they are
Pyth publishes every reference price, and each one carries a verdict rather than just a number — fresh, stale, or unusable. Creation and redemption never read a price at all, so a stale feed cannot dilute a share or stop you trading.
ComposableEquityFunds
Every basket, one transaction.
Pick a portfolio of tokenized stocks, pay in stablecoins, and let registered solvers compete for the fill. Settlement is atomic on Base, or it does not happen at all.
Launch AppLive on Base Sepolia. Settlement is in mUSDC, a test dollar with an open faucet — no real value, and not Circle USDC.