Tokenized stocks on Base: what they are, who issues them, and how to buy one
Thirteen US companies — Apple, NVIDIA, Tesla, Microsoft, Alphabet, Meta, Amazon and six more — trade as tokens on Base. You can hold one in an ordinary wallet, buy it on a decentralised exchange at three in the morning, and swap it against USDC in a single transaction. You can also have it frozen by its issuer, and — if you are frozen — burned.
Both halves are true, and almost nobody writes down the second one. This page does, and tells you how to check any of it yourself.
Live prices for all thirteen are on the stocks board; every company has its own page there with a chart, the pools that trade it and a buy button. Every number and address below was read from Base on 11 September 2026.
In one paragraph
A tokenized stock is a token that tracks one real share and is backed by one real share, held by a company set up for that purpose. Buying one on a decentralised exchange needs no permission and no account. It is not the share itself: you have no vote, the issuer can block your wallet, and what you hold is a claim on that issuer rather than an entry in a shareholder register.
Who issues them, and what stands behind them
Coinbase Onchain SPV Ltd., a Coinbase-controlled company incorporated in the Abu Dhabi Global Market. "SPV" is the point: a separate legal entity whose only job is to hold the shares backing the tokens, so those shares are not mixed with the exchange's own assets.
- One token, one share. Every token in circulation is backed by a share of the underlying company, bought and held for the issuer — though the ratio can move, and the multiplier section below says when and why.
- A prospectus per company, each with a contract address. Verify the address before you buy. A token calling itself
AAPLcthat is not at the published address was not issued by Coinbase — and B20 lets an issuer rename a token with one call, so the address is the identity and the ticker is not. Ours are on every company page and on the board. - A registry on chain,
0x3f3E8cf41cdd3b1D118c16471aB0113DfDDd5CaD, where the official list lives.
What the issuer does not give you: a vote at the company's meeting, a direct claim on the company, or a dividend paid in cash. You are a creditor of the SPV, not a shareholder of Apple.
On what terms they are issued, and who may buy
The two ends of this market work very differently, and the difference is the whole design.
Creating and redeeming tokens is permissioned. New tokens are minted, and existing ones redeemed for the underlying shares, only between the issuer and its Authorised Participants — institutions that pass KYC and hold an agreement with it. You cannot mint one, and you cannot hand a token back and ask for an Apple share.
Buying and selling on a decentralised exchange is not permissioned. No account, no KYC, no allowlist: if a pool holds the token, anyone with a wallet can trade it.
The offering excludes some people. These are issued under an exemption that puts them outside the United States; the issuer states they are available only to persons in eligible jurisdictions, and US persons are not among them. Nothing on chain asks where you live — what enforces it is the blocklist described below. Whether you are eligible is a question about you, not about the token. MPRO Lab does not issue these, does not distribute them and does not advise on them; it routes a swap between pools that already exist.
What you are actually holding
A token called AAPLc at 0xb200000000000000000000C2e324d24d7eEcd1fb. It has eight decimals, it answers balanceOf and transfer like any ERC-20, and your wallet shows it without being taught anything.
It is not, however, a smart contract. Ask Base for the code at that address and you get one byte. The token is a B20: a token standard built into the Base node itself, written in Rust, created by calling a factory precompile at 0xB20f000000000000000000000000000000000000 rather than by deploying anything. That is why every one of these addresses begins 0xb200… — the address encodes what kind of token it is.
Three consequences worth knowing:
- Transfers are cheaper, because there is no EVM bytecode to execute.
- There is nothing to audit at the token's address, and nothing to read either — a block explorer has no source code to show you. What governs the token is the standard plus a handful of settings, and those settings are the subject of the rest of this page.
- The symbol can be changed by the issuer with one call. Identify these tokens by address, never by ticker.
One token is not permanently one share
Each of these tokens carries a multiplier(). Today it reads exactly 1.0 on every one of them, so one token is one share. It does not have to stay there.
When the underlying company pays a cash dividend, the issuer converts it into shares and raises the multiplier instead of paying you anything. A stock split moves it too. Your balance does not change; what each unit of it represents does.
So a page that assumes one token equals one share is a page that will misprice these the first time Apple pays a dividend. The company pages read the multiplier live and show it.
Two prices, and the gap between them
Every one of these tokens has a Chainlink price feed on Base for its underlying share — for Apple, 0x787f13dEa48Db0897CbCDD985de77809D837F988, eight decimals. The feed runs 24/5, holds the last close over weekends and holidays, and freezes entirely during a corporate action.
The pool has a price too, and it is a different number, because it is set by whoever last traded rather than by the market in New York.
Chainlink AAPL $326.083 (published 19:56 UTC)
AAPLc/USDC pool $326.10
Premium +0.006 %
That gap is the number to look at before trading. It is small when the pool is deep and arbitrage is working; it widens at the weekend, when the underlying market is shut and nothing anchors the pool to anything. Every row of our board shows both prices and the gap, which is not something a DEX screener will tell you, because a screener does not know these are shares.
A stale feed is usually not a fault. Saturday is not an outage. Past the feeds' own 24-hour heartbeat it is worth caring about; before that, a quiet feed means a quiet market.
What "the issuer can freeze a wallet" means, exactly
This is the part that makes tokenized equities different from every other token you hold, and it is not a rumour — it is four settings you can read.
A B20 token stores one policy id per scope, and asks Base's Policy Registry precompile (0x8453000000000000000000000000000000000002) on every gated operation: isAuthorized(policyId, yourAddress).
| Scope | What it decides |
|---|---|
TRANSFER_SENDER_POLICY | whether you may send — so, whether you may sell |
TRANSFER_RECEIVER_POLICY | whether anything may be delivered to you |
TRANSFER_EXECUTOR_POLICY | whether a contract may move the token for you |
MINT_RECEIVER_POLICY | whether you may be issued new tokens |
On AAPLc today, all four point at policy 5, administered by 0xec0f05c1…. And here is the fact that decides how worried to be:
Policy 5 authorises an unrelated mainnet address exactly as readily as it authorises the AAPLc pool. It is a blocklist, not an allowlist — you are permitted until you are named.
That is what "permissionless to hold and trade on the secondary market" means in practice. Minting and redeeming are a different matter entirely and involve the issuer's own KYC.
Alongside the lists, the standard gives the issuer three more powers:
burnBlocked— burn the balance of a blocked wallet without its cooperation. Freeze and seize, in one call.- Pause transfers, minting or burning independently. Pausing transfers stops every pool at the same instant; nobody trades and nobody exits.
- Rename the token.
The issuer says it uses the lists for sanctions, court orders and wallets in jurisdictions the offering excludes. We have no way to verify that beyond what the chain shows, which is precisely why the chain is what we show.
approve() is deliberately not policy-gated. An approval that succeeds proves nothing about whether the transfer will succeed. If you are writing a bot against these tokens, that sentence is the one that will cost you a transaction.
Checking your own wallet
Open any company page on /stocks with your wallet connected: the policy panel reads isAuthorized for your address against each scope and says plainly whether you pass. Nothing is sent anywhere — it is four eth_calls.
Where they actually trade, and why that was worth finding out
Most of the liquidity is in one place, and it is not the obvious one.
On 11 September 2026, AAPLc against USDC:
| Pool | What it held |
|---|---|
| Aerodrome Slipstream, factory 3 | 1 057 610 USDC + 1 954 AAPLc ≈ $1.7 M |
| Uniswap v3, 1 % tier | 952 USDC |
| Aerodrome v2 | half a cent |
All three are real pools. All three will quote you a price. Two of them will give you a terrible one.
Aerodrome runs several Slipstream deployments, and the equities were seeded on the third. Anything that only looks at the first — which included the MPRO Lab swap until this was found — sees the thousand-dollar Uniswap pool and reports it as the best route available, because it is the best route it can see.
Our aggregator now discovers all of them, quotes every pool it finds, and shows you the ranking it used. The board sorts venues by depth rather than by the price they quote, for the same reason: an empty pool prints whatever price its last trade left behind, and that is exactly when its price is least worth believing.
How to buy one here
You need a wallet on Base and some USDC in it — that is the currency every one of these pools quotes in — plus a little ETH for gas.
- Open the stocks board and press Buy on the company you want, or open its page and use the button beside the price. Either opens the swap with USDC in and the stock out, already chosen.
- Type an amount in USDC. The screen prices every pool on Base and shows the routes it found, best first.
- Check the three numbers below, then approve USDC and confirm. The trade is signed by your wallet and settled by the venue; MPRO Lab never holds it.
Selling is the same screen with the two sides swapped — press the circle arrow between the fields.
It is the same router and the same 0.25 % platform fee as any other token on Base (Trading tokens on Base).
Three things worth doing before you press it:
- Look at the premium. Every company page shows the pool price beside the Chainlink price for the same share. If the pool is 2 % above the oracle you are paying two per cent for the convenience of trading at that moment.
- Look at the price impact the swap shows. These pools are deep for a token and thin for an equity; a large order moves them.
- Remember the weekend. With the underlying market shut, the pool is the only price there is, and it drifts.
If a bot is holding one
The Terminal's bots trade through the same router, so the mechanics are identical — but the issuer's powers change what a strategy should assume:
- Blocked as a sender: the position cannot be closed and the token cannot be moved. It can also be burned.
- Blocked as a receiver: a liquidity position pays out both tokens at once, so the USDC side may be stuck with the stock side. We have not tested what a position manager does in that case, and we are not going to claim we know.
- Transfers paused: every venue stops at once. A strategy with a stop-loss should treat this as unfillable rather than retrying into it.
- A multiplier change alters what a balance is worth without changing the balance. Anything reconciling positions against share counts must read it.
The risk is not evenly spread: it is concentrated on wallets an issuer has reason to name. For most holders it is remote. It is never zero, and it is never in your hands — which is the honest difference between a tokenized share and the share itself.
Reading it yourself
Everything above is four calls against a public Base node:
token.policyId(token.TRANSFER_SENDER_POLICY()) → 5
registry.isAuthorized(5, <your address>) → true / false
token.isPaused(0) → transfers paused?
token.multiplier() → 1e18 = one token, one share
No API key, no account, no permission. That is the part of this that is genuinely better than the old way.