Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ npx skills add base/base-skills
|Specifications/Specifications/Base Protocol/Execution:specifications/base-protocol/execution/l2-execution-engine,specifications/base-protocol/execution/precompiles,specifications/base-protocol/execution/predeploys,specifications/base-protocol/execution/preinstalls
|Specifications/Specifications/Base Protocol/Bridging:specifications/base-protocol/bridging/standard-bridges,specifications/base-protocol/bridging/deposits,specifications/base-protocol/bridging/withdrawals,specifications/base-protocol/bridging/cross-domain-messengers,specifications/base-protocol/bridging/base-solana-bridge
|Specifications/Specifications/Base Protocol/Proofs:specifications/base-protocol/proofs/overview,specifications/base-protocol/proofs/challenger,specifications/base-protocol/proofs/proposer,specifications/base-protocol/proofs/registrar,specifications/base-protocol/proofs/tee-prover,specifications/base-protocol/proofs/zk-prover,specifications/base-protocol/proofs/proof-contracts
|Specifications/Specifications/B20:specifications/b20/index,specifications/b20/specification-overview,specifications/b20/architecture,specifications/b20/changelog
|Specifications/Specifications/B20:specifications/b20/index,specifications/b20/architecture,specifications/b20/changelog
|Specifications/Specifications/B20/Concepts:specifications/b20/concepts/token-types,specifications/b20/concepts/policies,specifications/b20/concepts/roles-and-pause,specifications/b20/concepts/multipliers
|Specifications/Specifications/B20/Reference:specifications/b20/reference/interfaces,specifications/b20/reference/constants,specifications/b20/reference/errors,specifications/b20/reference/events
|Specifications/Specifications/Transactions:specifications/transactions/transaction-ordering,specifications/transactions/transaction-finality,specifications/transactions/network-fees,specifications/transactions/throughput-and-limits,specifications/transactions/troubleshooting-transactions
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -187,7 +187,7 @@ To fetch these addresses programmatically, use the [List Tokenized Stocks](/sdks
## Additional Resources

- [Tokenized Stocks API](/sdks/tokenized-stocks/overview)
- [B20 Standard](/specifications/b20/specification-overview)
- [B20 Standard](/specifications/b20)
- [Base Standard Library](https://github.com/base/base-std/tree/main)

## Disclaimer
Expand Down
2 changes: 1 addition & 1 deletion docs/build-on-base/issue-rwa/create-an-asset-token.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ keywords: ["create asset token Base", "B20 Asset token", "tokenized asset Base",
import { AssetDemo } from "/snippets/AssetDemo.jsx"
import RwaDisclaimer from "/snippets/RwaDisclaimer.mdx"

Use the [B20 Asset variant](/specifications/b20/specification-overview#asset) to represent a class of tokenized shares with configurable precision, issuer roles, supply controls, and metadata. This example creates Example Corp Class A (`EXM`) with six decimals.
Use the [B20 Asset variant](/specifications/b20/concepts/token-types#4-asset) to represent a class of tokenized shares with configurable precision, issuer roles, supply controls, and metadata. This example creates Example Corp Class A (`EXM`) with six decimals.

<RwaDisclaimer />

Expand Down
2 changes: 1 addition & 1 deletion docs/build-on-base/issue-rwa/restrict-eligible-holders.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ keywords: ["asset token allowlist", "B20 Policy Registry", "eligible holders", "
import { AssetDemo } from "/snippets/AssetDemo.jsx"
import RwaDisclaimer from "/snippets/RwaDisclaimer.mdx"

Create an allowlist in the [Policy Registry](/specifications/b20/specification-overview#policy-registry), then apply it when shares are issued, sent, or received. Accounts remain ineligible until the policy admin adds them.
Create an allowlist in the [Policy Registry](/specifications/b20#integrating-compliance-checks), then apply it when shares are issued, sent, or received. Accounts remain ineligible until the policy admin adds them.

<RwaDisclaimer />

Expand Down
4 changes: 2 additions & 2 deletions docs/build-on-base/issue-stablecoins/block-an-account.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ The demo uses a local browser-generated account to submit real transactions on *
</Tip>

<Note>
New to B20? See the [B20 Token Standard](/specifications/b20/specification-overview) for the concepts and a full launch walkthrough. These samples target `base-std@be6d045`, `viem@2.55.11`, and Base Foundry `v1.1.1`.
New to B20? See the [B20 Token Standard](/specifications/b20) for the concepts and a full launch walkthrough. These samples target `base-std@be6d045`, `viem@2.55.11`, and Base Foundry `v1.1.1`.
</Note>

## Block and Verify an Account
Expand Down Expand Up @@ -64,7 +64,7 @@ base-cast call "$POLICY_REGISTRY" "isAuthorized(uint64,address)(bool)" \
```
</CodeGroup>

See the [B20 token standard](/specifications/b20/specification-overview) for the complete interface, roles, and policies.
See the [B20 token standard](/specifications/b20) for the complete interface, roles, and policies.

<Check>
`isAuthorized(policyId, account)` returns `false` while the account is blocked.
Expand Down
6 changes: 3 additions & 3 deletions docs/build-on-base/issue-stablecoins/burn-supply.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ The demo uses a local browser-generated account to submit real transactions on *
</Tip>

<Note>
New to B20? See the [B20 Token Standard](/specifications/b20/specification-overview) for the concepts and a full launch walkthrough. These samples target `base-std@be6d045`, `viem@2.55.11`, and Base Foundry `v1.1.1`.
New to B20? See the [B20 Token Standard](/specifications/b20) for the concepts and a full launch walkthrough. These samples target `base-std@be6d045`, `viem@2.55.11`, and Base Foundry `v1.1.1`.
</Note>

## Burn and Verify Supply
Expand Down Expand Up @@ -54,7 +54,7 @@ base-cast call "$TOKEN_ADDRESS" "totalSupply()(uint256)" --rpc-url "$RPC_URL"
```
</CodeGroup>

See the [B20 token standard](/specifications/b20/specification-overview) for the complete interface, roles, and policies.
See the [B20 token standard](/specifications/b20) for the complete interface, roles, and policies.

<Check>
`totalSupply()` decreases by exactly 400 MUSD.
Expand All @@ -70,7 +70,7 @@ See the [B20 token standard](/specifications/b20/specification-overview) for the
<Card title="Mint Supply" icon="plus" href="/build-on-base/issue-stablecoins/mint-supply">
Increase circulating supply.
</Card>
<Card title="Burn (B20 Standard)" icon="book" href="/specifications/b20/specification-overview#burn">
<Card title="Burn (B20 Standard)" icon="book" href="/specifications/b20/reference/interfaces/ib20/burn">
The burn operation in the B20 standard.
</Card>
</CardGroup>
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ description: "Create a fiat-backed stablecoin on Base with one B20 factory call.

import { StablecoinDemo } from "/snippets/StablecoinDemo.jsx"

Create a fiat-backed token with one call to the [B20 Factory](/specifications/b20/specification-overview#factory), using the `STABLECOIN` variant. Decimals are fixed at `6`, and the token carries an immutable, self-declared currency code such as `USD`. The type is sealed into the token address at creation and cannot change.
Create a fiat-backed token with one call to the [B20 Factory](/specifications/b20#creating-a-b20-asset), using the `STABLECOIN` variant. Decimals are fixed at `6`, and the token carries an immutable, self-declared currency code such as `USD`. The type is sealed into the token address at creation and cannot change.

## Demo

Expand All @@ -17,7 +17,7 @@ The demo uses a local browser-generated account to submit real transactions on *
</Tip>

<Note>
New to B20? See the [B20 Token Standard](/specifications/b20/specification-overview) for the concepts and a full launch walkthrough. These samples target `base-std@be6d045`, `viem@2.55.11`, and Base Foundry `v1.1.1`.
New to B20? See the [B20 Token Standard](/specifications/b20) for the concepts and a full launch walkthrough. These samples target `base-std@be6d045`, `viem@2.55.11`, and Base Foundry `v1.1.1`.
</Note>

## How the Stablecoin Variant Works
Expand Down Expand Up @@ -97,7 +97,7 @@ export async function createStablecoin() {

The `params` blob is ABI-encoded with a leading `version` byte (currently `1`) as `B20StablecoinCreateParams`: `version`, `name`, `symbol`, `initialAdmin`, and `currency`. Optional `initCalls` run on the new token in the same transaction; the factory drops access after they complete.

See the [B20 token standard](/specifications/b20/specification-overview) for the complete interface, roles, and policies.
See the [B20 token standard](/specifications/b20) for the complete interface, roles, and policies.

<Check>
The factory emits `B20Created`, and the returned token address is ready for minting.
Expand Down
6 changes: 3 additions & 3 deletions docs/build-on-base/issue-stablecoins/mint-supply.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ The demo uses a local browser-generated account to submit real transactions on *
</Tip>

<Note>
New to B20? See the [B20 Token Standard](/specifications/b20/specification-overview) for the concepts and a full launch walkthrough. These samples target `base-std@be6d045`, `viem@2.55.11`, and Base Foundry `v1.1.1`.
New to B20? See the [B20 Token Standard](/specifications/b20) for the concepts and a full launch walkthrough. These samples target `base-std@be6d045`, `viem@2.55.11`, and Base Foundry `v1.1.1`.
</Note>

## Mint and Verify Supply
Expand Down Expand Up @@ -53,7 +53,7 @@ base-cast call "$TOKEN_ADDRESS" "balanceOf(address)(uint256)" "$HOLDER" --rpc-ur
```
</CodeGroup>

See the [B20 token standard](/specifications/b20/specification-overview) for the complete interface, roles, and policies.
See the [B20 token standard](/specifications/b20) for the complete interface, roles, and policies.

<Check>
The holder balance increases by `1,000,000,000` base units, or 1,000 MUSD.
Expand All @@ -69,7 +69,7 @@ The caller needs `MINT_ROLE`, the recipient must pass `MINT_RECEIVER_POLICY`, an
<Card title="Burn Supply" icon="fire" href="/build-on-base/issue-stablecoins/burn-supply">
Remove tokens from supply.
</Card>
<Card title="Supply Cap (B20 Standard)" icon="book" href="/specifications/b20/specification-overview#supply-cap">
<Card title="Supply Cap (B20 Standard)" icon="book" href="/specifications/b20/reference/interfaces/ib20/supply-cap">
Supply cap in the B20 standard.
</Card>
</CardGroup>
6 changes: 3 additions & 3 deletions docs/build-on-base/issue-stablecoins/pause-activity.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ The demo uses a local browser-generated account to submit real transactions on *
</Tip>

<Note>
New to B20? See the [B20 Token Standard](/specifications/b20/specification-overview) for the concepts and a full launch walkthrough. These samples target `base-std@be6d045`, `viem@2.55.11`, and Base Foundry `v1.1.1`.
New to B20? See the [B20 Token Standard](/specifications/b20) for the concepts and a full launch walkthrough. These samples target `base-std@be6d045`, `viem@2.55.11`, and Base Foundry `v1.1.1`.
</Note>

## Pause and Resume Transfers
Expand Down Expand Up @@ -53,7 +53,7 @@ base-cast send "$TOKEN_ADDRESS" "unpause(uint8[])" "[0]" \
```
</CodeGroup>

See the [B20 token standard](/specifications/b20/specification-overview) for the complete interface, roles, and policies.
See the [B20 token standard](/specifications/b20) for the complete interface, roles, and policies.

<Check>
`isPaused(0)` returns `true` after pausing and `false` after resuming.
Expand All @@ -80,7 +80,7 @@ When a paused feature blocks a call, the transaction reverts `ContractPaused(fea
<Card title="Block an Account" icon="user-lock" href="/build-on-base/issue-stablecoins/block-an-account">
Deny a specific address.
</Card>
<Card title="Pause (B20 Standard)" icon="book" href="/specifications/b20/specification-overview#pause">
<Card title="Pause (B20 Standard)" icon="book" href="/specifications/b20#pause-vectors">
Pause controls in the B20 standard.
</Card>
</CardGroup>
4 changes: 2 additions & 2 deletions docs/build-on-base/issue-stablecoins/reconcile-with-memos.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ The demo uses a local browser-generated account to submit real transactions on *
</Tip>

<Note>
New to B20? See the [B20 Token Standard](/specifications/b20/specification-overview) for the concepts and a full launch walkthrough. These samples target `base-std@be6d045`, `viem@2.55.11`, and Base Foundry `v1.1.1`.
New to B20? See the [B20 Token Standard](/specifications/b20) for the concepts and a full launch walkthrough. These samples target `base-std@be6d045`, `viem@2.55.11`, and Base Foundry `v1.1.1`.
</Note>

## Attach and Read an Invoice Memo
Expand Down Expand Up @@ -52,7 +52,7 @@ base-cast receipt "$TX" --rpc-url "$RPC_URL"
```
</CodeGroup>

See the [B20 token standard](/specifications/b20/specification-overview) for the complete interface, roles, and policies.
See the [B20 token standard](/specifications/b20) for the complete interface, roles, and policies.

<Check>
The receipt contains `Transfer` followed immediately by `Memo`, with `invoice-8842` encoded as `bytes32`.
Expand Down
4 changes: 2 additions & 2 deletions docs/build-on-base/issue-stablecoins/recover-funds.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ The demo uses a local browser-generated account to submit real transactions on *
</Tip>

<Note>
New to B20? See the [B20 Token Standard](/specifications/b20/specification-overview) for the concepts and a full launch walkthrough. These samples target `base-std@be6d045`, `viem@2.55.11`, and Base Foundry `v1.1.1`.
New to B20? See the [B20 Token Standard](/specifications/b20) for the concepts and a full launch walkthrough. These samples target `base-std@be6d045`, `viem@2.55.11`, and Base Foundry `v1.1.1`.
</Note>

## Burn and Reissue the Blocked Balance
Expand Down Expand Up @@ -56,7 +56,7 @@ base-cast call "$TOKEN_ADDRESS" "balanceOf(address)(uint256)" "$REPLACEMENT" --r
```
</CodeGroup>

See the [B20 token standard](/specifications/b20/specification-overview) for the complete interface, roles, and policies.
See the [B20 token standard](/specifications/b20) for the complete interface, roles, and policies.

<Check>
The blocked balance falls and the replacement address receives the same amount, leaving circulating supply unchanged.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ description: "Limit transfers of your stablecoin to accounts your KYC program ha

import { StablecoinDemo } from "/snippets/StablecoinDemo.jsx"

Keep your stablecoin within a known set of holders with an **allowlist**: transfers only settle between accounts your KYC program has approved. You manage the list in the [Policy Registry](/specifications/b20/specification-overview#policy-registry) and bind it to the token's transfer scopes.
Keep your stablecoin within a known set of holders with an **allowlist**: transfers only settle between accounts your KYC program has approved. You manage the list in the [Policy Registry](/specifications/b20#integrating-compliance-checks) and bind it to the token's transfer scopes.

## Demo

Expand All @@ -17,7 +17,7 @@ The demo uses a local browser-generated account to submit real transactions on *
</Tip>

<Note>
New to B20? See the [B20 Token Standard](/specifications/b20/specification-overview) for the concepts and a full launch walkthrough. These samples target `base-std@be6d045`, `viem@2.55.11`, and Base Foundry `v1.1.1`.
New to B20? See the [B20 Token Standard](/specifications/b20) for the concepts and a full launch walkthrough. These samples target `base-std@be6d045`, `viem@2.55.11`, and Base Foundry `v1.1.1`.
</Note>

## How Policies Work
Expand Down Expand Up @@ -93,15 +93,15 @@ An allowlist denies every account not in the policy. Seed intended holders befor

After creation, only the policy admin can add or remove accounts. Call `updateAllowlist(policyId, true, accounts)` to add and `updateAllowlist(policyId, false, accounts)` to remove. The change is visible to every token that references the policy on the next call. No second `updatePolicy` is needed on the token.

To combine a KYC allowlist with a sanctions blocklist, create an `INTERSECT` composite policy referencing both simple policies, then bind the composite ID to the token's scopes. See the [B20 token standard](/specifications/b20/specification-overview) for the full policy type reference.
To combine a KYC allowlist with a sanctions blocklist, create an `INTERSECT` composite policy referencing both simple policies, then bind the composite ID to the token's scopes. See the [B20 token standard](/specifications/b20) for the full policy type reference.

## See Also

<CardGroup cols={2}>
<Card title="Block an Account" icon="user-lock" href="/build-on-base/issue-stablecoins/block-an-account">
Deny a specific address.
</Card>
<Card title="Policy Integration (B20 Standard)" icon="book" href="/specifications/b20/specification-overview#policy-integration">
<Card title="Policy Integration (B20 Standard)" icon="book" href="/specifications/b20#integrating-compliance-checks">
Policy hooks in the B20 standard.
</Card>
</CardGroup>
11 changes: 7 additions & 4 deletions docs/docs.json
Original file line number Diff line number Diff line change
Expand Up @@ -245,7 +245,6 @@
"group": "B20",
"pages": [
"specifications/b20/index",
"specifications/b20/specification-overview",
"specifications/b20/architecture",
{
"group": "Concepts",
Expand Down Expand Up @@ -629,6 +628,10 @@
]
},
"redirects": [
{
"source": "/specifications/b20/specification-overview",
"destination": "/specifications/b20"
},
{
"source": "/build-on-base/accept-payments/capture-a-partial-amount",
"destination": "/build-on-base/accept-payments/capture-an-authorization#capture-a-partial-amount"
Expand Down Expand Up @@ -2691,7 +2694,7 @@
},
{
"source": "/base-chain/specs/b20/overview",
"destination": "/specifications/b20/specification-overview"
"destination": "/specifications/b20"
},
{
"source": "/base-chain/specs/b20/changelog",
Expand Down Expand Up @@ -2931,7 +2934,7 @@
},
{
"source": "/base-chain/specs/reference/b20/index",
"destination": "/specifications/b20/specification-overview"
"destination": "/specifications/b20"
},
{
"source": "/base-chain/network-information/b20-token-standard",
Expand Down Expand Up @@ -3483,7 +3486,7 @@
},
{
"source": "/base-chain/specs/reference/b20",
"destination": "/specifications/b20/specification-overview"
"destination": "/specifications/b20"
},
{
"source": "/base-chain/specs/protocol/consensus",
Expand Down
2 changes: 1 addition & 1 deletion docs/get-started/issue-rwa.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ keywords: ["issue RWA Base", "real-world asset tokenization", "B20 Asset", "toke
import { AssetDemo } from "/snippets/AssetDemo.jsx"
import RwaDisclaimer from "/snippets/RwaDisclaimer.mdx"

Represent a real-world asset with the [B20 Asset standard](/specifications/b20/specification-overview#asset). Configure precision and issuer roles, distribute units, restrict eligible holders, and run distributions through one ERC-20-compatible surface built into Base. The guides below use a stock token as the worked example; the same flows apply to other asset types.
Represent a real-world asset with the [B20 Asset standard](/specifications/b20/concepts/token-types#4-asset). Configure precision and issuer roles, distribute units, restrict eligible holders, and run distributions through one ERC-20-compatible surface built into Base. The guides below use a stock token as the worked example; the same flows apply to other asset types.

<RwaDisclaimer />

Expand Down
2 changes: 1 addition & 1 deletion docs/get-started/issue-stablecoins.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ description: "Run a fiat-backed stablecoin on Base with minting, compliance, and

import { StablecoinDemo } from "/snippets/StablecoinDemo.jsx"

Issue a fiat-backed stablecoin on Base with [B20](/specifications/b20/specification-overview), Base's native token standard. Minting, redemption, compliance controls, and reconciliation ship with the chain, so there's no custom contract to build or audit, and it's fully ERC-20 compatible.
Issue a fiat-backed stablecoin on Base with [B20](/specifications/b20), Base's native token standard. Minting, redemption, compliance controls, and reconciliation ship with the chain, so there's no custom contract to build or audit, and it's fully ERC-20 compatible.

## Demo

Expand Down
4 changes: 1 addition & 3 deletions docs/llms-full.txt
Original file line number Diff line number Diff line change
Expand Up @@ -292,9 +292,7 @@ const client = createPublicClient({ chain: base, transport: http() })

#### B20

- [B20](https://docs.base.org/specifications/b20/index): Native token standard for issuing programmable assets and stablecoins on Base, with roles, policies, supply controls, and ERC-20 compatibility.

- [B20 Overview](https://docs.base.org/specifications/b20/specification-overview): Introduction to B20, Base’s native token standard for programmable assets and stablecoins.
- [Overview](https://docs.base.org/specifications/b20): Introduction to B20, Base’s native token standard for programmable assets and stablecoins.

- [B20 Execution Architecture](https://docs.base.org/specifications/b20/architecture): How B20 precompiles execute, how B20 tokens are created and recognized, and how protocol versions preserve execution consensus.

Expand Down
Loading
Loading