Tokenized stocks compliance is moving from issuance to operations
Coinbase's B20 standard embeds sanctions and administrative controls in the token, while firms still control the trade.

Tokenized stocks with a compliance surface inside the token
Coinbase's tokenized equity rollout on Base started with four stocks in August and expanded to ten in early September. The tokens are offered to eligible investors outside the US, with each one backed 1:1 by an underlying share held in regulated custody.
The market is still early, but activity is already meaningful.
DEX Screener recorded at least roughly $81M in 24-hour decentralized exchange volume across the ten live tokens on 2 October, up from roughly $18M on 7 September, a US market holiday. Both figures are floors because the endpoint reports no more than thirty pairs per token.
Minting and redemption remain behind a primary-market identity gate. Only KYC-onboarded Authorized Participants can mint or redeem against the underlying shares. Secondary transfers do not rely on that same gate. Once the token exists, its own policy determines what can happen to it.
That distinction became more important on 30 September, when Base activated Cobalt. The upgrade gives B20 issuers a function to reassign a holder's balance and lets traders submit transactions that execute only when a stated onchain condition is met. The Defiant focused on the seize function, but both features expand what can be enforced at the protocol level.
These features give the token more control over how it can be held or transferred. They do not tell it who the firm is trading with, why the trade is happening or how that trade fits into the firm's wider obligations.
Compliance at the asset level is already built into the protocol. The firm's own counterparty, reconciliation and reporting controls still sit outside it.
What B20 actually enforces
B20 makes some compliance rules part of the token itself. It launched with Base's Beryl upgrade, while Cobalt, activated on 30 September, added new controls for policies, corporate actions and administrative transfers.
At the center is a shared Policy Registry. An issuer can create a policy, such as a blocklist or allowlist, and apply it across several tokens. If that policy changes, every token using it reads the updated version. This lets an issuer manage compliance rules across a group of assets from one place.
Cobalt also allows policies to be combined. For example, an issuer could require an address to appear on both a KYC allowlist and an investor eligibility list before it can receive a token.
The issuer still controls each policy. It decides which restrictions apply to sending, receiving, minting and, after Cobalt, seizure.
B20 also handles corporate actions through a multiplier that links each token to the underlying share. One token does not always equal one share. After a stock split or dividend, the multiplier can change while the token balance itself stays the same.
Cash dividends, for example, are reinvested into more of the underlying stock and reflected through a higher multiplier. As of 8 October, GOOGLc, METAc and NVDAc had all changed from their original 1.0 multiplier following dividends.
Cobalt introduced a way to schedule multiplier changes, giving holders advance notice before they take effect. The first corporate action after the upgrade, however, still used an immediate update.
Cobalt also changed how issuers can deal with balances that need to be removed from a holder.
Previously, burnBlocked could destroy the balance of a blocked address. Cobalt adds seizeWithMemo, which instead lets the issuer move those tokens to another address and leave a clearer onchain record of what happened.
Seizure has to be enabled separately. Coinbase configured a seizure policy on all ten live tokens on 5 October, so burnBlocked is no longer the only removal mechanism available to the issuer.
B20 also lets issuers publish announcements alongside these changes. Base's specification is clear, however, that the standard has no built-in timelock. An issuer can announce a change, but B20 itself does not require a waiting period before it takes effect.
Together, these features give issuers meaningful control over how their tokens can be held, transferred and adjusted after issuance.
But that control has a boundary. B20 governs the asset. It does not manage the firm's wider obligations around the trade, including counterparty checks, reconciliation and reporting.
The line between an asset's policy and a firm's obligations
From this point, the argument is Range's analysis, not a claim made by Coinbase.
An asset policy can determine whether an address can hold or move a token under rules chosen by the issuer. A firm trading that asset faces a broader set of decisions.
It still needs to know who the counterparty is, connect the trade to any fiat or stablecoin payment and keep a record of the controls that ran before settlement. Finance and compliance teams need that record to explain the transaction later.
Those responsibilities sit outside the token.
Range is the platform for companies operating across stablecoins and fiat. We start with what regulators expect, what auditors need to see and what has to be reported and when. Those requirements become operational controls on each transaction, applied before an onchain transaction executes and as alerts on fiat bank activity.
Range orchestrates the risk and compliance providers a company already uses rather than replacing them. Monitoring, reconciliation and reporting then run from one record, with the same counterparty matched across wallet and bank details.
There is another issue with shared token policies: one issuer update can affect several assets at once.
Base does not control those policies. Each issuer does. A firm holding the assets therefore needs to detect policy changes, understand which positions are affected and decide what action to take.
Why Base added seizure and conditional execution
Base added seizure for cases such as court orders, lost keys and holders who are no longer eligible. Its issuer guide and stablecoin guide make clear that these are issuer-controlled actions.
Until Cobalt, B20 could only remove a blocked balance through burnBlocked. Cobalt adds seizeWithMemo, which lets the issuer move the balance to another address and leave a clearer onchain record.
That matters because tokenized securities still sit under the same legal framework as traditional securities. SEC staff said in January 2026 that putting a security onchain does not change how securities laws apply.
Cobalt also adds conditional transactions. A trader can submit a transaction with conditions, and Base only includes it if those conditions are met.
For firms, the operational point is simple: the issuer may have direct control over a holder's balance, while the reason a conditional trade executed may not appear onchain.
That means firms still need to understand who holds those permissions and keep the offchain records needed to explain what happened later.
Three situations a finance team hits
Consider a firm that receives a tokenized equity through a secondary-market trade. At the time of settlement, the sending wallet passes the token's transfer policy.
Two days later, new information links that wallet to a counterparty the firm's own risk policy would have rejected.
The token's control did not fail. It answered whether the address was allowed to transfer the asset under the issuer's rules. The firm still had to decide whether it was willing to trade with the counterparty behind that address.
That is why the firm needs to keep the evidence available at the time of the trade: which address was screened, which policy was applied, what result came back and what decision was made before settlement. If new information appears later, the team can then show whether the control ran correctly with the information available at the time.
A second issue appears when a balance changes without a trade.
On the Coinbase tokens, an issuer could remove a blocked balance using burnBlocked. The blockchain records a transfer to the zero address and a reduction in supply, but there is no trade order or cash movement behind it.
A reconciliation system that assumes every position change starts with an order will therefore see an unexplained variance. Finance has to identify the issuer action and connect it to the accounting record.
Seizure creates a clearer onchain event, but the firm still has to interpret it correctly. A system looking only at ordinary Transfer events may still treat it like a normal movement.
Third issue: corporate actions create a new reconciliation problem.
When the multiplier changes, the number of tokens in the wallet stays the same, but the number of underlying shares they represent changes. A system can therefore reconcile the token balance correctly and still report the wrong economic position.
Finance needs both values: the raw token balance and the multiplier in force at the reporting cutoff.
Pricing can also diverge from trading activity. Base's specification says minting and redemption pause during corporate actions while the token itself can continue trading. Price feeds can also hold the last market close outside market hours.
That means the token may still trade while the reference price is unchanged, so firms need to understand which price and multiplier were used when valuing the position.
The same distinction applies to regulatory obligations.
B20 can tell whether an address is allowed to move the token. It does not handle the information a regulated firm may need to collect about the sender and recipient, or keep the evidence that those checks were completed.
So a transfer can pass the token's rules and still leave the firm with compliance work to do.
What good operational compliance looks like
Much of this gap can be addressed with operating practices that are independent of any particular vendor.
- Screen the counterparty as well as the asset. An issuer policy determines whether a transfer is allowed under the issuer's rules. The firm needs its own decision about the entity it will face before settlement. Preserve the screening input, timestamp, result, policy version and decision. When the same entity appears through another wallet or payment rail, connect it to the same counterparty record rather than assuming the new address inherits an earlier approval. Define when rescreening happens, including new attribution, changed risk signals and issuer-policy updates.
- Keep one record across the asset, stablecoin and fiat legs. One economic transaction can create entries onchain, at a bank and in an accounting system. Match those entries to the same counterparty and business purpose as they happen. Use stable identifiers for the trade and counterparty across systems, and keep each leg's amount, asset, timestamp, status and source. If one leg settles, reverses or changes without a matching entry elsewhere, the break should appear then rather than at month-end.
- Treat administrative changes as reconcilable events. Preserve the transaction call, emitted events, applicable policy state, multiplier and accompanying announcement. Keep both raw token units and share-equivalent positions. Identify a seizure through the Seized event rather than treating its Transfer as an ordinary movement, preserve the memo and record a blocked-funds burn as an issuer action rather than a redemption or disposal. Where an announcement exists, store its ID, description and URI with the position change.
- Keep the trigger with the execution. If the firm or an agent acting for it submits a conditioned transaction, retain the conditions from the submitter's logs alongside the transaction hash. Those conditions will not be available from the chain later.
Teams should decide in advance who owns each type of exception, who gets involved when something goes wrong and what evidence needs to be kept.
Compliance owns counterparty decisions. Finance owns position and cash reconciliation. Engineering owns event capture and control execution.
A good test is to pick one exception and follow it end to end. Can the team show who reviewed it, which policy applied, what changed in the ledger and what was reported afterwards?
If answering those questions means piecing together records from several systems weeks later, the process is not working well enough.
Where the control sits and what it trusts
A blocklist is one way to enforce transaction policy. The issuer decides which addresses are on the list, and the token checks that list when a transfer happens. That works well for rules the issuer controls. But the token only knows whether an address matches the policy it has been given. It does not know whether that policy reflects a firm's own counterparty rules or the latest risk information available elsewhere.
With B20, that control sits inside the token and the firm using it can't change it. Other models put the check closer to the transaction.
Range's Risk API runs offchain, but an integrator can still verify the result inside its own program before allowing a transaction to complete.
In the Onchain Risk Verifier pattern, a Switchboard oracle fetches and signs the result, which the program then verifies onchain.
In the SigVerify pattern, the integrator's own backend performs the screening and signs the result instead.
Both approaches can also reject results that are too old, so the decision is based on recent risk information rather than a static list.
Screening can also happen before a transaction is submitted. Cloak, a private-payments product on Solana, uses Range to screen transactions before its privacy layer applies, as described in the Cloak case study. Range provides the screening result, while Cloak decides whether to broadcast the transaction.
These controls sit at different points in the transaction flow.
B20 decides whether the token operation complies with the issuer's policy. A program-level check can stop a transaction based on a separate risk decision. A pre-broadcast screen can stop it before it reaches the chain.
The key difference is who sets the rule, where it is enforced, and what information the decision uses.
The operational work sits above the token
B20 gives issuers real control over token policies, corporate actions and administrative balance changes. Cobalt extends those controls, and several are already being used in production.
As of 8 October, three Coinbase tokens had changed their multipliers following cash dividends. The first corporate action after Cobalt still used an immediate update, and on 5 October, Coinbase configured the new seizure policy on all ten live tokens.
So the infrastructure is no longer theoretical.
But its limits are also clearer.
B20 can control how the asset is held or moved. It cannot identify the counterparty behind a wallet, connect an onchain trade to a fiat payment or preserve the firm's own evidence of why a transaction was approved.
Those responsibilities still sit with the firm.
Finance teams may need to explain a position that changed without an order, a token that kept trading while its reference price was unchanged or a balance movement caused by an issuer action rather than a trade.
As tokenized securities become more common, those will become ordinary reconciliation and compliance questions.
If your firm handles tokenized assets and cannot answer them from one record, get in touch.
Protect your time and money
Try every capability with your real data in a sandbox before you commit.


