From c28f9a3b59efcec1eeff85fbbd9e0962240f60fc Mon Sep 17 00:00:00 2001 From: Youssef Date: Tue, 18 Aug 2026 18:48:22 +0100 Subject: [PATCH 01/11] docs(chain): land tab on Chain Overview, add B20 and native AA core concepts MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Chain tab opened on the Beryl upgrade page because a "Beryl Upgrade" group sat above Introduction. Remove that group so the tab lands on Chain Overview. Core Concepts gains two pages at the top: - B20 Token Standard: a conceptual, non-technical introduction to B20 with the chain.base.org/demos/b20 demo embedded, covering why it exists, what it provides, the Asset and Stablecoin variants, who it is for, and how it compares to a custom ERC-20. - Native Account Abstraction: the conceptual half of the EIP-8130 page — why native AA, the five concepts, and what it unlocks. Upgrades collapses Cobalt and Beryl to one page each (via sidebarTitle); Azul and Optimism are untouched. Both specs move into Reference: - Reference > B20 (un-nested from "B20 Specification"): overview, constants and addresses, errors and events, interfaces, plus a new B20 changelog. - Reference > Native Account Abstraction: eip-8130.mdx, rewritten as the technical reference now that the concepts live in Core Concepts. Adds a Cobalt upgrade overview shaped like Beryl's, with activation timestamps marked TBD pending scheduling. Spec file paths are unchanged, so no existing URLs move. The b20/demos stub is removed and redirected to the new core concept, which embeds the same demo. Generated with Claude Code Co-Authored-By: Claude --- docs/AGENTS.md | 6 +- .../b20-token-standard.mdx | 137 ++++++++++++++++++ .../native-account-abstraction.mdx | 87 +++++++++++ docs/base-chain/overview.mdx | 3 + .../specs/upgrades/beryl/b20/changelog.mdx | 40 +++++ .../specs/upgrades/beryl/b20/demos.mdx | 4 - .../beryl/b20/specification/index.mdx | 3 + .../specs/upgrades/beryl/overview.mdx | 14 +- .../specs/upgrades/cobalt/eip-8130.mdx | 90 ++++++++---- .../specs/upgrades/cobalt/overview.mdx | 33 +++++ docs/docs.json | 70 ++++----- 11 files changed, 409 insertions(+), 78 deletions(-) create mode 100644 docs/base-chain/network-information/b20-token-standard.mdx create mode 100644 docs/base-chain/network-information/native-account-abstraction.mdx create mode 100644 docs/base-chain/specs/upgrades/beryl/b20/changelog.mdx delete mode 100644 docs/base-chain/specs/upgrades/beryl/b20/demos.mdx create mode 100644 docs/base-chain/specs/upgrades/cobalt/overview.mdx diff --git a/docs/AGENTS.md b/docs/AGENTS.md index a1044b1f4..fdbf9513d 100644 --- a/docs/AGENTS.md +++ b/docs/AGENTS.md @@ -80,7 +80,7 @@ npx skills add base/base-skills |base-chain/api-reference/ethereum-json-rpc-api:eth_blockNumber,eth_call,eth_chainId,eth_estimateGas,eth_feeHistory,eth_gasPrice,eth_getBalance,eth_getBlockByHash,eth_getBlockByNumber,eth_getBlockReceipts,eth_getBlockTransactionCountByHash,eth_getBlockTransactionCountByNumber,eth_getCode,eth_getLogs,eth_getStorageAt,eth_getTransactionByBlockHashAndIndex,eth_getTransactionByBlockNumberAndIndex,eth_getTransactionByHash,eth_getTransactionCount,eth_getTransactionReceipt,eth_maxPriorityFeePerGas,eth_sendRawTransaction,eth_subscribe,eth_syncing,eth_unsubscribe,net_version,web3_clientVersion |base-chain/api-reference/flashblocks-api:base_transactionStatus,eth_simulateV1,flashblocks-api-overview,newFlashblockTransactions,newFlashblocks,pendingLogs |base-chain/flashblocks:faq -|base-chain/network-information:base-contracts,base-solana-bridge,bridging-and-withdrawals,configuration-changelog,ecosystem-bridges,network-faucets,network-fees,throughput-and-limits,transaction-finality,transaction-ordering,troubleshooting-transactions +|base-chain/network-information:b20-token-standard,base-contracts,base-solana-bridge,bridging-and-withdrawals,configuration-changelog,ecosystem-bridges,native-account-abstraction,network-faucets,network-fees,throughput-and-limits,transaction-finality,transaction-ordering,troubleshooting-transactions |base-chain/node-operators:node-providers,performance-tuning,run-a-base-node,snapshots,troubleshooting |base-chain/quickstart:connecting-to-base |base-chain/security:avoid-malicious-flags,bug-bounty,report-vulnerability,security-council @@ -94,7 +94,7 @@ npx skills add base/base-skills |base-chain/specs/reference:configurability,glossary |base-chain/specs/upgrades/azul:exec-engine,node-upgrade,overview,proofs |base-chain/specs/upgrades/beryl:b20-playground,overview -|base-chain/specs/upgrades/beryl/b20:demos +|base-chain/specs/upgrades/beryl/b20:changelog |base-chain/specs/upgrades/beryl/b20/specification:index |base-chain/specs/upgrades/beryl/b20/specification/reference:constants-and-addresses,errors-and-events-index |base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces:IActivationRegistry,IB20,IB20Asset,IB20Factory,IB20Stablecoin,IPolicyRegistry @@ -105,7 +105,7 @@ npx skills add base/base-skills |base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Stablecoin:currency |base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry:MAX_COMPOSITE_CHILD_POLICIES,MIN_COMPOSITE_CHILD_POLICIES,compositePolicyChildIds,createCompositePolicy,createPolicy,createPolicyWithAccounts,finalizeUpdateAdmin,isAuthorized,pendingPolicyAdmin,policyAdmin,policyExists,renounceAdmin,stageUpdateAdmin,updateAllowlist,updateBlocklist,updateComposite |base-chain/specs/upgrades/canyon:overview -|base-chain/specs/upgrades/cobalt:eip-8130 +|base-chain/specs/upgrades/cobalt:eip-8130,overview |base-chain/specs/upgrades/delta:overview,span-batches |base-chain/specs/upgrades/ecotone:derivation,l1-attributes,overview |base-chain/specs/upgrades/fjord:derivation,exec-engine,overview,predeploys diff --git a/docs/base-chain/network-information/b20-token-standard.mdx b/docs/base-chain/network-information/b20-token-standard.mdx new file mode 100644 index 000000000..c9fa56765 --- /dev/null +++ b/docs/base-chain/network-information/b20-token-standard.mdx @@ -0,0 +1,137 @@ +--- +title: "B20 Token Standard" +description: "Understand B20, Base's native token standard for stablecoin, real-world asset, and long-tail issuers, and how it extends ERC-20." +tag: "New" +--- + +B20 is Base's native token standard. It is a superset of ERC-20: every ERC-20 call, event, and integration keeps working unchanged, and B20 adds the machinery that regulated and institutional issuers otherwise have to build, audit, and maintain themselves. + +B20 tokens are not deployed as Solidity contracts. They run as precompiles built into the chain, so the behavior is the same for every B20 token and costs less gas than an equivalent contract token. + +B20 shipped with the [Beryl upgrade](/base-chain/specs/upgrades/beryl/overview) and is live on Base mainnet and Base Sepolia. + +## Why B20 exists + +Ask an issuer what their token contract has to do beyond moving balances, and the list is long: freeze an account when a court order lands, seize a balance, pause one operation without halting the rest, tag a transfer with an invoice number, cap total supply, run a stock split, publish a dividend. Every team builds that logic again, in a custom contract, and then pays to audit it. + +That has three costs: + +- **Duplicated risk.** Compliance logic is the highest-stakes code in the system, and every issuer writes their own version of it. +- **Integration friction.** Exchanges, wallets, custodians, and indexers integrate each token's bespoke surface separately. +- **Overhead.** Contract execution costs more gas than native chain functionality. + +B20 answers all three by moving that behavior into the standard. One surface, defined once, identical across every B20 token. + +## Try it + +The B20 demo runs the standard's issuer flows in the browser, with no wallet or setup required. + + + + + +If the demo does not load above, [open it in a new tab](https://chain.base.org/demos/b20). + +## What B20 gives you + + + + Minting, burning, seizing, pausing, and metadata edits are each gated by a built-in role. No custom access control contract. + + + Allowlists and blocklists, addressable by ID and combinable, decide who can send, receive, mint to, or be seized from. + + + Block one account without touching any other holder, then move its balance in a single call. + + + Pause transfers, mints, burns, or seizures independently instead of halting the whole token. + + + Attach a reference to a transfer, mint, burn, or seizure so reconciliation is a log query, not a per-customer deposit address. + + + Set an enforced ceiling on total supply, adjustable by an admin, or run uncapped. + + + Built-in ERC-2612 `permit`. New users sign an approval offchain and never need ETH to get started. + + + A contract-level metadata URI plus issuer-defined key/value fields for identifiers like a CUSIP. + + + +Tokens are created through a single factory call that also runs your bootstrap configuration, so a token can arrive fully set up in one transaction. Token addresses are deterministic and carry a recognizable B20 prefix, so you know an address is a B20 token before you call it. + +A token can also launch with no admin at all, or permanently give up its admin later. After that, admin-gated functions are uncallable forever and the admin cannot be restored. + +## The two variants + +Every B20 token is one of two variants, chosen at creation. + +| | Asset | Stablecoin | +|---|---|---| +| Built for | Real-world assets, equities, funds, long-tail tokens | Fiat-referenced stablecoins | +| Decimals | 6 to 18, set at creation | Fixed at 6 | +| Extras | Balance multipliers, announcements, batch minting, extra metadata fields | A currency code, set once at creation | + +The **Asset** variant covers corporate actions. A multiplier rescales every holder's displayed balance at once, so a 2-for-1 split is a single call rather than a migration. Announcements wrap a set of actions in a public onchain window, so a dividend and its disclosure land together. Batch minting pays out to many recipients atomically. + +The **Stablecoin** variant adds a currency code such as `USD`. B20 checks the code's format only; it makes no claim about reserves, legal status, or registration. + +## Who B20 is for + +- **Stablecoin issuers** who need pause, freeze, seize, supply caps, and memo-tagged settlement as standard behavior rather than custom code. +- **Real-world asset and equity issuers** who need corporate actions, identifiers, and disclosure to work onchain. +- **Long-tail token issuers** who want a cheaper, well-understood token that every Base integrator already supports. + +## B20 compared to a plain ERC-20 + +| | Custom ERC-20 contract | B20 | +|---|---|---| +| Implementation | Solidity you deploy, audit, and maintain | Native chain precompile | +| Compliance controls | Custom code per issuer | Built into the standard | +| Reconciliation | Deposit address per customer, or a wrapper contract | Memos on the transfer itself | +| Corporate actions | Migration or a new contract | A single call (Asset variant) | +| Integrator effort | New surface per token | One surface for every B20 token | +| ERC-20 compatibility | By definition | Superset, full parity | + +Because B20 is a superset, choosing it costs you nothing in compatibility. Anything that reads an ERC-20 reads a B20 token without changes. + +## Availability + +| Network | Live since | +|---|---| +| Base mainnet | 2026-06-25 (Beryl) | +| Base Sepolia | 2026-06-18 (Beryl) | + +## Next steps + + + + Create a fully configured token in one factory call. + + + Integrate memo-tagged payments and handle B20-specific reverts. + + + The normative standard: roles, policies, factory, variants, and events. + + + Precompile addresses, role identifiers, policy scopes, and constants. + + + Every method on `IB20`, `IB20Asset`, `IB20Stablecoin`, and the registries. + + + Changes to the standard, release by release. + + diff --git a/docs/base-chain/network-information/native-account-abstraction.mdx b/docs/base-chain/network-information/native-account-abstraction.mdx new file mode 100644 index 000000000..c88683203 --- /dev/null +++ b/docs/base-chain/network-information/native-account-abstraction.mdx @@ -0,0 +1,87 @@ +--- +title: "Native Account Abstraction" +description: "Understand native account abstraction on Base. EIP-8130 smart accounts send ordinary transactions, with no bundlers, relays, or paymaster infrastructure." +--- + +Native account abstraction makes smart accounts a property of the chain instead of something bolted on around it. An account records who is allowed to act for it, and how its signatures are checked, in an onchain system contract. Base validates every transaction against that configuration, so smart accounts send ordinary transactions. + +Base's implementation is [EIP-8130](https://eip.tools/eip/8130), landing with the [Cobalt upgrade](/base-chain/specs/upgrades/cobalt/overview). + + +EIP-8130 is experimental and currently runs only on the [vibenet devnet](https://chain.base.org/vibenet). See [connecting to Base](/base-chain/quickstart/connecting-to-base#vibenet) for connection details. + + +## Why native + +Smart accounts on Ethereum today work around the protocol rather than inside it, and you pay for that in infrastructure. + +[ERC-4337](https://eips.ethereum.org/EIPS/eip-4337) introduces an alternate mempool, bundlers, and an EntryPoint contract. Every app that wants smart account features inherits that stack, its operating cost, and its failure modes. [EIP-7702](https://eips.ethereum.org/EIPS/eip-7702) lets an externally owned account (EOA) delegate to contract code, which is simpler, but the account still validates against its single original key. + +EIP-8130 moves the abstraction into the chain, so features that 4337 provides through external services come built into ordinary transactions: + +| | ERC-4337 | EIP-7702 | EIP-8130 | +|---|---|---|---| +| Validation | EntryPoint contract via bundlers | One fixed key | Protocol, against onchain configuration | +| Infrastructure | Bundlers and an alternate mempool | None | None, standard transactions | +| Session keys | Per-wallet plugin systems | Not native | Native actors with scoped policies | +| Gas sponsorship | Paymaster contracts | Not native | Native payers ([ERC-8168](https://eip.tools/eip/8168)) | +| Batching | Via the account contract | Via delegated code | Native, atomic, per transaction | + +## The five concepts + +An EIP-8130 transaction names a sender account, proves the sender is authorized to act for it, and carries a batch of calls. Everything in the model maps to one of five ideas. + + + +An account is a small proxy contract that forwards calls to a shared implementation. Its address is deterministic, so it exists and can receive funds before anything is deployed, and the deployment can ride along in the account's first transaction. + +`DefaultAccount` is the minimal building block, and also backs EOAs upgraded through EIP-7702. A separate variant built for high transaction rates locks outbound ETH during execution in exchange for higher mempool rate limits. + + + +A **signer** is what produces a transaction's authorization: a private key, a passkey, a hardware device. + +An **actor** is the onchain identity that authorization resolves to, recorded for the account in a system contract. The distinction matters because an account can authorize many actors at once and revoke each one independently. Losing a device means revoking one actor, not migrating the account. + + + +Each actor carries **scope** flags that limit what it may do, and can bind to an onchain **policy**: per-token spend limits, plus restrictions on which contracts and functions it may call. + +This is the native session key model. An app receives an actor with exactly the permissions it needs and nothing more, enforced by the chain, revocable at any time. + + + +Signature validation is pluggable. Authenticator contracts implement a single `authenticate` entrypoint, and the reference set covers secp256k1 (standard Ethereum keys), P-256, and WebAuthn. + +Passkeys therefore validate at the protocol level. There is no wrapper contract and no verification cost premium for using a device credential instead of a seed phrase. + + + +A transaction can name a **payer** that covers gas on the sender's behalf, so sponsorship needs no paymaster contract. Draft [ERC-8168](https://eip.tools/eip/8168) standardizes the service flow around it: how apps discover a payer and request sponsorship. + + + +## What it unlocks + +- **Passkey accounts by default.** A user signs with the biometric on their device, validated by the protocol, with no seed phrase anywhere in the flow. +- **Session keys that are real permissions.** Grant an app a scoped, spend-limited actor instead of blanket approval, and revoke it without moving funds. +- **Atomic batching.** Approve and swap, or claim and stake, succeed or revert together in one transaction. +- **Sponsored onboarding.** A new user's first transaction can be paid for by the app, with no bundler or paymaster deployment. +- **Accounts that survive a lost device.** Rotate an actor rather than recover a key. + +## Next steps + + + + Chain details, client setup, a working code example, and the onchain interfaces. + + + Activation status and required node software. + + + `AccountConfiguration`, account implementations, and authenticators, with Foundry tests. + + + RPC endpoints and chain ID for the devnet where EIP-8130 runs today. + + diff --git a/docs/base-chain/overview.mdx b/docs/base-chain/overview.mdx index 635a3379a..fb619b9cc 100644 --- a/docs/base-chain/overview.mdx +++ b/docs/base-chain/overview.mdx @@ -8,6 +8,9 @@ Base Chain docs are organized around the core concepts, references, and operatin ## Start here + + Base's native token standard for stablecoin, real-world asset, and long-tail issuers. An ERC-20 superset with compliance, reconciliation, and corporate actions built in. + Understand transaction ordering, finality, throughput, fees, bridging, and Base-specific execution behavior. diff --git a/docs/base-chain/specs/upgrades/beryl/b20/changelog.mdx b/docs/base-chain/specs/upgrades/beryl/b20/changelog.mdx new file mode 100644 index 000000000..44e312079 --- /dev/null +++ b/docs/base-chain/specs/upgrades/beryl/b20/changelog.mdx @@ -0,0 +1,40 @@ +--- +title: "B20 changelog" +description: "Changes to the B20 token standard, release by release, including new methods, deprecations, and activation dates." +--- + +Changes to the [B20 token standard](/base-chain/specs/upgrades/beryl/b20/specification). Newest first. + + +B20 method and event signatures are part of the chain's consensus surface. Existing selectors and behavior do not change; the standard grows by addition. + + +## Beryl — initial release + +| Network | Activated | +|---|---| +| Base mainnet | 2026-06-25 | +| Base Sepolia | 2026-06-18 | + +Shipped with the [Beryl upgrade](/base-chain/specs/upgrades/beryl/overview). + +**Added** + +- The B20 standard as a native precompile: a superset of ERC-20 with full selector and behavior parity for `transfer`, `transferFrom`, `approve`, `allowance`, `balanceOf`, `totalSupply`, `name`, `symbol`, `decimals`, `Transfer`, and `Approval` +- [Role-based access control](/base-chain/specs/upgrades/beryl/b20/specification#roles-model) with built-in roles, user-defined roles in the role graph, and `renounceLastAdmin` for permanent admin-less operation +- [PolicyRegistry](/base-chain/specs/upgrades/beryl/b20/specification#policy-registry) singleton precompile with `BLOCKLIST`, `ALLOWLIST`, `UNION`, and `INTERSECT` policy types, two-step admin transfer, and the `ALWAYS_ALLOW` and `ALWAYS_BLOCK` built-ins +- [Six policy scopes](/base-chain/specs/upgrades/beryl/b20/specification#policy-integration) on every token, covering transfer sender, receiver, and executor, mint receiver, and seize holder and receiver +- [`seizeWithMemo`](/base-chain/specs/upgrades/beryl/b20/specification#seize) for compliance-driven balance transfers +- [Memo variants](/base-chain/specs/upgrades/beryl/b20/specification#memos) of transfer, transferFrom, mint, burn, and seize, emitting `Memo` immediately after the primary event +- [Granular pausing](/base-chain/specs/upgrades/beryl/b20/specification#pause) by `PausableFeature`: `TRANSFER`, `MINT`, `BURN`, and `SEIZE` +- [Optional supply caps](/base-chain/specs/upgrades/beryl/b20/specification#supply-cap), with `type(uint128).max` as the uncapped sentinel and maximum supply +- [ERC-2612 `permit`](/base-chain/specs/upgrades/beryl/b20/specification#erc-2612-permit--eip-712) with an EIP-712 domain at version `"1"` +- [ERC-7572 `contractURI`](/base-chain/specs/upgrades/beryl/b20/specification#contract-uri-erc-7572) and `METADATA_ROLE`-gated name, symbol, and URI updates +- [B20Factory](/base-chain/specs/upgrades/beryl/b20/specification#factory) singleton precompile with deterministic, variant-encoding addresses and `initCalls` bootstrap semantics +- ActivationRegistry gating for state-changing PolicyRegistry calls +- The [`ASSET` variant](/base-chain/specs/upgrades/beryl/b20/specification#asset): `OPERATOR_ROLE`, WAD-precision UI multipliers with scheduled and instant updates, announcements, `batchMint`, and issuer-defined extra metadata +- The [`STABLECOIN` variant](/base-chain/specs/upgrades/beryl/b20/specification#stablecoin): fixed 6 decimals and a `currency()` code set once at creation + +**Deprecated** + +- `burnBlocked` and `BURN_BLOCKED_ROLE`, retained for backwards compatibility. New seizure flows use `seizeWithMemo`. diff --git a/docs/base-chain/specs/upgrades/beryl/b20/demos.mdx b/docs/base-chain/specs/upgrades/beryl/b20/demos.mdx deleted file mode 100644 index 1eb59898a..000000000 --- a/docs/base-chain/specs/upgrades/beryl/b20/demos.mdx +++ /dev/null @@ -1,4 +0,0 @@ ---- -title: "B20 Demos" -url: "https://chain.base.org/demos/b20" ---- diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/index.mdx b/docs/base-chain/specs/upgrades/beryl/b20/specification/index.mdx index ce5bac6dc..a0b2ee0f0 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/index.mdx +++ b/docs/base-chain/specs/upgrades/beryl/b20/specification/index.mdx @@ -1,5 +1,6 @@ --- title: "B20 specification" +sidebarTitle: "Overview" description: "Normative Beryl specification for Base's B20 native token standard, precompile registries, policy scopes, factory, and variants." --- @@ -219,4 +220,6 @@ Stablecoin tokens add `currency()`, set once at creation. The value must contain ## Developer documentation +- [B20 token standard](/base-chain/network-information/b20-token-standard): conceptual introduction to B20 and when to use it - [Generated reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20) +- [B20 changelog](/base-chain/specs/upgrades/beryl/b20/changelog) diff --git a/docs/base-chain/specs/upgrades/beryl/overview.mdx b/docs/base-chain/specs/upgrades/beryl/overview.mdx index 76cd4773c..570d87f57 100644 --- a/docs/base-chain/specs/upgrades/beryl/overview.mdx +++ b/docs/base-chain/specs/upgrades/beryl/overview.mdx @@ -1,14 +1,15 @@ --- title: "Overview" +sidebarTitle: "Beryl" description: "Overview of the Beryl hardfork, introducing the B20 native token standard, reduced withdrawal delays, and Reth V2." --- ## Summary -- Introduce [B20](/base-chain/specs/upgrades/beryl/b20/specification): Base's native token standard for stablecoin, real-world asset (RWA), and long-tail token issuers +- Introduce [B20](/base-chain/network-information/b20-token-standard): Base's native token standard for stablecoin, real-world asset (RWA), and long-tail token issuers - Reduce the single-proof withdrawal finalization period from 7 days to 5 days for increased capital efficiency - Reth V2: up to 50% disk reduction and a rewritten state root pipeline delivering +33% throughput -- Upcoming in a later Cobalt phase: [native account abstraction (EIP-8130)](/base-chain/specs/upgrades/cobalt/eip-8130), currently previewing on the vibenet devnet +- Upcoming in [Cobalt](/base-chain/specs/upgrades/cobalt/overview): [native account abstraction (EIP-8130)](/base-chain/network-information/native-account-abstraction), currently previewing on the vibenet devnet ## Activation Timestamps @@ -33,19 +34,22 @@ Action required before activation. Upgrade to the required version before each n B20 is Base's native token standard - ERC-20 compatible tokens implemented as Rust precompiles, designed for stablecoin, real-world asset, and long-tail token issuers. -- [B20 Overview](/base-chain/specs/upgrades/beryl/b20/specification) +- [B20 Token Standard](/base-chain/network-information/b20-token-standard) +- [B20 Specification](/base-chain/specs/upgrades/beryl/b20/specification) - [Roles Model](/base-chain/specs/upgrades/beryl/b20/specification#roles-model) - [Policy Integration](/base-chain/specs/upgrades/beryl/b20/specification#policy-integration) - [Factory](/base-chain/specs/upgrades/beryl/b20/specification#factory) - [Policy Registry](/base-chain/specs/upgrades/beryl/b20/specification#policy-registry) - [Mint & Burn](/base-chain/specs/upgrades/beryl/b20/specification#mint) - [Variants](/base-chain/specs/upgrades/beryl/b20/specification#variants) +- [B20 changelog](/base-chain/specs/upgrades/beryl/b20/changelog) ## Native Account Abstraction (EIP-8130) -A later Beryl phase brings account abstraction into the protocol. Accounts configure authorized actors and signature validation onchain. Apps get portable smart accounts, scoped session keys, atomic batching, and native gas sponsorship without bundler or relay infrastructure. EIP-8130 is experimental and currently runs only on the vibenet devnet. +The [Cobalt upgrade](/base-chain/specs/upgrades/cobalt/overview) brings account abstraction into the protocol. Accounts configure authorized actors and signature validation onchain. Apps get portable smart accounts, scoped session keys, atomic batching, and native gas sponsorship without bundler or relay infrastructure. EIP-8130 is experimental and currently runs only on the vibenet devnet. -- [Native Account Abstraction (EIP-8130)](/base-chain/specs/upgrades/cobalt/eip-8130) +- [Native Account Abstraction](/base-chain/network-information/native-account-abstraction) +- [Native Account Abstraction Reference](/base-chain/specs/upgrades/cobalt/eip-8130) ## Withdrawals diff --git a/docs/base-chain/specs/upgrades/cobalt/eip-8130.mdx b/docs/base-chain/specs/upgrades/cobalt/eip-8130.mdx index 329e138d4..07a7d44d2 100644 --- a/docs/base-chain/specs/upgrades/cobalt/eip-8130.mdx +++ b/docs/base-chain/specs/upgrades/cobalt/eip-8130.mdx @@ -1,22 +1,36 @@ --- -title: "Native Account Abstraction" -description: "Build with native account abstraction on Base. EIP-8130 smart accounts send ordinary transactions, with no bundlers or relays." +title: "Native Account Abstraction Reference" +sidebarTitle: "Native Account Abstraction" +description: "EIP-8130 reference for Base: vibenet chain details, client setup, transaction structure, account configuration, authenticators, and payers." --- +This is the technical reference for EIP-8130 on Base. For what native account abstraction is and why the protocol implements it, start with [Native Account Abstraction](/base-chain/network-information/native-account-abstraction). + [EIP-8130](https://eip.tools/eip/8130) builds account abstraction into the protocol. An account registers who can act for it, and how its signatures are checked, in an onchain system contract. The chain validates each transaction against that configuration, so smart accounts work without bundlers, relays, or a separate mempool. EIP-8130 is experimental and currently runs only on the [vibenet devnet](https://chain.base.org/vibenet). You can learn more about connecting to vibenet [here](/base-chain/quickstart/connecting-to-base#vibenet). -## Build with EIP-8130 +## Network details + +| Field | Value | +|---|---| +| Network | vibenet devnet | +| Chain ID | `84538453` | +| RPC | `https://rpc.vibes.base.org` | +| Faucet | `POST https://api.vibes.base.org/api/vibenet/faucet/drip` | + +## Client setup -EIP-8130 is live on vibenet (chain ID `84538453`, RPC `https://rpc.vibes.base.org`). Client support lives in an experimental viem fork: +Client support lives in an experimental viem fork: ```bash bun add "viem@github:chunter-cb/viem#feat/eip-8130" ``` +## Create an account and send a batch + The example below performs the full flow: 1. Creates an account. @@ -73,43 +87,67 @@ if (!allPhasesSucceeded(receipt)) throw new Error("a phase reverted"); One transaction creates the account, executes the batch, and pays for gas. -## How it works +## Transaction structure + +An 8130 transaction names a sender account, proves the sender is authorized to act for it, and carries a batch of calls. -Everything in the example maps to one of five concepts. An 8130 transaction names a sender account, proves the sender is authorized to act for it, and carries a batch of calls. +| Field | Purpose | +|---|---| +| `sender` | The account the transaction acts for. | +| `accountChanges` | Configuration changes applied before execution, including account creation. | +| `calls` | The batch to execute atomically. | +| `payer` | Optional account that covers gas on the sender's behalf. | -### Account +Receipts report results per phase rather than as a single status, so a transaction can succeed at the transaction level while an individual phase reverts. Check every phase; `allPhasesSucceeded` does this in the reference client. -Account addresses are deterministic: viem computes them locally with `CREATE2`. That is why `account.address` exists before any deployment and `account.createChange` rides along in the first transaction. Each account is a small proxy contract that forwards calls to a shared implementation. `DefaultAccount` is the minimal building block and backs externally owned accounts (EOAs) upgraded via EIP-7702. A variant built for high transaction rates locks outbound ETH during execution in exchange for higher mempool rate limits. +## Accounts -### Signer and Actor +Account addresses are derived with `CREATE2`, so a client computes them locally and the address exists before any deployment. That is why `account.address` is available immediately and `account.createChange` can ride along in the first transaction. -A **signer** produces the transaction's authorization (`privateKeyToAccount` above). An **actor** is the onchain identity that authorization resolves to, recorded in the `AccountConfiguration` system contract. An account can authorize many actors and revoke each independently. +Each account is a small proxy contract that forwards calls to a shared implementation. -### Scope and Policy +| Implementation | Notes | +|---|---| +| `DefaultAccount` | The minimal building block. Also backs EOAs upgraded via EIP-7702. | +| High-rate variant | Locks outbound ETH during execution in exchange for higher mempool rate limits. | -Each actor carries **scope** flags (`SCOPE_NONCE`, `SCOPE_POLICY`) that limit what it may do. It can also bind to an onchain **policy**: per-token spend limits and restrictions on which contracts and functions it may call. This is the native session-key model: an app gets an actor with exactly the permissions it needs, revocable at any time. +## Account configuration -### Authenticators +Authorization lives in the `AccountConfiguration` system contract. It records the **actors** an account authorizes: the onchain identities that a signer's authorization resolves to. An account may authorize many actors and revoke each independently. -Signature validation is pluggable. Authenticator contracts implement `IAuthenticator.authenticate(hash, data)`. The reference set covers secp256k1 (standard Ethereum keys), P-256, and WebAuthn. Passkeys therefore validate at the protocol level, not through wrapper contracts. +Each actor entry carries: -### Payer +| Element | Purpose | +|---|---| +| Scope flags | `SCOPE_NONCE` and `SCOPE_POLICY` bound what the actor may do. | +| Policy binding | Optional onchain policy: per-token spend limits, and allowed contracts and functions. | +| Authenticator | The contract that validates this actor's signatures. | + +Binding an actor to a policy is the native session key model: an app receives an actor with exactly the permissions it needs, revocable at any time. + +## Authenticators + +Signature validation is pluggable. Authenticator contracts implement: + +```solidity +interface IAuthenticator { + function authenticate(bytes32 hash, bytes calldata data) external view returns (bool); +} +``` -A transaction can name a **payer** that covers gas on the sender's behalf. Draft [ERC-8168](https://eip.tools/eip/8168) standardizes the payer service flow: how apps discover and request sponsorship. +The reference set covers: -## Why native account abstraction +| Authenticator | Keys | +|---|---| +| secp256k1 | Standard Ethereum keys | +| P-256 | NIST P-256 | +| WebAuthn | Passkeys and platform authenticators | -Smart accounts on Ethereum today are bolted on from outside the protocol. [ERC-4337](https://eips.ethereum.org/EIPS/eip-4337) requires an alternate mempool, bundlers, and an EntryPoint contract; every app inherits that infrastructure and its costs. [EIP-7702](https://eips.ethereum.org/EIPS/eip-7702) delegates an EOA to contract code, but the account still validates against its single original key. +Passkeys therefore validate at the protocol level, not through wrapper contracts. -EIP-8130 moves the abstraction into the chain, so the features 4337 provides through external services come built into ordinary transactions: +## Payers -| | ERC-4337 | EIP-7702 | EIP-8130 | -|---|---|---|---| -| Validation | EntryPoint contract via bundlers | One fixed key | Protocol, against onchain configuration | -| Infrastructure | Bundlers + alternate mempool | None | None - standard transactions | -| Session keys | Per-wallet plugin systems | Not native | Native actors with scoped policies | -| Gas sponsorship | Paymaster contracts | Not native | Native payers ([ERC-8168](https://eip.tools/eip/8168)) | -| Batching | Via account contract | Via delegated code | Native, atomic, per-transaction | +A transaction can name a **payer** that covers gas on the sender's behalf, with no paymaster contract involved. Draft [ERC-8168](https://eip.tools/eip/8168) standardizes the payer service flow: how apps discover a payer and request sponsorship. ## Go deeper diff --git a/docs/base-chain/specs/upgrades/cobalt/overview.mdx b/docs/base-chain/specs/upgrades/cobalt/overview.mdx new file mode 100644 index 000000000..aeb64134b --- /dev/null +++ b/docs/base-chain/specs/upgrades/cobalt/overview.mdx @@ -0,0 +1,33 @@ +--- +title: "Overview" +sidebarTitle: "Cobalt" +description: "Overview of the Cobalt hardfork, which brings native account abstraction (EIP-8130) into the Base protocol." +--- + +## Summary + +- Introduce [native account abstraction (EIP-8130)](/base-chain/network-information/native-account-abstraction): accounts configure authorized actors and signature validation onchain, so smart accounts send ordinary transactions +- Apps get portable smart accounts, scoped session keys, atomic batching, and native gas sponsorship without bundler or relay infrastructure + +## Activation Timestamps + +| Network | Timestamp | Date | +|---------|-----------|------| +| `mainnet` | TBD | TBD | +| `sepolia` | TBD | TBD | +| `vibenet` | Active | Previewing today | + + +Cobalt has not been scheduled on mainnet or Sepolia. EIP-8130 is experimental and currently runs only on the [vibenet devnet](https://chain.base.org/vibenet). + + +## Required Software + +Node software requirements will be published here once Cobalt is scheduled. To follow along today, connect to [vibenet](/base-chain/quickstart/connecting-to-base#vibenet). + +## Native Account Abstraction (EIP-8130) + +Cobalt brings account abstraction into the protocol. An account registers who can act for it, and how its signatures are checked, in an onchain system contract. The chain validates each transaction against that configuration, so smart accounts work without bundlers, relays, or a separate mempool. + +- [Native Account Abstraction](/base-chain/network-information/native-account-abstraction): what it is, how it compares to ERC-4337 and EIP-7702, and what it unlocks +- [Native Account Abstraction Reference](/base-chain/specs/upgrades/cobalt/eip-8130): chain details, client setup, transaction structure, account configuration, authenticators, and payers diff --git a/docs/docs.json b/docs/docs.json index c837b0656..f2b6710d8 100644 --- a/docs/docs.json +++ b/docs/docs.json @@ -98,13 +98,6 @@ { "tab": "Chain", "groups": [ - { - "group": "Beryl Upgrade", - "tag": "New", - "pages": [ - "base-chain/specs/upgrades/beryl/overview" - ] - }, { "group": "Introduction", "pages": [ @@ -114,6 +107,8 @@ { "group": "Core Concepts", "pages": [ + "base-chain/network-information/b20-token-standard", + "base-chain/network-information/native-account-abstraction", "base-chain/network-information/transaction-ordering", "base-chain/network-information/transaction-finality", "base-chain/network-information/throughput-and-limits", @@ -259,38 +254,8 @@ { "group": "Upgrades", "pages": [ - { - "group": "Cobalt", - "pages": [ - "base-chain/specs/upgrades/cobalt/eip-8130" - ] - }, - { - "group": "Beryl", - "pages": [ - "base-chain/specs/upgrades/beryl/overview", - "base-chain/specs/upgrades/beryl/b20/demos", - { - "group": "B20 Specification", - "pages": [ - "base-chain/specs/upgrades/beryl/b20/specification/index", - "base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses", - "base-chain/specs/upgrades/beryl/b20/specification/reference/errors-and-events-index", - { - "group": "Interfaces", - "pages": [ - "base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IActivationRegistry", - "base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20", - "base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset", - "base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Factory", - "base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Stablecoin", - "base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry" - ] - } - ] - } - ] - }, + "base-chain/specs/upgrades/cobalt/overview", + "base-chain/specs/upgrades/beryl/overview", { "group": "Azul", "pages": [ @@ -379,7 +344,28 @@ "group": "Reference", "pages": [ "base-chain/specs/reference/glossary", - "base-chain/specs/reference/configurability" + "base-chain/specs/reference/configurability", + { + "group": "B20", + "pages": [ + "base-chain/specs/upgrades/beryl/b20/specification/index", + "base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses", + "base-chain/specs/upgrades/beryl/b20/specification/reference/errors-and-events-index", + { + "group": "Interfaces", + "pages": [ + "base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IActivationRegistry", + "base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20", + "base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset", + "base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Factory", + "base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Stablecoin", + "base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry" + ] + }, + "base-chain/specs/upgrades/beryl/b20/changelog" + ] + }, + "base-chain/specs/upgrades/cobalt/eip-8130" ] } ] @@ -847,6 +833,10 @@ ] }, "redirects": [ + { + "source": "/base-chain/specs/upgrades/beryl/b20/demos", + "destination": "/base-chain/network-information/b20-token-standard" + }, { "source": "/base-chain/specs/upgrades/beryl/b20", "destination": "/base-chain/specs/upgrades/beryl/b20/specification" From cc8ee91855f32a8b16ea465a038fdeb9097d9470 Mon Sep 17 00:00:00 2001 From: Youssef Date: Tue, 18 Aug 2026 18:50:44 +0100 Subject: [PATCH 02/11] docs: fix relative B20 anchor href that broke local preview The Chain tab's "B20 Specification" anchor used a site-relative href, which the Mintlify CLI rejects with "must be a valid url", failing the prebuild step so `mintlify dev` could not start at all. Use an absolute docs.base.org URL, matching the Get Started tab's Faucet and Bridge anchors. Generated with Claude Code Co-Authored-By: Claude --- docs/docs.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/docs.json b/docs/docs.json index f2b6710d8..4807da400 100644 --- a/docs/docs.json +++ b/docs/docs.json @@ -383,7 +383,7 @@ "anchors": [ { "anchor": "B20 Specification", - "href": "/base-chain/specs/upgrades/beryl/b20/specification" + "href": "https://docs.base.org/base-chain/specs/upgrades/beryl/b20/specification" }, { "anchor": "GitHub", From b2194f51adc39dc7d04a54a38156ecdab3100d69 Mon Sep 17 00:00:00 2001 From: Youssef Date: Tue, 18 Aug 2026 18:57:36 +0100 Subject: [PATCH 03/11] docs: tighten B20 card description on Chain Overview Two sentences was longer than the neighbouring cards. Drop the audience framing, which the B20 page itself opens with. Generated with Claude Code Co-Authored-By: Claude --- docs/base-chain/overview.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/base-chain/overview.mdx b/docs/base-chain/overview.mdx index fb619b9cc..72c4f6294 100644 --- a/docs/base-chain/overview.mdx +++ b/docs/base-chain/overview.mdx @@ -9,7 +9,7 @@ Base Chain docs are organized around the core concepts, references, and operatin - Base's native token standard for stablecoin, real-world asset, and long-tail issuers. An ERC-20 superset with compliance, reconciliation, and corporate actions built in. + Base's native token standard: an ERC-20 superset with compliance, reconciliation, and corporate actions built in. Understand transaction ordering, finality, throughput, fees, bridging, and Base-specific execution behavior. From fc2b14e86e551fd855a46732987c3ba241b4f487 Mon Sep 17 00:00:00 2001 From: Youssef Date: Tue, 18 Aug 2026 19:12:38 +0100 Subject: [PATCH 04/11] docs: reground B20 core concept page in existing sourced content The page opened with prose I wrote rather than sourced material, including a "why B20 exists" narrative and a comparison table whose rows were not backed by anything in the repo. Replace it with technical content drawn from existing pages: - Intro and the ERC-20 build-audit-maintain framing from launch-b20-token - ERC-20 parity list, roles, policy registry and scopes, seize, pause, memos, supply cap, permit, contract URI, factory, address derivation, admin renunciation, variants, and precompile addresses from the B20 specification - The decimals caveat and integration notes from accept-b20-payments - Activation gating and the base-forge note from launch-b20-token - "When to use B20" verbatim from b20-playground - Activation dates from the Beryl overview Drops the invented "why B20 exists" section and the B20-vs-ERC-20 table. Generated with Claude Code Co-Authored-By: Claude --- .../b20-token-standard.mdx | 128 +++++++++--------- 1 file changed, 63 insertions(+), 65 deletions(-) diff --git a/docs/base-chain/network-information/b20-token-standard.mdx b/docs/base-chain/network-information/b20-token-standard.mdx index c9fa56765..8b9590f68 100644 --- a/docs/base-chain/network-information/b20-token-standard.mdx +++ b/docs/base-chain/network-information/b20-token-standard.mdx @@ -1,26 +1,26 @@ --- title: "B20 Token Standard" -description: "Understand B20, Base's native token standard for stablecoin, real-world asset, and long-tail issuers, and how it extends ERC-20." +description: "B20 is Base's native ERC-20-compatible token standard, implemented as Rust precompiles with chain-native roles, policies, memos, pausing, and supply caps." tag: "New" --- -B20 is Base's native token standard. It is a superset of ERC-20: every ERC-20 call, event, and integration keeps working unchanged, and B20 adds the machinery that regulated and institutional issuers otherwise have to build, audit, and maintain themselves. +B20 is Base's native token standard: an ERC-20 superset implemented as Rust precompiles rather than deployed Solidity contracts. Running as a precompile makes transfers cheaper and higher-throughput than a standard contract token while keeping full ERC-20 compatibility. -B20 tokens are not deployed as Solidity contracts. They run as precompiles built into the chain, so the behavior is the same for every B20 token and costs less gas than an equivalent contract token. +Roles, policy gating, memos, pausing, supply caps, and ERC-2612 `permit` are built into the chain. A standard ERC-20 leaves that logic for you to build, audit, and maintain. -B20 shipped with the [Beryl upgrade](/base-chain/specs/upgrades/beryl/overview) and is live on Base mainnet and Base Sepolia. +B20 is designed for stablecoin, real-world asset (RWA), and long-tail token issuers. It shipped with the [Beryl upgrade](/base-chain/specs/upgrades/beryl/overview). -## Why B20 exists +## ERC-20 compatibility -Ask an issuer what their token contract has to do beyond moving balances, and the list is long: freeze an account when a court order lands, seize a balance, pause one operation without halting the rest, tag a transfer with an invoice number, cap total supply, run a stock split, publish a dividend. Every team builds that logic again, in a custom contract, and then pays to audit it. +B20 is a superset of ERC-20. Standard calls and events keep selector and behavior parity: -That has three costs: +`transfer`, `transferFrom`, `approve`, `allowance`, `balanceOf`, `totalSupply`, `name`, `symbol`, `decimals`, `Transfer`, and `Approval`. -- **Duplicated risk.** Compliance logic is the highest-stakes code in the system, and every issuer writes their own version of it. -- **Integration friction.** Exchanges, wallets, custodians, and indexers integrate each token's bespoke surface separately. -- **Overhead.** Contract execution costs more gas than native chain functionality. +B20-specific methods extend the standard without changing the ERC-20 surface, so an app that accepts ERC-20 tokens accepts B20 with no code changes. -B20 answers all three by moving that behavior into the standard. One surface, defined once, identical across every B20 token. + +B20 tokens range from 6 to 18 decimals, so read `decimals()` rather than assuming 18. + ## Try it @@ -40,71 +40,61 @@ The B20 demo runs the standard's issuer flows in the browser, with no wallet or If the demo does not load above, [open it in a new tab](https://chain.base.org/demos/b20). -## What B20 gives you +## What B20 adds to ERC-20 - - - Minting, burning, seizing, pausing, and metadata edits are each gated by a built-in role. No custom access control contract. - - - Allowlists and blocklists, addressable by ID and combinable, decide who can send, receive, mint to, or be seized from. - - - Block one account without touching any other holder, then move its balance in a single call. - - - Pause transfers, mints, burns, or seizures independently instead of halting the whole token. - - - Attach a reference to a transfer, mint, burn, or seizure so reconciliation is a log query, not a per-customer deposit address. - - - Set an enforced ceiling on total supply, adjustable by an admin, or run uncapped. - - - Built-in ERC-2612 `permit`. New users sign an approval offchain and never need ETH to get started. - - - A contract-level metadata URI plus issuer-defined key/value fields for identifiers like a CUSIP. - - +| Feature | Behavior | +|---|---| +| [Roles](/base-chain/specs/upgrades/beryl/b20/specification#roles-model) | Role-based access control with fixed built-in roles. `MINT_ROLE`, `BURN_ROLE`, `SEIZE_ROLE`, `PAUSE_ROLE`, `UNPAUSE_ROLE`, and `METADATA_ROLE` each gate their own operations; `DEFAULT_ADMIN_ROLE` gates role and configuration changes. | +| [Policies](/base-chain/specs/upgrades/beryl/b20/specification#policy-registry) | A singleton PolicyRegistry precompile stores policies addressed by `uint64 policyId`, with `BLOCKLIST`, `ALLOWLIST`, and composite `UNION` and `INTERSECT` types. Tokens call `isAuthorized(policyId, account)` during gated operations. | +| [Policy scopes](/base-chain/specs/upgrades/beryl/b20/specification#policy-integration) | Each token stores one policy ID per scope, covering transfer sender, receiver, and executor, mint receiver, and seize holder and receiver. All default to `ALWAYS_ALLOW`. `approve` and `permit` are not policy-gated. | +| [Seize](/base-chain/specs/upgrades/beryl/b20/specification#seize) | `seizeWithMemo(from, to, amount, memo)` moves a balance and emits `Transfer`, `Memo`, and `Seized`. It skips allowance and transfer policies, requires `from` to be denied by `SEIZE_HOLDER_POLICY`, and requires `to` to be authorized by `SEIZE_RECEIVER_POLICY`. | +| [Granular pause](/base-chain/specs/upgrades/beryl/b20/specification#pause) | Pause by `PausableFeature`: `TRANSFER`, `MINT`, `BURN`, and `SEIZE` independently, rather than halting the whole token. | +| [Memos](/base-chain/specs/upgrades/beryl/b20/specification#memos) | Memo-enabled operations emit `Memo(address indexed caller, bytes32 indexed memo)` immediately after the primary event. Indexers join memo logs to the parent log with `(transactionHash, logIndex - 1)`. | +| [Supply cap](/base-chain/specs/upgrades/beryl/b20/specification#supply-cap) | Optional enforced ceiling on `totalSupply`. The sentinel `type(uint128).max` means no practical cap and is also the maximum permitted supply. | +| [ERC-2612 `permit`](/base-chain/specs/upgrades/beryl/b20/specification#erc-2612-permit--eip-712) | Signed approvals with an EIP-712 domain of `(name, version, chainId, verifyingContract)` and `version` fixed at `"1"`. ERC-1271 contract signatures are not accepted. | +| [Contract URI](/base-chain/specs/upgrades/beryl/b20/specification#contract-uri-erc-7572) | `contractURI()` returns offchain token metadata per ERC-7572, updatable under `METADATA_ROLE`. | +| [Factory](/base-chain/specs/upgrades/beryl/b20/specification#factory) | All tokens are created through a singleton factory precompile via `createB20(variant, salt, params, initCalls)`, which dispatches bootstrap calls so a token arrives configured in one transaction. | -Tokens are created through a single factory call that also runs your bootstrap configuration, so a token can arrive fully set up in one transaction. Token addresses are deterministic and carry a recognizable B20 prefix, so you know an address is a B20 token before you call it. +### Deterministic addresses -A token can also launch with no admin at all, or permanently give up its admin later. After that, admin-gated functions are uncallable forever and the admin cannot be restored. +Token addresses are derived from the deployer and a caller-chosen salt, and encode the variant in the address itself: -## The two variants +```text +[10-byte B20 prefix][1-byte variant][9-byte keccak256(deployer, salt)] +``` -Every B20 token is one of two variants, chosen at creation. +The factory exposes `getB20Address`, `isB20`, and `isB20Initialized`, so you can recognize and pre-compute a B20 address before the token exists. + +### Admin renunciation + +The final `DEFAULT_ADMIN_ROLE` holder cannot be removed with `renounceRole` or `revokeRole`; both revert with `LastAdminCannotRenounce`. `renounceLastAdmin()` is the only normal path to admin-less operation. A token can also launch admin-less by setting `initialAdmin == address(0)` at creation. Afterwards, admin-gated functions are permanently uncallable and admin resurrection is blocked. + +## Variants -| | Asset | Stablecoin | -|---|---|---| -| Built for | Real-world assets, equities, funds, long-tail tokens | Fiat-referenced stablecoins | -| Decimals | 6 to 18, set at creation | Fixed at 6 | -| Extras | Balance multipliers, announcements, batch minting, extra metadata fields | A currency code, set once at creation | +Every B20 token is one of two variants, chosen at creation. -The **Asset** variant covers corporate actions. A multiplier rescales every holder's displayed balance at once, so a 2-for-1 split is a single call rather than a migration. Announcements wrap a set of actions in a public onchain window, so a dividend and its disclosure land together. Batch minting pays out to many recipients atomically. +| Variant | Byte | Decimals | Additional surface | +|---|---:|---|---| +| `ASSET` | `0x00` | 6-18, configured at creation | Multiplier, announcements, batch mint, extra metadata | +| `STABLECOIN` | `0x01` | Fixed 6 | `currency()` | -The **Stablecoin** variant adds a currency code such as `USD`. B20 checks the code's format only; it makes no claim about reserves, legal status, or registration. +**Asset** adds `OPERATOR_ROLE` and scaled UI balances. The WAD-precision multiplier scales UI balance reads while raw balances stay unchanged, so a 2-for-1 split is one call rather than a migration or a new contract. `announce` emits `Announcement`, dispatches internal calls, and emits `EndAnnouncement`, which puts a corporate action and its disclosure onchain together. `batchMint` mints to parallel recipient and amount arrays atomically, and `extraMetadata` stores issuer-defined values such as a CUSIP. -## Who B20 is for +**Stablecoin** adds `currency()`, set once at creation and restricted to uppercase `A`-`Z`. B20 validates the code format, not the issuer claim, reserves, legal status, or external registration. -- **Stablecoin issuers** who need pause, freeze, seize, supply caps, and memo-tagged settlement as standard behavior rather than custom code. -- **Real-world asset and equity issuers** who need corporate actions, identifiers, and disclosure to work onchain. -- **Long-tail token issuers** who want a cheaper, well-understood token that every Base integrator already supports. +## Precompiles and activation -## B20 compared to a plain ERC-20 +| Precompile | Address | +|---|---| +| B20Factory | `0xB20f000000000000000000000000000000000000` | +| ActivationRegistry | `0x8453000000000000000000000000000000000001` | +| PolicyRegistry | `0x8453000000000000000000000000000000000002` | -| | Custom ERC-20 contract | B20 | -|---|---|---| -| Implementation | Solidity you deploy, audit, and maintain | Native chain precompile | -| Compliance controls | Custom code per issuer | Built into the standard | -| Reconciliation | Deposit address per customer, or a wrapper contract | Memos on the transfer itself | -| Corporate actions | Migration or a new contract | A single call (Asset variant) | -| Integrator effort | New surface per token | One surface for every B20 token | -| ERC-20 compatibility | By definition | Superset, full parity | +Each variant is gated by the ActivationRegistry, as are state-changing PolicyRegistry calls; registry read functions are always callable. `createB20` reverts with `FeatureNotActivated` if the requested variant is not active on the network, so check `isActivated` for `base.b20_asset` or `base.b20_stablecoin` before deploying. -Because B20 is a superset, choosing it costs you nothing in compatibility. Anything that reads an ERC-20 reads a B20 token without changes. + +Standard `forge` cannot simulate calls to B20 precompile addresses, because they hold no contract bytecode, and aborts with `call to non-contract address`. Use Base's Foundry build (`base-forge`, `base-cast`, [`base-anvil`](https://github.com/base/base-anvil)), which registers the precompiles into its EVM. + ## Availability @@ -113,6 +103,14 @@ Because B20 is a superset, choosing it costs you nothing in compatibility. Anyth | Base mainnet | 2026-06-25 (Beryl) | | Base Sepolia | 2026-06-18 (Beryl) | +## When to use B20 + +- You need compliance, reconciliation, or corporate-action machinery. It ships as part of the standard, so you don't build and audit a custom contract. +- Your integrators matter. Exchanges, wallets, and indexers wire up one surface that behaves the same across every B20 token. +- Cost matters. B20 runs as a native precompile: cheaper and faster than a contract token. + +Because B20 is a superset of ERC-20, choosing it carries no compatibility trade-off. + ## Next steps @@ -125,8 +123,8 @@ Because B20 is a superset, choosing it costs you nothing in compatibility. Anyth The normative standard: roles, policies, factory, variants, and events. - - Precompile addresses, role identifiers, policy scopes, and constants. + + Precompile addresses, role identifiers, policy scopes, variant bytes, and supply-cap constants. Every method on `IB20`, `IB20Asset`, `IB20Stablecoin`, and the registries. From 22b0b3eb43188562ff284659f4e094c84256ba98 Mon Sep 17 00:00:00 2001 From: Youssef Date: Tue, 18 Aug 2026 19:17:16 +0100 Subject: [PATCH 05/11] docs: refer to EVM networks rather than Ethereum on the native AA pages The comparison of native account abstraction against ERC-4337 and EIP-7702 applies across EVM networks, not Ethereum L1 specifically. Also updates the secp256k1 descriptor on both halves of the page so the two stay consistent. Generated with Claude Code Co-Authored-By: Claude --- .../network-information/native-account-abstraction.mdx | 4 ++-- docs/base-chain/specs/upgrades/cobalt/eip-8130.mdx | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/base-chain/network-information/native-account-abstraction.mdx b/docs/base-chain/network-information/native-account-abstraction.mdx index c88683203..81683e90a 100644 --- a/docs/base-chain/network-information/native-account-abstraction.mdx +++ b/docs/base-chain/network-information/native-account-abstraction.mdx @@ -13,7 +13,7 @@ EIP-8130 is experimental and currently runs only on the [vibenet devnet](https:/ ## Why native -Smart accounts on Ethereum today work around the protocol rather than inside it, and you pay for that in infrastructure. +Smart accounts on EVM networks today work around the protocol rather than inside it, and you pay for that in infrastructure. [ERC-4337](https://eips.ethereum.org/EIPS/eip-4337) introduces an alternate mempool, bundlers, and an EntryPoint contract. Every app that wants smart account features inherits that stack, its operating cost, and its failure modes. [EIP-7702](https://eips.ethereum.org/EIPS/eip-7702) lets an externally owned account (EOA) delegate to contract code, which is simpler, but the account still validates against its single original key. @@ -51,7 +51,7 @@ This is the native session key model. An app receives an actor with exactly the -Signature validation is pluggable. Authenticator contracts implement a single `authenticate` entrypoint, and the reference set covers secp256k1 (standard Ethereum keys), P-256, and WebAuthn. +Signature validation is pluggable. Authenticator contracts implement a single `authenticate` entrypoint, and the reference set covers secp256k1 (standard EVM keys), P-256, and WebAuthn. Passkeys therefore validate at the protocol level. There is no wrapper contract and no verification cost premium for using a device credential instead of a seed phrase. diff --git a/docs/base-chain/specs/upgrades/cobalt/eip-8130.mdx b/docs/base-chain/specs/upgrades/cobalt/eip-8130.mdx index 07a7d44d2..e6a80a6c6 100644 --- a/docs/base-chain/specs/upgrades/cobalt/eip-8130.mdx +++ b/docs/base-chain/specs/upgrades/cobalt/eip-8130.mdx @@ -139,7 +139,7 @@ The reference set covers: | Authenticator | Keys | |---|---| -| secp256k1 | Standard Ethereum keys | +| secp256k1 | Standard EVM keys | | P-256 | NIST P-256 | | WebAuthn | Passkeys and platform authenticators | From 3ae34aa853ce12eee457c1aecfde7bea957fbb8e Mon Sep 17 00:00:00 2001 From: Youssef Date: Tue, 18 Aug 2026 19:56:15 +0100 Subject: [PATCH 06/11] docs: tag the native account abstraction core concept as Coming Soon EIP-8130 is experimental and runs only on the vibenet devnet, so the nav should signal that it is not yet available on mainnet or Sepolia. Generated with Claude Code Co-Authored-By: Claude --- .../network-information/native-account-abstraction.mdx | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/base-chain/network-information/native-account-abstraction.mdx b/docs/base-chain/network-information/native-account-abstraction.mdx index 81683e90a..782270e0a 100644 --- a/docs/base-chain/network-information/native-account-abstraction.mdx +++ b/docs/base-chain/network-information/native-account-abstraction.mdx @@ -1,6 +1,7 @@ --- title: "Native Account Abstraction" description: "Understand native account abstraction on Base. EIP-8130 smart accounts send ordinary transactions, with no bundlers, relays, or paymaster infrastructure." +tag: "Coming Soon" --- Native account abstraction makes smart accounts a property of the chain instead of something bolted on around it. An account records who is allowed to act for it, and how its signatures are checked, in an onchain system contract. Base validates every transaction against that configuration, so smart accounts send ordinary transactions. From c90d58fe05deab1ede349e0af84358af978a7a3f Mon Sep 17 00:00:00 2001 From: Youssef Date: Tue, 18 Aug 2026 20:10:42 +0100 Subject: [PATCH 07/11] docs: move B20 and native AA reference pages to match the Reference IA Addresses review feedback that the B20 urls had gotten unwieldy: /specs/upgrades/beryl/b20/specification/reference/** did not reflect that these pages now live under Protocol Specifications > Reference. Moves 113 files so paths match the nav: specs/upgrades/beryl/b20/specification -> specs/reference/b20 .../specification/reference/constants-and-addresses -> specs/reference/b20/constants-and-addresses .../specification/reference/errors-and-events-index -> specs/reference/b20/errors-and-events .../specification/reference/interfaces/** -> specs/reference/b20/interfaces/** specs/upgrades/beryl/b20/changelog -> specs/reference/b20/changelog specs/upgrades/cobalt/eip-8130 -> specs/reference/native-account-abstraction Rewrites 390 internal urls across 117 content files, and adds redirects covering every old path, using :slug* wildcards for the interface tree in keeping with the existing redirects. Ordered most-specific-first so the errors-and-events rename is not shadowed by the wildcard. Also reorders Core Concepts per review: the two new pages now sit after Network Fees and before Bridging and Withdrawals, rather than at the top. Generated with Claude Code Co-Authored-By: Claude --- docs/AGENTS.md | 23 ++-- docs/apps/guides/accept-b20-payments.mdx | 2 +- .../b20-token-standard.mdx | 28 ++-- .../native-account-abstraction.mdx | 2 +- .../specs/reference/b20/changelog.mdx | 40 ++++++ .../b20}/constants-and-addresses.mdx | 0 .../b20/errors-and-events.mdx} | 0 .../specification => reference/b20}/index.mdx | 4 +- .../b20/interfaces/IActivationRegistry.mdx | 37 ++++++ .../IActivationRegistry/activate.mdx | 4 +- .../interfaces/IActivationRegistry/admin.mdx | 4 +- .../IActivationRegistry/checkActivated.mdx | 4 +- .../IActivationRegistry/deactivate.mdx | 4 +- .../IActivationRegistry/isActivated.mdx | 4 +- .../specs/reference/b20/interfaces/IB20.mdx | 120 ++++++++++++++++++ .../interfaces/IB20/BURN_BLOCKED_ROLE.mdx | 6 +- .../b20}/interfaces/IB20/BURN_ROLE.mdx | 6 +- .../interfaces/IB20/DEFAULT_ADMIN_ROLE.mdx | 6 +- .../b20}/interfaces/IB20/DOMAIN_SEPARATOR.mdx | 6 +- .../b20}/interfaces/IB20/METADATA_ROLE.mdx | 6 +- .../interfaces/IB20/MINT_RECEIVER_POLICY.mdx | 6 +- .../b20}/interfaces/IB20/MINT_ROLE.mdx | 6 +- .../b20}/interfaces/IB20/PAUSE_ROLE.mdx | 6 +- .../interfaces/IB20/SEIZE_HOLDER_POLICY.mdx | 6 +- .../interfaces/IB20/SEIZE_RECEIVER_POLICY.mdx | 6 +- .../b20}/interfaces/IB20/SEIZE_ROLE.mdx | 6 +- .../IB20/TRANSFER_EXECUTOR_POLICY.mdx | 6 +- .../IB20/TRANSFER_RECEIVER_POLICY.mdx | 6 +- .../IB20/TRANSFER_SENDER_POLICY.mdx | 6 +- .../b20}/interfaces/IB20/UNPAUSE_ROLE.mdx | 6 +- .../b20}/interfaces/IB20/allowance.mdx | 6 +- .../b20}/interfaces/IB20/approve.mdx | 6 +- .../b20}/interfaces/IB20/balanceOf.mdx | 6 +- .../b20}/interfaces/IB20/burn.mdx | 4 +- .../b20}/interfaces/IB20/burnBlocked.mdx | 4 +- .../b20}/interfaces/IB20/burnWithMemo.mdx | 4 +- .../b20}/interfaces/IB20/contractURI.mdx | 6 +- .../b20}/interfaces/IB20/decimals.mdx | 6 +- .../b20}/interfaces/IB20/eip712Domain.mdx | 6 +- .../b20}/interfaces/IB20/getRoleAdmin.mdx | 4 +- .../b20}/interfaces/IB20/grantRole.mdx | 4 +- .../b20}/interfaces/IB20/hasRole.mdx | 4 +- .../b20}/interfaces/IB20/isPaused.mdx | 6 +- .../b20}/interfaces/IB20/mint.mdx | 4 +- .../b20}/interfaces/IB20/mintWithMemo.mdx | 4 +- .../b20}/interfaces/IB20/name.mdx | 6 +- .../b20}/interfaces/IB20/nonces.mdx | 6 +- .../b20}/interfaces/IB20/pause.mdx | 4 +- .../b20}/interfaces/IB20/pausedFeatures.mdx | 4 +- .../b20}/interfaces/IB20/permit.mdx | 6 +- .../b20}/interfaces/IB20/policyId.mdx | 4 +- .../interfaces/IB20/renounceLastAdmin.mdx | 4 +- .../b20}/interfaces/IB20/renounceRole.mdx | 4 +- .../b20}/interfaces/IB20/revokeRole.mdx | 4 +- .../b20}/interfaces/IB20/seizeWithMemo.mdx | 4 +- .../b20}/interfaces/IB20/setRoleAdmin.mdx | 4 +- .../b20}/interfaces/IB20/supplyCap.mdx | 6 +- .../b20}/interfaces/IB20/symbol.mdx | 6 +- .../b20}/interfaces/IB20/totalSupply.mdx | 6 +- .../b20}/interfaces/IB20/transfer.mdx | 4 +- .../b20}/interfaces/IB20/transferFrom.mdx | 4 +- .../interfaces/IB20/transferFromWithMemo.mdx | 4 +- .../b20}/interfaces/IB20/transferWithMemo.mdx | 4 +- .../b20}/interfaces/IB20/unpause.mdx | 4 +- .../interfaces/IB20/updateContractURI.mdx | 6 +- .../b20}/interfaces/IB20/updateName.mdx | 6 +- .../b20}/interfaces/IB20/updatePolicy.mdx | 4 +- .../b20}/interfaces/IB20/updateSupplyCap.mdx | 6 +- .../b20}/interfaces/IB20/updateSymbol.mdx | 6 +- .../reference/b20/interfaces/IB20Asset.mdx | 65 ++++++++++ .../IB20Asset/MAX_UI_MULTIPLIER.mdx | 2 +- .../interfaces/IB20Asset/OPERATOR_ROLE.mdx | 4 +- .../interfaces/IB20Asset/WAD_PRECISION.mdx | 4 +- .../b20}/interfaces/IB20Asset/announce.mdx | 4 +- .../b20}/interfaces/IB20Asset/balanceOfUI.mdx | 2 +- .../b20}/interfaces/IB20Asset/batchMint.mdx | 4 +- .../IB20Asset/cancelUIMultiplierUpdate.mdx | 4 +- .../b20}/interfaces/IB20Asset/effectiveAt.mdx | 2 +- .../interfaces/IB20Asset/extraMetadata.mdx | 4 +- .../interfaces/IB20Asset/fromUIAmount.mdx | 2 +- .../IB20Asset/isAnnouncementIdUsed.mdx | 4 +- .../b20}/interfaces/IB20Asset/multiplier.mdx | 4 +- .../interfaces/IB20Asset/newUIMultiplier.mdx | 2 +- .../interfaces/IB20Asset/scaledBalanceOf.mdx | 4 +- .../interfaces/IB20Asset/toRawBalance.mdx | 4 +- .../interfaces/IB20Asset/toScaledBalance.mdx | 4 +- .../b20}/interfaces/IB20Asset/toUIAmount.mdx | 2 +- .../interfaces/IB20Asset/totalSupplyUI.mdx | 2 +- .../interfaces/IB20Asset/uiMultiplier.mdx | 2 +- .../IB20Asset/updateExtraMetadata.mdx | 4 +- .../interfaces/IB20Asset/updateMultiplier.mdx | 4 +- .../IB20Asset/updateUIMultiplier.mdx | 4 +- .../b20}/interfaces/IB20Factory.mdx | 12 +- .../b20}/interfaces/IB20Factory/createB20.mdx | 4 +- .../interfaces/IB20Factory/getB20Address.mdx | 4 +- .../b20}/interfaces/IB20Factory/isB20.mdx | 4 +- .../IB20Factory/isB20Initialized.mdx | 4 +- .../b20/interfaces/IB20Stablecoin.mdx | 28 ++++ .../interfaces/IB20Stablecoin/currency.mdx | 4 +- .../b20/interfaces/IPolicyRegistry.mdx | 56 ++++++++ .../MAX_COMPOSITE_CHILD_POLICIES.mdx | 4 +- .../MIN_COMPOSITE_CHILD_POLICIES.mdx | 4 +- .../compositePolicyChildIds.mdx | 4 +- .../IPolicyRegistry/createCompositePolicy.mdx | 4 +- .../IPolicyRegistry/createPolicy.mdx | 4 +- .../createPolicyWithAccounts.mdx | 4 +- .../IPolicyRegistry/finalizeUpdateAdmin.mdx | 4 +- .../IPolicyRegistry/isAuthorized.mdx | 4 +- .../IPolicyRegistry/pendingPolicyAdmin.mdx | 4 +- .../IPolicyRegistry/policyAdmin.mdx | 4 +- .../IPolicyRegistry/policyExists.mdx | 4 +- .../IPolicyRegistry/renounceAdmin.mdx | 4 +- .../IPolicyRegistry/stageUpdateAdmin.mdx | 4 +- .../IPolicyRegistry/updateAllowlist.mdx | 4 +- .../IPolicyRegistry/updateBlocklist.mdx | 4 +- .../IPolicyRegistry/updateComposite.mdx | 4 +- .../native-account-abstraction.mdx} | 0 .../specs/upgrades/beryl/b20-playground.mdx | 8 +- .../specs/upgrades/beryl/b20/changelog.mdx | 40 ------ .../interfaces/IActivationRegistry.mdx | 37 ------ .../reference/interfaces/IB20.mdx | 120 ------------------ .../reference/interfaces/IB20Asset.mdx | 65 ---------- .../reference/interfaces/IB20Stablecoin.mdx | 28 ---- .../reference/interfaces/IPolicyRegistry.mdx | 56 -------- .../specs/upgrades/beryl/overview.mdx | 18 +-- .../specs/upgrades/cobalt/overview.mdx | 2 +- docs/docs.json | 48 +++++-- docs/get-started/launch-b20-token.mdx | 4 +- 128 files changed, 659 insertions(+), 640 deletions(-) create mode 100644 docs/base-chain/specs/reference/b20/changelog.mdx rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/constants-and-addresses.mdx (100%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference/errors-and-events-index.mdx => reference/b20/errors-and-events.mdx} (100%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification => reference/b20}/index.mdx (98%) create mode 100644 docs/base-chain/specs/reference/b20/interfaces/IActivationRegistry.mdx rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IActivationRegistry/activate.mdx (79%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IActivationRegistry/admin.mdx (71%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IActivationRegistry/checkActivated.mdx (78%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IActivationRegistry/deactivate.mdx (79%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IActivationRegistry/isActivated.mdx (74%) create mode 100644 docs/base-chain/specs/reference/b20/interfaces/IB20.mdx rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20/BURN_BLOCKED_ROLE.mdx (70%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20/BURN_ROLE.mdx (67%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20/DEFAULT_ADMIN_ROLE.mdx (72%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20/DOMAIN_SEPARATOR.mdx (72%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20/METADATA_ROLE.mdx (69%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20/MINT_RECEIVER_POLICY.mdx (76%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20/MINT_ROLE.mdx (67%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20/PAUSE_ROLE.mdx (66%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20/SEIZE_HOLDER_POLICY.mdx (74%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20/SEIZE_RECEIVER_POLICY.mdx (75%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20/SEIZE_ROLE.mdx (67%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20/TRANSFER_EXECUTOR_POLICY.mdx (75%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20/TRANSFER_RECEIVER_POLICY.mdx (73%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20/TRANSFER_SENDER_POLICY.mdx (74%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20/UNPAUSE_ROLE.mdx (67%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20/allowance.mdx (71%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20/approve.mdx (76%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20/balanceOf.mdx (69%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20/burn.mdx (80%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20/burnBlocked.mdx (88%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20/burnWithMemo.mdx (77%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20/contractURI.mdx (69%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20/decimals.mdx (67%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20/eip712Domain.mdx (79%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20/getRoleAdmin.mdx (78%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20/grantRole.mdx (81%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20/hasRole.mdx (79%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20/isPaused.mdx (70%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20/mint.mdx (83%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20/mintWithMemo.mdx (79%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20/name.mdx (67%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20/nonces.mdx (71%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20/pause.mdx (79%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20/pausedFeatures.mdx (77%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20/permit.mdx (83%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20/policyId.mdx (81%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20/renounceLastAdmin.mdx (81%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20/renounceRole.mdx (81%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20/revokeRole.mdx (83%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20/seizeWithMemo.mdx (90%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20/setRoleAdmin.mdx (81%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20/supplyCap.mdx (72%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20/symbol.mdx (67%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20/totalSupply.mdx (68%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20/transfer.mdx (86%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20/transferFrom.mdx (88%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20/transferFromWithMemo.mdx (83%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20/transferWithMemo.mdx (82%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20/unpause.mdx (79%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20/updateContractURI.mdx (74%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20/updateName.mdx (71%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20/updatePolicy.mdx (85%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20/updateSupplyCap.mdx (78%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20/updateSymbol.mdx (71%) create mode 100644 docs/base-chain/specs/reference/b20/interfaces/IB20Asset.mdx rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20Asset/MAX_UI_MULTIPLIER.mdx (81%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20Asset/OPERATOR_ROLE.mdx (78%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20Asset/WAD_PRECISION.mdx (74%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20Asset/announce.mdx (89%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20Asset/balanceOfUI.mdx (77%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20Asset/batchMint.mdx (87%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20Asset/cancelUIMultiplierUpdate.mdx (78%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20Asset/effectiveAt.mdx (78%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20Asset/extraMetadata.mdx (79%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20Asset/fromUIAmount.mdx (79%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20Asset/isAnnouncementIdUsed.mdx (76%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20Asset/multiplier.mdx (78%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20Asset/newUIMultiplier.mdx (80%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20Asset/scaledBalanceOf.mdx (76%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20Asset/toRawBalance.mdx (82%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20Asset/toScaledBalance.mdx (77%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20Asset/toUIAmount.mdx (79%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20Asset/totalSupplyUI.mdx (76%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20Asset/uiMultiplier.mdx (78%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20Asset/updateExtraMetadata.mdx (81%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20Asset/updateMultiplier.mdx (83%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20Asset/updateUIMultiplier.mdx (85%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20Factory.mdx (53%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20Factory/createB20.mdx (93%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20Factory/getB20Address.mdx (81%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20Factory/isB20.mdx (76%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20Factory/isB20Initialized.mdx (78%) create mode 100644 docs/base-chain/specs/reference/b20/interfaces/IB20Stablecoin.mdx rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IB20Stablecoin/currency.mdx (73%) create mode 100644 docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry.mdx rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IPolicyRegistry/MAX_COMPOSITE_CHILD_POLICIES.mdx (77%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IPolicyRegistry/MIN_COMPOSITE_CHILD_POLICIES.mdx (77%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IPolicyRegistry/compositePolicyChildIds.mdx (83%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IPolicyRegistry/createCompositePolicy.mdx (89%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IPolicyRegistry/createPolicy.mdx (83%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IPolicyRegistry/createPolicyWithAccounts.mdx (87%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IPolicyRegistry/finalizeUpdateAdmin.mdx (82%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IPolicyRegistry/isAuthorized.mdx (82%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IPolicyRegistry/pendingPolicyAdmin.mdx (79%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IPolicyRegistry/policyAdmin.mdx (78%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IPolicyRegistry/policyExists.mdx (77%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IPolicyRegistry/renounceAdmin.mdx (80%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IPolicyRegistry/stageUpdateAdmin.mdx (81%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IPolicyRegistry/updateAllowlist.mdx (83%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IPolicyRegistry/updateBlocklist.mdx (83%) rename docs/base-chain/specs/{upgrades/beryl/b20/specification/reference => reference/b20}/interfaces/IPolicyRegistry/updateComposite.mdx (87%) rename docs/base-chain/specs/{upgrades/cobalt/eip-8130.mdx => reference/native-account-abstraction.mdx} (100%) delete mode 100644 docs/base-chain/specs/upgrades/beryl/b20/changelog.mdx delete mode 100644 docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IActivationRegistry.mdx delete mode 100644 docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20.mdx delete mode 100644 docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset.mdx delete mode 100644 docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Stablecoin.mdx delete mode 100644 docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry.mdx diff --git a/docs/AGENTS.md b/docs/AGENTS.md index fdbf9513d..925e6cac2 100644 --- a/docs/AGENTS.md +++ b/docs/AGENTS.md @@ -12,6 +12,7 @@ description: Look up Base documentation with a compact directory-grouped index b - [Apps](./apps/llms.txt) — A step-by-step guide to building a Next.js tally app on Base using wagmi and viem, with wallet connection, contract reads and writes, and batch transaction support. - [Base Account](./base-account/llms.txt) - [Base Chain](./base-chain/llms.txt) — Start here for Base Chain docs, including concepts, network reference, node operation, APIs, and protocol specifications. +- [Docs](./docs/llms.txt) - [Get Started](./get-started/llms.txt) - [Ledgers](./ledgers/llms.txt) — An introduction to Base Ledgers, the enterprise way to run confidential payments that settle on Base. - [Static](./static/llms.txt) @@ -91,21 +92,19 @@ npx skills add base/base-skills |base-chain/specs/protocol/execution:index |base-chain/specs/protocol/execution/evm:precompiles,predeploys,preinstalls |base-chain/specs/protocol/proofs:challenger,contracts,index,proposer,registrar,tee-prover,zk-prover -|base-chain/specs/reference:configurability,glossary +|base-chain/specs/reference:configurability,glossary,native-account-abstraction +|base-chain/specs/reference/b20:changelog,constants-and-addresses,errors-and-events,index +|base-chain/specs/reference/b20/interfaces:IActivationRegistry,IB20,IB20Asset,IB20Factory,IB20Stablecoin,IPolicyRegistry +|base-chain/specs/reference/b20/interfaces/IActivationRegistry:activate,admin,checkActivated,deactivate,isActivated +|base-chain/specs/reference/b20/interfaces/IB20:BURN_BLOCKED_ROLE,BURN_ROLE,DEFAULT_ADMIN_ROLE,DOMAIN_SEPARATOR,METADATA_ROLE,MINT_RECEIVER_POLICY,MINT_ROLE,PAUSE_ROLE,SEIZE_HOLDER_POLICY,SEIZE_RECEIVER_POLICY,SEIZE_ROLE,TRANSFER_EXECUTOR_POLICY,TRANSFER_RECEIVER_POLICY,TRANSFER_SENDER_POLICY,UNPAUSE_ROLE,allowance,approve,balanceOf,burn,burnBlocked,burnWithMemo,contractURI,decimals,eip712Domain,getRoleAdmin,grantRole,hasRole,isPaused,mint,mintWithMemo,name,nonces,pause,pausedFeatures,permit,policyId,renounceLastAdmin,renounceRole,revokeRole,seizeWithMemo,setRoleAdmin,supplyCap,symbol,totalSupply,transfer,transferFrom,transferFromWithMemo,transferWithMemo,unpause,updateContractURI,updateName,updatePolicy,updateSupplyCap,updateSymbol +|base-chain/specs/reference/b20/interfaces/IB20Asset:MAX_UI_MULTIPLIER,OPERATOR_ROLE,WAD_PRECISION,announce,balanceOfUI,batchMint,cancelUIMultiplierUpdate,effectiveAt,extraMetadata,fromUIAmount,isAnnouncementIdUsed,multiplier,newUIMultiplier,scaledBalanceOf,toRawBalance,toScaledBalance,toUIAmount,totalSupplyUI,uiMultiplier,updateExtraMetadata,updateMultiplier,updateUIMultiplier +|base-chain/specs/reference/b20/interfaces/IB20Factory:createB20,getB20Address,isB20,isB20Initialized +|base-chain/specs/reference/b20/interfaces/IB20Stablecoin:currency +|base-chain/specs/reference/b20/interfaces/IPolicyRegistry:MAX_COMPOSITE_CHILD_POLICIES,MIN_COMPOSITE_CHILD_POLICIES,compositePolicyChildIds,createCompositePolicy,createPolicy,createPolicyWithAccounts,finalizeUpdateAdmin,isAuthorized,pendingPolicyAdmin,policyAdmin,policyExists,renounceAdmin,stageUpdateAdmin,updateAllowlist,updateBlocklist,updateComposite |base-chain/specs/upgrades/azul:exec-engine,node-upgrade,overview,proofs |base-chain/specs/upgrades/beryl:b20-playground,overview -|base-chain/specs/upgrades/beryl/b20:changelog -|base-chain/specs/upgrades/beryl/b20/specification:index -|base-chain/specs/upgrades/beryl/b20/specification/reference:constants-and-addresses,errors-and-events-index -|base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces:IActivationRegistry,IB20,IB20Asset,IB20Factory,IB20Stablecoin,IPolicyRegistry -|base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IActivationRegistry:activate,admin,checkActivated,deactivate,isActivated -|base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20:BURN_BLOCKED_ROLE,BURN_ROLE,DEFAULT_ADMIN_ROLE,DOMAIN_SEPARATOR,METADATA_ROLE,MINT_RECEIVER_POLICY,MINT_ROLE,PAUSE_ROLE,SEIZE_HOLDER_POLICY,SEIZE_RECEIVER_POLICY,SEIZE_ROLE,TRANSFER_EXECUTOR_POLICY,TRANSFER_RECEIVER_POLICY,TRANSFER_SENDER_POLICY,UNPAUSE_ROLE,allowance,approve,balanceOf,burn,burnBlocked,burnWithMemo,contractURI,decimals,eip712Domain,getRoleAdmin,grantRole,hasRole,isPaused,mint,mintWithMemo,name,nonces,pause,pausedFeatures,permit,policyId,renounceLastAdmin,renounceRole,revokeRole,seizeWithMemo,setRoleAdmin,supplyCap,symbol,totalSupply,transfer,transferFrom,transferFromWithMemo,transferWithMemo,unpause,updateContractURI,updateName,updatePolicy,updateSupplyCap,updateSymbol -|base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset:MAX_UI_MULTIPLIER,OPERATOR_ROLE,WAD_PRECISION,announce,balanceOfUI,batchMint,cancelUIMultiplierUpdate,effectiveAt,extraMetadata,fromUIAmount,isAnnouncementIdUsed,multiplier,newUIMultiplier,scaledBalanceOf,toRawBalance,toScaledBalance,toUIAmount,totalSupplyUI,uiMultiplier,updateExtraMetadata,updateMultiplier,updateUIMultiplier -|base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Factory:createB20,getB20Address,isB20,isB20Initialized -|base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Stablecoin:currency -|base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry:MAX_COMPOSITE_CHILD_POLICIES,MIN_COMPOSITE_CHILD_POLICIES,compositePolicyChildIds,createCompositePolicy,createPolicy,createPolicyWithAccounts,finalizeUpdateAdmin,isAuthorized,pendingPolicyAdmin,policyAdmin,policyExists,renounceAdmin,stageUpdateAdmin,updateAllowlist,updateBlocklist,updateComposite |base-chain/specs/upgrades/canyon:overview -|base-chain/specs/upgrades/cobalt:eip-8130,overview +|base-chain/specs/upgrades/cobalt:overview |base-chain/specs/upgrades/delta:overview,span-batches |base-chain/specs/upgrades/ecotone:derivation,l1-attributes,overview |base-chain/specs/upgrades/fjord:derivation,exec-engine,overview,predeploys diff --git a/docs/apps/guides/accept-b20-payments.mdx b/docs/apps/guides/accept-b20-payments.mdx index cb855a321..887a49253 100644 --- a/docs/apps/guides/accept-b20-payments.mdx +++ b/docs/apps/guides/accept-b20-payments.mdx @@ -56,6 +56,6 @@ Call `publicClient.simulateContract` with the same arguments before sending. It ## Related pages -- [B20 token standard](/base-chain/specs/upgrades/beryl/b20/specification): the full interface, including memos, policies, pausing, and roles. +- [B20 token standard](/base-chain/specs/reference/b20): the full interface, including memos, policies, pausing, and roles. - [Query B20 events](https://docs.cdp.coinbase.com/data/sql-api/b20-events): index `Transfer` and `Memo` events with the CDP SQL API to reconcile payments against orders at scale. - [Launch a B20 token](/get-started/launch-b20-token): create your own B20 token. \ No newline at end of file diff --git a/docs/base-chain/network-information/b20-token-standard.mdx b/docs/base-chain/network-information/b20-token-standard.mdx index 8b9590f68..e2bb2932f 100644 --- a/docs/base-chain/network-information/b20-token-standard.mdx +++ b/docs/base-chain/network-information/b20-token-standard.mdx @@ -44,16 +44,16 @@ If the demo does not load above, [open it in a new tab](https://chain.base.org/d | Feature | Behavior | |---|---| -| [Roles](/base-chain/specs/upgrades/beryl/b20/specification#roles-model) | Role-based access control with fixed built-in roles. `MINT_ROLE`, `BURN_ROLE`, `SEIZE_ROLE`, `PAUSE_ROLE`, `UNPAUSE_ROLE`, and `METADATA_ROLE` each gate their own operations; `DEFAULT_ADMIN_ROLE` gates role and configuration changes. | -| [Policies](/base-chain/specs/upgrades/beryl/b20/specification#policy-registry) | A singleton PolicyRegistry precompile stores policies addressed by `uint64 policyId`, with `BLOCKLIST`, `ALLOWLIST`, and composite `UNION` and `INTERSECT` types. Tokens call `isAuthorized(policyId, account)` during gated operations. | -| [Policy scopes](/base-chain/specs/upgrades/beryl/b20/specification#policy-integration) | Each token stores one policy ID per scope, covering transfer sender, receiver, and executor, mint receiver, and seize holder and receiver. All default to `ALWAYS_ALLOW`. `approve` and `permit` are not policy-gated. | -| [Seize](/base-chain/specs/upgrades/beryl/b20/specification#seize) | `seizeWithMemo(from, to, amount, memo)` moves a balance and emits `Transfer`, `Memo`, and `Seized`. It skips allowance and transfer policies, requires `from` to be denied by `SEIZE_HOLDER_POLICY`, and requires `to` to be authorized by `SEIZE_RECEIVER_POLICY`. | -| [Granular pause](/base-chain/specs/upgrades/beryl/b20/specification#pause) | Pause by `PausableFeature`: `TRANSFER`, `MINT`, `BURN`, and `SEIZE` independently, rather than halting the whole token. | -| [Memos](/base-chain/specs/upgrades/beryl/b20/specification#memos) | Memo-enabled operations emit `Memo(address indexed caller, bytes32 indexed memo)` immediately after the primary event. Indexers join memo logs to the parent log with `(transactionHash, logIndex - 1)`. | -| [Supply cap](/base-chain/specs/upgrades/beryl/b20/specification#supply-cap) | Optional enforced ceiling on `totalSupply`. The sentinel `type(uint128).max` means no practical cap and is also the maximum permitted supply. | -| [ERC-2612 `permit`](/base-chain/specs/upgrades/beryl/b20/specification#erc-2612-permit--eip-712) | Signed approvals with an EIP-712 domain of `(name, version, chainId, verifyingContract)` and `version` fixed at `"1"`. ERC-1271 contract signatures are not accepted. | -| [Contract URI](/base-chain/specs/upgrades/beryl/b20/specification#contract-uri-erc-7572) | `contractURI()` returns offchain token metadata per ERC-7572, updatable under `METADATA_ROLE`. | -| [Factory](/base-chain/specs/upgrades/beryl/b20/specification#factory) | All tokens are created through a singleton factory precompile via `createB20(variant, salt, params, initCalls)`, which dispatches bootstrap calls so a token arrives configured in one transaction. | +| [Roles](/base-chain/specs/reference/b20#roles-model) | Role-based access control with fixed built-in roles. `MINT_ROLE`, `BURN_ROLE`, `SEIZE_ROLE`, `PAUSE_ROLE`, `UNPAUSE_ROLE`, and `METADATA_ROLE` each gate their own operations; `DEFAULT_ADMIN_ROLE` gates role and configuration changes. | +| [Policies](/base-chain/specs/reference/b20#policy-registry) | A singleton PolicyRegistry precompile stores policies addressed by `uint64 policyId`, with `BLOCKLIST`, `ALLOWLIST`, and composite `UNION` and `INTERSECT` types. Tokens call `isAuthorized(policyId, account)` during gated operations. | +| [Policy scopes](/base-chain/specs/reference/b20#policy-integration) | Each token stores one policy ID per scope, covering transfer sender, receiver, and executor, mint receiver, and seize holder and receiver. All default to `ALWAYS_ALLOW`. `approve` and `permit` are not policy-gated. | +| [Seize](/base-chain/specs/reference/b20#seize) | `seizeWithMemo(from, to, amount, memo)` moves a balance and emits `Transfer`, `Memo`, and `Seized`. It skips allowance and transfer policies, requires `from` to be denied by `SEIZE_HOLDER_POLICY`, and requires `to` to be authorized by `SEIZE_RECEIVER_POLICY`. | +| [Granular pause](/base-chain/specs/reference/b20#pause) | Pause by `PausableFeature`: `TRANSFER`, `MINT`, `BURN`, and `SEIZE` independently, rather than halting the whole token. | +| [Memos](/base-chain/specs/reference/b20#memos) | Memo-enabled operations emit `Memo(address indexed caller, bytes32 indexed memo)` immediately after the primary event. Indexers join memo logs to the parent log with `(transactionHash, logIndex - 1)`. | +| [Supply cap](/base-chain/specs/reference/b20#supply-cap) | Optional enforced ceiling on `totalSupply`. The sentinel `type(uint128).max` means no practical cap and is also the maximum permitted supply. | +| [ERC-2612 `permit`](/base-chain/specs/reference/b20#erc-2612-permit--eip-712) | Signed approvals with an EIP-712 domain of `(name, version, chainId, verifyingContract)` and `version` fixed at `"1"`. ERC-1271 contract signatures are not accepted. | +| [Contract URI](/base-chain/specs/reference/b20#contract-uri-erc-7572) | `contractURI()` returns offchain token metadata per ERC-7572, updatable under `METADATA_ROLE`. | +| [Factory](/base-chain/specs/reference/b20#factory) | All tokens are created through a singleton factory precompile via `createB20(variant, salt, params, initCalls)`, which dispatches bootstrap calls so a token arrives configured in one transaction. | ### Deterministic addresses @@ -120,16 +120,16 @@ Because B20 is a superset of ERC-20, choosing it carries no compatibility trade- Integrate memo-tagged payments and handle B20-specific reverts. - + The normative standard: roles, policies, factory, variants, and events. - + Precompile addresses, role identifiers, policy scopes, variant bytes, and supply-cap constants. - + Every method on `IB20`, `IB20Asset`, `IB20Stablecoin`, and the registries. - + Changes to the standard, release by release. diff --git a/docs/base-chain/network-information/native-account-abstraction.mdx b/docs/base-chain/network-information/native-account-abstraction.mdx index 782270e0a..932c844ff 100644 --- a/docs/base-chain/network-information/native-account-abstraction.mdx +++ b/docs/base-chain/network-information/native-account-abstraction.mdx @@ -73,7 +73,7 @@ A transaction can name a **payer** that covers gas on the sender's behalf, so sp ## Next steps - + Chain details, client setup, a working code example, and the onchain interfaces. diff --git a/docs/base-chain/specs/reference/b20/changelog.mdx b/docs/base-chain/specs/reference/b20/changelog.mdx new file mode 100644 index 000000000..81c4ef6b7 --- /dev/null +++ b/docs/base-chain/specs/reference/b20/changelog.mdx @@ -0,0 +1,40 @@ +--- +title: "B20 changelog" +description: "Changes to the B20 token standard, release by release, including new methods, deprecations, and activation dates." +--- + +Changes to the [B20 token standard](/base-chain/specs/reference/b20). Newest first. + + +B20 method and event signatures are part of the chain's consensus surface. Existing selectors and behavior do not change; the standard grows by addition. + + +## Beryl — initial release + +| Network | Activated | +|---|---| +| Base mainnet | 2026-06-25 | +| Base Sepolia | 2026-06-18 | + +Shipped with the [Beryl upgrade](/base-chain/specs/upgrades/beryl/overview). + +**Added** + +- The B20 standard as a native precompile: a superset of ERC-20 with full selector and behavior parity for `transfer`, `transferFrom`, `approve`, `allowance`, `balanceOf`, `totalSupply`, `name`, `symbol`, `decimals`, `Transfer`, and `Approval` +- [Role-based access control](/base-chain/specs/reference/b20#roles-model) with built-in roles, user-defined roles in the role graph, and `renounceLastAdmin` for permanent admin-less operation +- [PolicyRegistry](/base-chain/specs/reference/b20#policy-registry) singleton precompile with `BLOCKLIST`, `ALLOWLIST`, `UNION`, and `INTERSECT` policy types, two-step admin transfer, and the `ALWAYS_ALLOW` and `ALWAYS_BLOCK` built-ins +- [Six policy scopes](/base-chain/specs/reference/b20#policy-integration) on every token, covering transfer sender, receiver, and executor, mint receiver, and seize holder and receiver +- [`seizeWithMemo`](/base-chain/specs/reference/b20#seize) for compliance-driven balance transfers +- [Memo variants](/base-chain/specs/reference/b20#memos) of transfer, transferFrom, mint, burn, and seize, emitting `Memo` immediately after the primary event +- [Granular pausing](/base-chain/specs/reference/b20#pause) by `PausableFeature`: `TRANSFER`, `MINT`, `BURN`, and `SEIZE` +- [Optional supply caps](/base-chain/specs/reference/b20#supply-cap), with `type(uint128).max` as the uncapped sentinel and maximum supply +- [ERC-2612 `permit`](/base-chain/specs/reference/b20#erc-2612-permit--eip-712) with an EIP-712 domain at version `"1"` +- [ERC-7572 `contractURI`](/base-chain/specs/reference/b20#contract-uri-erc-7572) and `METADATA_ROLE`-gated name, symbol, and URI updates +- [B20Factory](/base-chain/specs/reference/b20#factory) singleton precompile with deterministic, variant-encoding addresses and `initCalls` bootstrap semantics +- ActivationRegistry gating for state-changing PolicyRegistry calls +- The [`ASSET` variant](/base-chain/specs/reference/b20#asset): `OPERATOR_ROLE`, WAD-precision UI multipliers with scheduled and instant updates, announcements, `batchMint`, and issuer-defined extra metadata +- The [`STABLECOIN` variant](/base-chain/specs/reference/b20#stablecoin): fixed 6 decimals and a `currency()` code set once at creation + +**Deprecated** + +- `burnBlocked` and `BURN_BLOCKED_ROLE`, retained for backwards compatibility. New seizure flows use `seizeWithMemo`. diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses.mdx b/docs/base-chain/specs/reference/b20/constants-and-addresses.mdx similarity index 100% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses.mdx rename to docs/base-chain/specs/reference/b20/constants-and-addresses.mdx diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/errors-and-events-index.mdx b/docs/base-chain/specs/reference/b20/errors-and-events.mdx similarity index 100% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/errors-and-events-index.mdx rename to docs/base-chain/specs/reference/b20/errors-and-events.mdx diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/index.mdx b/docs/base-chain/specs/reference/b20/index.mdx similarity index 98% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/index.mdx rename to docs/base-chain/specs/reference/b20/index.mdx index a0b2ee0f0..a76152704 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/index.mdx +++ b/docs/base-chain/specs/reference/b20/index.mdx @@ -221,5 +221,5 @@ Stablecoin tokens add `currency()`, set once at creation. The value must contain ## Developer documentation - [B20 token standard](/base-chain/network-information/b20-token-standard): conceptual introduction to B20 and when to use it -- [Generated reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20) -- [B20 changelog](/base-chain/specs/upgrades/beryl/b20/changelog) +- [Generated reference](/base-chain/specs/reference/b20/interfaces/IB20) +- [B20 changelog](/base-chain/specs/reference/b20/changelog) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IActivationRegistry.mdx b/docs/base-chain/specs/reference/b20/interfaces/IActivationRegistry.mdx new file mode 100644 index 000000000..08a8a41dc --- /dev/null +++ b/docs/base-chain/specs/reference/b20/interfaces/IActivationRegistry.mdx @@ -0,0 +1,37 @@ +--- +title: "IActivationRegistry reference" +description: "Generated B20 reference for IActivationRegistry functions, events, and errors." +--- + + +## Functions + +| Function | Selector | Summary | +|---|---|---| +| [`isActivated`](/base-chain/specs/reference/b20/interfaces/IActivationRegistry/isActivated) | `0xba87af80` | Whether `feature` is currently activated. Never reverts. | +| [`checkActivated`](/base-chain/specs/reference/b20/interfaces/IActivationRegistry/checkActivated) | `0xde5bfd9b` | Reverts with `FeatureNotActivated(feature)` if `feature` is not currently activated. | +| [`admin`](/base-chain/specs/reference/b20/interfaces/IActivationRegistry/admin) | `0xf851a440` | The address authorized to call `activate` and `deactivate`. | +| [`activate`](/base-chain/specs/reference/b20/interfaces/IActivationRegistry/activate) | `0x59db6e85` | Activates `feature`. Emits `FeatureActivated`. | +| [`deactivate`](/base-chain/specs/reference/b20/interfaces/IActivationRegistry/deactivate) | `0x22eee84c` | Deactivates `feature`. Emits `FeatureDeactivated`. | + +## Events + +| Event | Topic0 | Summary | +|---|---|---| +| `FeatureActivated` | `0x8c7a0ecdbb8d96e867e43ec1aef80027976ee493c18bef399fa799ed19752451` | Emitted when `feature` is activated. | +| `FeatureDeactivated` | `0x15bf65a782c3258c63268ba9d7aed710cf9f9315d3687d9a4632ccdad7926c84` | Emitted when `feature` is deactivated. | + +## Errors + +| Error | Selector | Summary | +|---|---|---| +| `Unauthorized` | `0x8e4a23d6` | Caller is not the activation admin. | +| `AlreadyActivated` | `0x866b0041` | Feature is already activated. | +| `FeatureNotActivated` | `0xb9b2a425` | Feature is not activated. | +| `DelegateCallNotAllowed` | `0x0d89438e` | The precompile was invoked via `DELEGATECALL` or `CALLCODE`. | +| `StaticCallNotAllowed` | `0xbeaba5b7` | A state-mutating entry point was invoked from a `STATICCALL` frame. | + + + + + diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IActivationRegistry/activate.mdx b/docs/base-chain/specs/reference/b20/interfaces/IActivationRegistry/activate.mdx similarity index 79% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IActivationRegistry/activate.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IActivationRegistry/activate.mdx index c2eda9816..5aa41839e 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IActivationRegistry/activate.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IActivationRegistry/activate.mdx @@ -41,5 +41,5 @@ IActivationRegistry(target).activate(arg0); ## Related -- [IActivationRegistry reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IActivationRegistry) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IActivationRegistry reference](/base-chain/specs/reference/b20/interfaces/IActivationRegistry) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IActivationRegistry/admin.mdx b/docs/base-chain/specs/reference/b20/interfaces/IActivationRegistry/admin.mdx similarity index 71% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IActivationRegistry/admin.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IActivationRegistry/admin.mdx index a1378c1e5..136b01f7e 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IActivationRegistry/admin.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IActivationRegistry/admin.mdx @@ -37,5 +37,5 @@ IActivationRegistry(target).admin(); ## Related -- [IActivationRegistry reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IActivationRegistry) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IActivationRegistry reference](/base-chain/specs/reference/b20/interfaces/IActivationRegistry) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IActivationRegistry/checkActivated.mdx b/docs/base-chain/specs/reference/b20/interfaces/IActivationRegistry/checkActivated.mdx similarity index 78% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IActivationRegistry/checkActivated.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IActivationRegistry/checkActivated.mdx index 962653eba..cb3796c7f 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IActivationRegistry/checkActivated.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IActivationRegistry/checkActivated.mdx @@ -39,5 +39,5 @@ IActivationRegistry(target).checkActivated(arg0); ## Related -- [IActivationRegistry reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IActivationRegistry) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IActivationRegistry reference](/base-chain/specs/reference/b20/interfaces/IActivationRegistry) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IActivationRegistry/deactivate.mdx b/docs/base-chain/specs/reference/b20/interfaces/IActivationRegistry/deactivate.mdx similarity index 79% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IActivationRegistry/deactivate.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IActivationRegistry/deactivate.mdx index 2df42d5ad..9fa5a0501 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IActivationRegistry/deactivate.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IActivationRegistry/deactivate.mdx @@ -41,5 +41,5 @@ IActivationRegistry(target).deactivate(arg0); ## Related -- [IActivationRegistry reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IActivationRegistry) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IActivationRegistry reference](/base-chain/specs/reference/b20/interfaces/IActivationRegistry) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IActivationRegistry/isActivated.mdx b/docs/base-chain/specs/reference/b20/interfaces/IActivationRegistry/isActivated.mdx similarity index 74% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IActivationRegistry/isActivated.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IActivationRegistry/isActivated.mdx index f0d934418..e3bebc5ce 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IActivationRegistry/isActivated.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IActivationRegistry/isActivated.mdx @@ -38,5 +38,5 @@ IActivationRegistry(target).isActivated(arg0); ## Related -- [IActivationRegistry reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IActivationRegistry) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IActivationRegistry reference](/base-chain/specs/reference/b20/interfaces/IActivationRegistry) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20.mdx new file mode 100644 index 000000000..4ab089fae --- /dev/null +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20.mdx @@ -0,0 +1,120 @@ +--- +title: "IB20 reference" +description: "Generated B20 reference for IB20 functions, events, and errors." +--- + + +## Functions + +| Function | Selector | Summary | +|---|---|---| +| [`DEFAULT_ADMIN_ROLE`](/base-chain/specs/reference/b20/interfaces/IB20/DEFAULT_ADMIN_ROLE) | `0xa217fddf` | The default top-level admin role (`bytes32(0)`). Required to call `grantRole`, `revokeRole`, | +| [`MINT_ROLE`](/base-chain/specs/reference/b20/interfaces/IB20/MINT_ROLE) | `0xe9a9c850` | Required to call `mint` and `mintWithMemo`. | +| [`BURN_ROLE`](/base-chain/specs/reference/b20/interfaces/IB20/BURN_ROLE) | `0xb930908f` | Required to call `burn` and `burnWithMemo`. | +| [`BURN_BLOCKED_ROLE`](/base-chain/specs/reference/b20/interfaces/IB20/BURN_BLOCKED_ROLE) | `0x32ad9be8` | Required to call the deprecated `burnBlocked` (retained for | +| [`SEIZE_ROLE`](/base-chain/specs/reference/b20/interfaces/IB20/SEIZE_ROLE) | `0x3c7e9ba5` | Required to call `seizeWithMemo`. | +| [`PAUSE_ROLE`](/base-chain/specs/reference/b20/interfaces/IB20/PAUSE_ROLE) | `0x389ed267` | Required to call `pause`. | +| [`UNPAUSE_ROLE`](/base-chain/specs/reference/b20/interfaces/IB20/UNPAUSE_ROLE) | `0x309756fb` | Required to call `unpause`. | +| [`METADATA_ROLE`](/base-chain/specs/reference/b20/interfaces/IB20/METADATA_ROLE) | `0x38841782` | Required to call `updateName`, `updateSymbol`, and `updateContractURI`. | +| [`TRANSFER_SENDER_POLICY`](/base-chain/specs/reference/b20/interfaces/IB20/TRANSFER_SENDER_POLICY) | `0xd116fc21` | Policy slot consulted against `from` on every transfer (including `transferFrom`). | +| [`TRANSFER_RECEIVER_POLICY`](/base-chain/specs/reference/b20/interfaces/IB20/TRANSFER_RECEIVER_POLICY) | `0x210f521b` | Policy slot consulted against `to` on every transfer. | +| [`TRANSFER_EXECUTOR_POLICY`](/base-chain/specs/reference/b20/interfaces/IB20/TRANSFER_EXECUTOR_POLICY) | `0x724e9c53` | Policy slot consulted against `msg.sender` on `transferFrom` when distinct from `from`. | +| [`MINT_RECEIVER_POLICY`](/base-chain/specs/reference/b20/interfaces/IB20/MINT_RECEIVER_POLICY) | `0x6e5b013d` | Policy slot consulted against `to` on every mint. | +| [`SEIZE_HOLDER_POLICY`](/base-chain/specs/reference/b20/interfaces/IB20/SEIZE_HOLDER_POLICY) | `0xb279d311` | Policy slot consulted against `from` by `seizeWithMemo`. | +| [`SEIZE_RECEIVER_POLICY`](/base-chain/specs/reference/b20/interfaces/IB20/SEIZE_RECEIVER_POLICY) | `0xb31da27f` | Policy slot consulted against `to` by `seizeWithMemo`. | +| [`name`](/base-chain/specs/reference/b20/interfaces/IB20/name) | `0x06fdde03` | Token name. Set at creation, mutable via `updateName`. | +| [`symbol`](/base-chain/specs/reference/b20/interfaces/IB20/symbol) | `0x95d89b41` | Token symbol. Set at creation, mutable via `updateSymbol`. | +| [`decimals`](/base-chain/specs/reference/b20/interfaces/IB20/decimals) | `0x313ce567` | Number of decimal places. Immutable per token variant. | +| [`totalSupply`](/base-chain/specs/reference/b20/interfaces/IB20/totalSupply) | `0x18160ddd` | Total token supply currently in circulation. | +| [`balanceOf`](/base-chain/specs/reference/b20/interfaces/IB20/balanceOf) | `0x70a08231` | Balance of `account`. | +| [`allowance`](/base-chain/specs/reference/b20/interfaces/IB20/allowance) | `0xdd62ed3e` | Allowance granted by `owner` to `spender`. | +| [`transfer`](/base-chain/specs/reference/b20/interfaces/IB20/transfer) | `0xa9059cbb` | Transfers `amount` from `msg.sender` to `to`. Emits `Transfer`. | +| [`transferFrom`](/base-chain/specs/reference/b20/interfaces/IB20/transferFrom) | `0x23b872dd` | Transfers `amount` from `from` to `to` using `msg.sender`'s allowance. Emits `Transfer`. | +| [`approve`](/base-chain/specs/reference/b20/interfaces/IB20/approve) | `0x095ea7b3` | Sets `spender`'s allowance to `amount`. Not gated by any policy or by pause. Emits `Approval`. | +| [`updateName`](/base-chain/specs/reference/b20/interfaces/IB20/updateName) | `0x84da92a7` | Updates the token's `name`. Emits `NameUpdated` followed by `EIP712DomainChanged`. | +| [`updateSymbol`](/base-chain/specs/reference/b20/interfaces/IB20/updateSymbol) | `0x537f5312` | Updates the token's `symbol`. Emits `SymbolUpdated`. | +| [`transferWithMemo`](/base-chain/specs/reference/b20/interfaces/IB20/transferWithMemo) | `0x95777d59` | Same as `transfer`, plus emits `Memo` immediately after the standard `Transfer` event. | +| [`transferFromWithMemo`](/base-chain/specs/reference/b20/interfaces/IB20/transferFromWithMemo) | `0x929c2539` | Same as `transferFrom`, plus emits `Memo` immediately after the standard `Transfer` event. | +| [`mint`](/base-chain/specs/reference/b20/interfaces/IB20/mint) | `0x40c10f19` | Mints `amount` to `to`. Emits `Transfer(address(0), to, amount)`. | +| [`mintWithMemo`](/base-chain/specs/reference/b20/interfaces/IB20/mintWithMemo) | `0xe44f0b12` | Same as `mint`, plus emits `Memo` immediately after the standard `Transfer` event. | +| [`burn`](/base-chain/specs/reference/b20/interfaces/IB20/burn) | `0x42966c68` | Burns `amount` from the caller's own balance. Not subject to any policy. | +| [`burnWithMemo`](/base-chain/specs/reference/b20/interfaces/IB20/burnWithMemo) | `0x38f23b0b` | Same as `burn`, plus emits `Memo` immediately after the standard `Transfer` event. | +| [`burnBlocked`](/base-chain/specs/reference/b20/interfaces/IB20/burnBlocked) | `0xec0cf3dc` | DEPRECATED. Burns `amount` from a `from` account that is blocked under `TRANSFER_SENDER_POLICY`. | +| [`seizeWithMemo`](/base-chain/specs/reference/b20/interfaces/IB20/seizeWithMemo) | `0xf916d81b` | Seizes `amount` of `from`'s balance and reassigns it to `to` in a single admin operation. | +| [`hasRole`](/base-chain/specs/reference/b20/interfaces/IB20/hasRole) | `0x91d14854` | Whether `account` is a member of `role`. User-defined roles are supported and have no | +| [`getRoleAdmin`](/base-chain/specs/reference/b20/interfaces/IB20/getRoleAdmin) | `0x248a9ca3` | The role required to grant or revoke `role`. Defaults to `DEFAULT_ADMIN_ROLE` if not | +| [`grantRole`](/base-chain/specs/reference/b20/interfaces/IB20/grantRole) | `0x2f2ff15d` | Grants `role` to `account`. Emits `RoleGranted`. | +| [`revokeRole`](/base-chain/specs/reference/b20/interfaces/IB20/revokeRole) | `0xd547741f` | Revokes `role` from `account`. Emits `RoleRevoked`. | +| [`renounceRole`](/base-chain/specs/reference/b20/interfaces/IB20/renounceRole) | `0x36568abe` | Caller renounces `role` for themselves. Emits `RoleRevoked`. | +| [`renounceLastAdmin`](/base-chain/specs/reference/b20/interfaces/IB20/renounceLastAdmin) | `0x6f79e3d7` | Permanently transitions the token to a zero-admin state. Revokes `DEFAULT_ADMIN_ROLE` | +| [`setRoleAdmin`](/base-chain/specs/reference/b20/interfaces/IB20/setRoleAdmin) | `0x1e4e0091` | Sets the admin role for `role`. Emits `RoleAdminChanged`. | +| [`pausedFeatures`](/base-chain/specs/reference/b20/interfaces/IB20/pausedFeatures) | `0xde9997e3` | The `PausableFeature`s currently paused on this token. Order is implementation-defined; | +| [`isPaused`](/base-chain/specs/reference/b20/interfaces/IB20/isPaused) | `0x165c44bc` | Whether `feature` is currently paused. O(1). | +| [`pause`](/base-chain/specs/reference/b20/interfaces/IB20/pause) | `0x9f98bd2d` | Pauses each of `features`. Additive: features already paused remain paused; duplicates | +| [`unpause`](/base-chain/specs/reference/b20/interfaces/IB20/unpause) | `0xb61b2ebc` | Unpauses each of `features`. Features not listed are unaffected; duplicates are idempotent. | +| [`policyId`](/base-chain/specs/reference/b20/interfaces/IB20/policyId) | `0xdb3de624` | The current policy ID configured for `policyScope`. Returns `0` (always-allow built-in) | +| [`updatePolicy`](/base-chain/specs/reference/b20/interfaces/IB20/updatePolicy) | `0xadf9c4ea` | Updates the policy ID assigned to `policyScope`. Takes effect immediately for the next | +| [`supplyCap`](/base-chain/specs/reference/b20/interfaces/IB20/supplyCap) | `0x8f770ad0` | The maximum total supply enforced on `mint`. Capped at `type(uint128).max`, which | +| [`updateSupplyCap`](/base-chain/specs/reference/b20/interfaces/IB20/updateSupplyCap) | `0xe5a97f07` | Sets a new supply cap. May be raised or lowered freely, but never below current | +| [`DOMAIN_SEPARATOR`](/base-chain/specs/reference/b20/interfaces/IB20/DOMAIN_SEPARATOR) | `0x3644e515` | The current EIP-712 domain separator for this token. Recomputed on each call so it | +| [`nonces`](/base-chain/specs/reference/b20/interfaces/IB20/nonces) | `0x7ecebe00` | The current EIP-2612 permit nonce for `owner`. Incremented by 1 on each successful `permit`. | +| [`permit`](/base-chain/specs/reference/b20/interfaces/IB20/permit) | `0xd505accf` | EIP-2612 permit. Recovers `owner` via ECDSA from `(v, r, s)`. EOA signatures only; | +| [`eip712Domain`](/base-chain/specs/reference/b20/interfaces/IB20/eip712Domain) | `0x84b0196e` | ERC-5267 EIP-712 domain introspection. | +| [`contractURI`](/base-chain/specs/reference/b20/interfaces/IB20/contractURI) | `0xe8a3d485` | Off-chain URI pointing at contract-level metadata for this token, per ERC-7572. | +| [`updateContractURI`](/base-chain/specs/reference/b20/interfaces/IB20/updateContractURI) | `0x7e5b1e24` | Updates `contractURI`. Emits the parameterless `ContractURIUpdated` event per ERC-7572; | + +## Events + +| Event | Topic0 | Summary | +|---|---|---| +| `Transfer` | `0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef` | ERC-20 transfer event. Emitted on every successful transfer (including memo'd variants), | +| `Approval` | `0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925` | ERC-20 approval event. Emitted by `approve` and `permit`. | +| `Memo` | `0x6989f5818dcfd11f8cd53b27c94cec33dae1589735f03e639cba54553a1825e8` | Emitted by `transferWithMemo`, `transferFromWithMemo`, `mintWithMemo`, and `burnWithMemo` | +| `BurnedBlocked` | `0x0b552e96653fd6842da37c477005d3b5c08a8c7d3631b1f43787b2dc9a1006a3` | Emitted by the deprecated `burnBlocked` in addition to `Transfer(from, address(0), amount)`. | +| `Seized` | `0xa9aec5d8b86e2fa2fd6ac3af62f2622e3dfdab1967d4cbbb56a5df7d74cb887c` | Emitted by `seizeWithMemo` in addition to `Transfer(from, to, amount)` (and the | +| `RoleGranted` | `0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d` | Emitted when `account` is granted `role`. `sender` is the originating caller. | +| `RoleRevoked` | `0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b` | Emitted when `role` is revoked from `account`. `sender` is the originating caller | +| `RoleAdminChanged` | `0xbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff` | Emitted by `setRoleAdmin` when the admin role for `role` changes. | +| `LastAdminRenounced` | `0xe8d3a9872e7ca325571ff1e4c51ddd69090a0345240cc605ccde365ec867cc67` | Emitted by `renounceLastAdmin` in addition to the standard | +| `Paused` | `0x43e072977b8112813d7c2aa0b63d3c121c1fe3e714e6d2eacb5735fe4027e976` | Emitted by `pause`. `features` is the argument to the call (not the resulting paused state). | +| `Unpaused` | `0xdc6281474ea3dea2a856e225c7ba3edf427de9164495817c4d49a595e683fed4` | Emitted by `unpause`. `features` is the argument to the call (not the resulting paused state). | +| `PolicyUpdated` | `0x8b4790f7ff717fc8f60f07ae099e47ef318dc04b37ae98056b50a22b79056626` | Emitted by `updatePolicy` when a token's policy slot is changed. Initial slot assignment at | +| `SupplyCapUpdated` | `0x6d14f44808ce024f263432bc38d019a9951fbe674e9898b54844dbc8dc09c23a` | Emitted by `updateSupplyCap`. | +| `ContractURIUpdated` | `0xa5d4097edda6d87cb9329af83fb3712ef77eeb13738ffe43cc35a4ce305ad962` | Emitted by `updateContractURI`. Per ERC-7572, parameterless: integrators re-fetch `contractURI()`. | +| `NameUpdated` | `0x74321da206c1b9fa34367f7ece59ca49371dcd13820b9a5c3767ae1ecceed51a` | Emitted by `updateName`. Carries the new name string. | +| `SymbolUpdated` | `0x64e8b5c6dcea43dd79766bb3b8af7c45968d12b68c960cf2da23856f34d598d4` | Emitted by `updateSymbol`. Carries the new symbol string. | +| `EIP712DomainChanged` | `0x0a6387c9ea3628b88a633bb4f3b151770f70085117a15f9bf3787cda53f13d31` | ERC-5267 domain-change signal. Emitted exactly once per successful `updateName` call, | + +## Errors + +| Error | Selector | Summary | +|---|---|---| +| `NonPayable` | `0x6fb1b0e9` | ETH was attached to a call targeting a nonpayable token selector. | +| `AccessControlUnauthorizedAccount` | `0xe2517d3f` | `account` does not hold `neededRole`. | +| `Unauthorized` | `0x82b42900` | Caller failed a positional authorization check that is not expressible as "missing role X". | +| `ContractPaused` | `0xf9df5ac9` | The `PausableFeature` covering this operation is currently paused. | +| `InsufficientAllowance` | `0x192b9e4e` | `spender`'s allowance is less than `needed` for the requested `transferFrom`. | +| `InsufficientBalance` | `0xdb42144d` | `sender`'s balance is less than `needed` for the requested transfer or burn. | +| `InvalidSender` | `0x4c14f64c` | The transfer's source address is invalid (typically `address(0)`). | +| `InvalidReceiver` | `0x9cfea583` | The transfer's destination address is invalid (typically `address(0)`). | +| `InvalidApprover` | `0x8bc146c4` | The approval's `owner` address is invalid (typically `address(0)`). | +| `InvalidSpender` | `0x4e15efda` | The approval's `spender` address is invalid (typically `address(0)`). | +| `InvalidAmount` | `0x2c5211c6` | An amount argument was zero where a non-zero value is required. Not used for ERC-20 amount arguments. | +| `EmptyFeatureSet` | `0x4861ff45` | An empty array was passed to a function that requires at least one element. | +| `InvalidSupplyCap` | `0x0a3780ce` | The proposed supply cap is outside the permitted range: below the current | +| `SupplyCapExceeded` | `0x4b344b11` | The mint would push `totalSupply` past the configured cap. | +| `PolicyForbids` | `0xa43fec12` | A policy slot denied the operation. | +| `PolicyNotFound` | `0xcccad523` | The provided policy ID does not exist in the policy registry. | +| `UnsupportedPolicyType` | `0xcdd98a4a` | `policyScope` is not a slot this token (or its variant) supports. | +| `AccountNotSeizable` | `0x91dbbc8d` | `seizeWithMemo` was called against a `from` that is currently authorized under | +| `AccountNotBlocked` | `0x64a5cb46` | The deprecated `burnBlocked` was called against a `from` that is currently authorized under | +| `ExpiredSignature` | `0xbd2a913c` | An EIP-2612 `permit` was submitted with a `deadline` strictly less than `block.timestamp`. | +| `InvalidSigner` | `0x7ba5ffb5` | ECDSA recovery on an EIP-2612 `permit` returned `signer`, which does not match the claimed `owner`. | +| `LastAdminCannotRenounce` | `0x361513e7` | `renounceRole(DEFAULT_ADMIN_ROLE, ...)` was called by the sole remaining admin. | +| `NotSoleAdmin` | `0x2a98e73b` | `renounceLastAdmin()` was called when other accounts also hold `DEFAULT_ADMIN_ROLE`. | +| `AccessControlBadConfirmation` | `0x6697b232` | The `callerConfirmation` argument to `renounceRole` was not `msg.sender`. | + + + + + diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/BURN_BLOCKED_ROLE.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/BURN_BLOCKED_ROLE.mdx similarity index 70% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/BURN_BLOCKED_ROLE.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20/BURN_BLOCKED_ROLE.mdx index db0fbf144..c5673ec54 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/BURN_BLOCKED_ROLE.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/BURN_BLOCKED_ROLE.mdx @@ -4,7 +4,7 @@ description: "Generated B20 reference for BURN_BLOCKED_ROLE()." --- -[Related concept](/base-chain/specs/upgrades/beryl/b20/specification) +[Related concept](/base-chain/specs/reference/b20) ## Signature @@ -39,5 +39,5 @@ IB20(target).BURN_BLOCKED_ROLE(); ## Related -- [IB20 reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/BURN_ROLE.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/BURN_ROLE.mdx similarity index 67% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/BURN_ROLE.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20/BURN_ROLE.mdx index 3b6aa18a9..31cf829dd 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/BURN_ROLE.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/BURN_ROLE.mdx @@ -4,7 +4,7 @@ description: "Generated B20 reference for BURN_ROLE()." --- -[Related concept](/base-chain/specs/upgrades/beryl/b20/specification) +[Related concept](/base-chain/specs/reference/b20) ## Signature @@ -38,5 +38,5 @@ IB20(target).BURN_ROLE(); ## Related -- [IB20 reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/DEFAULT_ADMIN_ROLE.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/DEFAULT_ADMIN_ROLE.mdx similarity index 72% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/DEFAULT_ADMIN_ROLE.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20/DEFAULT_ADMIN_ROLE.mdx index dfa386aa7..2b5d11617 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/DEFAULT_ADMIN_ROLE.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/DEFAULT_ADMIN_ROLE.mdx @@ -4,7 +4,7 @@ description: "Generated B20 reference for DEFAULT_ADMIN_ROLE()." --- -[Related concept](/base-chain/specs/upgrades/beryl/b20/specification) +[Related concept](/base-chain/specs/reference/b20) ## Signature @@ -39,5 +39,5 @@ IB20(target).DEFAULT_ADMIN_ROLE(); ## Related -- [IB20 reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/DOMAIN_SEPARATOR.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/DOMAIN_SEPARATOR.mdx similarity index 72% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/DOMAIN_SEPARATOR.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20/DOMAIN_SEPARATOR.mdx index 92e4e8854..d9e9c0f0f 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/DOMAIN_SEPARATOR.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/DOMAIN_SEPARATOR.mdx @@ -4,7 +4,7 @@ description: "Generated B20 reference for DOMAIN_SEPARATOR()." --- -[Related concept](/base-chain/specs/upgrades/beryl/b20/specification) +[Related concept](/base-chain/specs/reference/b20) ## Signature @@ -39,5 +39,5 @@ IB20(target).DOMAIN_SEPARATOR(); ## Related -- [IB20 reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/METADATA_ROLE.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/METADATA_ROLE.mdx similarity index 69% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/METADATA_ROLE.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20/METADATA_ROLE.mdx index 7f0279ad8..b4bbaa31f 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/METADATA_ROLE.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/METADATA_ROLE.mdx @@ -4,7 +4,7 @@ description: "Generated B20 reference for METADATA_ROLE()." --- -[Related concept](/base-chain/specs/upgrades/beryl/b20/specification) +[Related concept](/base-chain/specs/reference/b20) ## Signature @@ -38,5 +38,5 @@ IB20(target).METADATA_ROLE(); ## Related -- [IB20 reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/MINT_RECEIVER_POLICY.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/MINT_RECEIVER_POLICY.mdx similarity index 76% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/MINT_RECEIVER_POLICY.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20/MINT_RECEIVER_POLICY.mdx index 55897fec4..d08424ac4 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/MINT_RECEIVER_POLICY.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/MINT_RECEIVER_POLICY.mdx @@ -4,7 +4,7 @@ description: "Generated B20 reference for MINT_RECEIVER_POLICY()." --- -[Related concept](/base-chain/specs/upgrades/beryl/b20/specification) +[Related concept](/base-chain/specs/reference/b20) ## Signature @@ -41,5 +41,5 @@ IB20(target).MINT_RECEIVER_POLICY(); ## Related -- [IB20 reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/MINT_ROLE.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/MINT_ROLE.mdx similarity index 67% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/MINT_ROLE.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20/MINT_ROLE.mdx index f79a3c624..dc1372a1b 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/MINT_ROLE.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/MINT_ROLE.mdx @@ -4,7 +4,7 @@ description: "Generated B20 reference for MINT_ROLE()." --- -[Related concept](/base-chain/specs/upgrades/beryl/b20/specification) +[Related concept](/base-chain/specs/reference/b20) ## Signature @@ -38,5 +38,5 @@ IB20(target).MINT_ROLE(); ## Related -- [IB20 reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/PAUSE_ROLE.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/PAUSE_ROLE.mdx similarity index 66% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/PAUSE_ROLE.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20/PAUSE_ROLE.mdx index 1fadb01c9..d5e20ca89 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/PAUSE_ROLE.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/PAUSE_ROLE.mdx @@ -4,7 +4,7 @@ description: "Generated B20 reference for PAUSE_ROLE()." --- -[Related concept](/base-chain/specs/upgrades/beryl/b20/specification) +[Related concept](/base-chain/specs/reference/b20) ## Signature @@ -38,5 +38,5 @@ IB20(target).PAUSE_ROLE(); ## Related -- [IB20 reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/SEIZE_HOLDER_POLICY.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/SEIZE_HOLDER_POLICY.mdx similarity index 74% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/SEIZE_HOLDER_POLICY.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20/SEIZE_HOLDER_POLICY.mdx index 79618bfd4..34f7f73a8 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/SEIZE_HOLDER_POLICY.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/SEIZE_HOLDER_POLICY.mdx @@ -4,7 +4,7 @@ description: "Generated B20 reference for SEIZE_HOLDER_POLICY()." --- -[Related concept](/base-chain/specs/upgrades/beryl/b20/specification) +[Related concept](/base-chain/specs/reference/b20) ## Signature @@ -40,5 +40,5 @@ IB20(target).SEIZE_HOLDER_POLICY(); ## Related -- [IB20 reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/SEIZE_RECEIVER_POLICY.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/SEIZE_RECEIVER_POLICY.mdx similarity index 75% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/SEIZE_RECEIVER_POLICY.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20/SEIZE_RECEIVER_POLICY.mdx index f3573f37c..f1d66127e 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/SEIZE_RECEIVER_POLICY.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/SEIZE_RECEIVER_POLICY.mdx @@ -4,7 +4,7 @@ description: "Generated B20 reference for SEIZE_RECEIVER_POLICY()." --- -[Related concept](/base-chain/specs/upgrades/beryl/b20/specification) +[Related concept](/base-chain/specs/reference/b20) ## Signature @@ -40,5 +40,5 @@ IB20(target).SEIZE_RECEIVER_POLICY(); ## Related -- [IB20 reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/SEIZE_ROLE.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/SEIZE_ROLE.mdx similarity index 67% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/SEIZE_ROLE.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20/SEIZE_ROLE.mdx index 45a0fa68d..db7e490e3 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/SEIZE_ROLE.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/SEIZE_ROLE.mdx @@ -4,7 +4,7 @@ description: "Generated B20 reference for SEIZE_ROLE()." --- -[Related concept](/base-chain/specs/upgrades/beryl/b20/specification) +[Related concept](/base-chain/specs/reference/b20) ## Signature @@ -38,5 +38,5 @@ IB20(target).SEIZE_ROLE(); ## Related -- [IB20 reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/TRANSFER_EXECUTOR_POLICY.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/TRANSFER_EXECUTOR_POLICY.mdx similarity index 75% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/TRANSFER_EXECUTOR_POLICY.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20/TRANSFER_EXECUTOR_POLICY.mdx index 621bfe5f4..0d27c7b08 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/TRANSFER_EXECUTOR_POLICY.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/TRANSFER_EXECUTOR_POLICY.mdx @@ -4,7 +4,7 @@ description: "Generated B20 reference for TRANSFER_EXECUTOR_POLICY()." --- -[Related concept](/base-chain/specs/upgrades/beryl/b20/specification) +[Related concept](/base-chain/specs/reference/b20) ## Signature @@ -41,5 +41,5 @@ IB20(target).TRANSFER_EXECUTOR_POLICY(); ## Related -- [IB20 reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/TRANSFER_RECEIVER_POLICY.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/TRANSFER_RECEIVER_POLICY.mdx similarity index 73% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/TRANSFER_RECEIVER_POLICY.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20/TRANSFER_RECEIVER_POLICY.mdx index e3eea8673..46051addd 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/TRANSFER_RECEIVER_POLICY.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/TRANSFER_RECEIVER_POLICY.mdx @@ -4,7 +4,7 @@ description: "Generated B20 reference for TRANSFER_RECEIVER_POLICY()." --- -[Related concept](/base-chain/specs/upgrades/beryl/b20/specification) +[Related concept](/base-chain/specs/reference/b20) ## Signature @@ -40,5 +40,5 @@ IB20(target).TRANSFER_RECEIVER_POLICY(); ## Related -- [IB20 reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/TRANSFER_SENDER_POLICY.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/TRANSFER_SENDER_POLICY.mdx similarity index 74% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/TRANSFER_SENDER_POLICY.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20/TRANSFER_SENDER_POLICY.mdx index 03e25cfcd..396f09679 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/TRANSFER_SENDER_POLICY.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/TRANSFER_SENDER_POLICY.mdx @@ -4,7 +4,7 @@ description: "Generated B20 reference for TRANSFER_SENDER_POLICY()." --- -[Related concept](/base-chain/specs/upgrades/beryl/b20/specification) +[Related concept](/base-chain/specs/reference/b20) ## Signature @@ -40,5 +40,5 @@ IB20(target).TRANSFER_SENDER_POLICY(); ## Related -- [IB20 reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/UNPAUSE_ROLE.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/UNPAUSE_ROLE.mdx similarity index 67% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/UNPAUSE_ROLE.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20/UNPAUSE_ROLE.mdx index b354772d2..1cde9022d 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/UNPAUSE_ROLE.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/UNPAUSE_ROLE.mdx @@ -4,7 +4,7 @@ description: "Generated B20 reference for UNPAUSE_ROLE()." --- -[Related concept](/base-chain/specs/upgrades/beryl/b20/specification) +[Related concept](/base-chain/specs/reference/b20) ## Signature @@ -38,5 +38,5 @@ IB20(target).UNPAUSE_ROLE(); ## Related -- [IB20 reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/allowance.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/allowance.mdx similarity index 71% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/allowance.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20/allowance.mdx index a909aa4fc..20e151971 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/allowance.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/allowance.mdx @@ -4,7 +4,7 @@ description: "Generated B20 reference for allowance(address,address)." --- -[Related concept](/base-chain/specs/upgrades/beryl/b20/specification) +[Related concept](/base-chain/specs/reference/b20) ## Signature @@ -40,5 +40,5 @@ IB20(target).allowance(arg0, arg1); ## Related -- [IB20 reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/approve.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/approve.mdx similarity index 76% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/approve.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20/approve.mdx index a8763c4ca..3b7ef96d0 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/approve.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/approve.mdx @@ -4,7 +4,7 @@ description: "Generated B20 reference for approve(address,uint256)." --- -[Related concept](/base-chain/specs/upgrades/beryl/b20/specification) +[Related concept](/base-chain/specs/reference/b20) ## Signature @@ -42,5 +42,5 @@ IB20(target).approve(arg0, arg1); ## Related -- [IB20 reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/balanceOf.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/balanceOf.mdx similarity index 69% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/balanceOf.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20/balanceOf.mdx index 1090ccb28..67e050836 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/balanceOf.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/balanceOf.mdx @@ -4,7 +4,7 @@ description: "Generated B20 reference for balanceOf(address)." --- -[Related concept](/base-chain/specs/upgrades/beryl/b20/specification) +[Related concept](/base-chain/specs/reference/b20) ## Signature @@ -39,5 +39,5 @@ IB20(target).balanceOf(arg0); ## Related -- [IB20 reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/burn.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/burn.mdx similarity index 80% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/burn.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20/burn.mdx index 3ecfb6ef8..8d4279997 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/burn.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/burn.mdx @@ -41,5 +41,5 @@ IB20(target).burn(arg0); ## Related -- [IB20 reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/burnBlocked.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/burnBlocked.mdx similarity index 88% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/burnBlocked.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20/burnBlocked.mdx index 4206415a6..76b867afb 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/burnBlocked.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/burnBlocked.mdx @@ -47,5 +47,5 @@ IB20(token).burnBlocked(from, amount); ## Related -- [IB20 reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/burnWithMemo.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/burnWithMemo.mdx similarity index 77% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/burnWithMemo.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20/burnWithMemo.mdx index d61ddc11c..3712d12ec 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/burnWithMemo.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/burnWithMemo.mdx @@ -39,5 +39,5 @@ IB20(target).burnWithMemo(arg0, arg1); ## Related -- [IB20 reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/contractURI.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/contractURI.mdx similarity index 69% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/contractURI.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20/contractURI.mdx index 19563c4ad..879c18afa 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/contractURI.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/contractURI.mdx @@ -4,7 +4,7 @@ description: "Generated B20 reference for contractURI()." --- -[Related concept](/base-chain/specs/upgrades/beryl/b20/specification) +[Related concept](/base-chain/specs/reference/b20) ## Signature @@ -38,5 +38,5 @@ IB20(target).contractURI(); ## Related -- [IB20 reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/decimals.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/decimals.mdx similarity index 67% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/decimals.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20/decimals.mdx index 4b10bb9c2..ba0771bb2 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/decimals.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/decimals.mdx @@ -4,7 +4,7 @@ description: "Generated B20 reference for decimals()." --- -[Related concept](/base-chain/specs/upgrades/beryl/b20/specification) +[Related concept](/base-chain/specs/reference/b20) ## Signature @@ -38,5 +38,5 @@ IB20(target).decimals(); ## Related -- [IB20 reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/eip712Domain.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/eip712Domain.mdx similarity index 79% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/eip712Domain.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20/eip712Domain.mdx index 73edcc832..e3bb9dc54 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/eip712Domain.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/eip712Domain.mdx @@ -4,7 +4,7 @@ description: "Generated B20 reference for eip712Domain()." --- -[Related concept](/base-chain/specs/upgrades/beryl/b20/specification) +[Related concept](/base-chain/specs/reference/b20) ## Signature @@ -44,5 +44,5 @@ IB20(target).eip712Domain(); ## Related -- [IB20 reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/getRoleAdmin.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/getRoleAdmin.mdx similarity index 78% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/getRoleAdmin.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20/getRoleAdmin.mdx index 70e7a952e..5f13c644e 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/getRoleAdmin.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/getRoleAdmin.mdx @@ -39,5 +39,5 @@ IB20(target).getRoleAdmin(arg0); ## Related -- [IB20 reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/grantRole.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/grantRole.mdx similarity index 81% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/grantRole.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20/grantRole.mdx index 732376ce6..77c07116a 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/grantRole.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/grantRole.mdx @@ -40,5 +40,5 @@ IB20(target).grantRole(arg0, arg1); ## Related -- [IB20 reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/hasRole.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/hasRole.mdx similarity index 79% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/hasRole.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20/hasRole.mdx index 69c9636c1..c5bf706bc 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/hasRole.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/hasRole.mdx @@ -40,5 +40,5 @@ IB20(target).hasRole(arg0, arg1); ## Related -- [IB20 reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/isPaused.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/isPaused.mdx similarity index 70% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/isPaused.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20/isPaused.mdx index c69350756..04c9eca93 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/isPaused.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/isPaused.mdx @@ -4,7 +4,7 @@ description: "Generated B20 reference for isPaused(PausableFeature)." --- -[Related concept](/base-chain/specs/upgrades/beryl/b20/specification) +[Related concept](/base-chain/specs/reference/b20) ## Signature @@ -39,5 +39,5 @@ IB20(target).isPaused(arg0); ## Related -- [IB20 reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/mint.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/mint.mdx similarity index 83% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/mint.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20/mint.mdx index 4b189a4a6..e428a9354 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/mint.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/mint.mdx @@ -43,5 +43,5 @@ IB20(target).mint(arg0, arg1); ## Related -- [IB20 reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/mintWithMemo.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/mintWithMemo.mdx similarity index 79% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/mintWithMemo.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20/mintWithMemo.mdx index 4a4bef026..f9e016457 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/mintWithMemo.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/mintWithMemo.mdx @@ -40,5 +40,5 @@ IB20(target).mintWithMemo(arg0, arg1, arg2); ## Related -- [IB20 reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/name.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/name.mdx similarity index 67% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/name.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20/name.mdx index f875efe2f..402834483 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/name.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/name.mdx @@ -4,7 +4,7 @@ description: "Generated B20 reference for name()." --- -[Related concept](/base-chain/specs/upgrades/beryl/b20/specification) +[Related concept](/base-chain/specs/reference/b20) ## Signature @@ -38,5 +38,5 @@ IB20(target).name(); ## Related -- [IB20 reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/nonces.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/nonces.mdx similarity index 71% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/nonces.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20/nonces.mdx index 207b4bb16..3d2bc33c3 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/nonces.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/nonces.mdx @@ -4,7 +4,7 @@ description: "Generated B20 reference for nonces(address)." --- -[Related concept](/base-chain/specs/upgrades/beryl/b20/specification) +[Related concept](/base-chain/specs/reference/b20) ## Signature @@ -39,5 +39,5 @@ IB20(target).nonces(arg0); ## Related -- [IB20 reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/pause.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/pause.mdx similarity index 79% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/pause.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20/pause.mdx index 4b23c1943..07ded2d28 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/pause.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/pause.mdx @@ -40,5 +40,5 @@ IB20(target).pause(arg0); ## Related -- [IB20 reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/pausedFeatures.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/pausedFeatures.mdx similarity index 77% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/pausedFeatures.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20/pausedFeatures.mdx index 1b37270f4..e1c2a45ec 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/pausedFeatures.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/pausedFeatures.mdx @@ -38,5 +38,5 @@ IB20(target).pausedFeatures(); ## Related -- [IB20 reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/permit.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/permit.mdx similarity index 83% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/permit.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20/permit.mdx index 9bc9b639f..6c14bd6a5 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/permit.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/permit.mdx @@ -4,7 +4,7 @@ description: "Generated B20 reference for permit(address,address,uint256,uint256 --- -[Related concept](/base-chain/specs/upgrades/beryl/b20/specification) +[Related concept](/base-chain/specs/reference/b20) ## Signature @@ -48,5 +48,5 @@ IB20(target).permit(arg0, arg1, arg2, arg3, arg4, arg5, arg6); ## Related -- [IB20 reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/policyId.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/policyId.mdx similarity index 81% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/policyId.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20/policyId.mdx index a62ed507d..b343ca731 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/policyId.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/policyId.mdx @@ -40,5 +40,5 @@ uint64 id = IB20(token).policyId(B20Constants.MINT_RECEIVER_POLICY); ## Related -- [IB20 reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/renounceLastAdmin.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/renounceLastAdmin.mdx similarity index 81% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/renounceLastAdmin.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20/renounceLastAdmin.mdx index c3e71eb01..a7cedfbac 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/renounceLastAdmin.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/renounceLastAdmin.mdx @@ -40,5 +40,5 @@ IB20(target).renounceLastAdmin(); ## Related -- [IB20 reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/renounceRole.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/renounceRole.mdx similarity index 81% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/renounceRole.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20/renounceRole.mdx index 55c34827b..c422fcf7e 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/renounceRole.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/renounceRole.mdx @@ -40,5 +40,5 @@ IB20(target).renounceRole(arg0, arg1); ## Related -- [IB20 reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/revokeRole.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/revokeRole.mdx similarity index 83% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/revokeRole.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20/revokeRole.mdx index d202963ee..ef326601c 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/revokeRole.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/revokeRole.mdx @@ -42,5 +42,5 @@ IB20(target).revokeRole(arg0, arg1); ## Related -- [IB20 reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/seizeWithMemo.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/seizeWithMemo.mdx similarity index 90% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/seizeWithMemo.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20/seizeWithMemo.mdx index 25fd0a689..7041adc6f 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/seizeWithMemo.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/seizeWithMemo.mdx @@ -52,5 +52,5 @@ IB20(token).seizeWithMemo(holder, destination, amount, memo); ## Related -- [IB20 reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/setRoleAdmin.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/setRoleAdmin.mdx similarity index 81% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/setRoleAdmin.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20/setRoleAdmin.mdx index 464546eb8..15d08660c 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/setRoleAdmin.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/setRoleAdmin.mdx @@ -40,5 +40,5 @@ IB20(target).setRoleAdmin(arg0, arg1); ## Related -- [IB20 reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/supplyCap.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/supplyCap.mdx similarity index 72% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/supplyCap.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20/supplyCap.mdx index e452724ab..4f41a2879 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/supplyCap.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/supplyCap.mdx @@ -4,7 +4,7 @@ description: "Generated B20 reference for supplyCap()." --- -[Related concept](/base-chain/specs/upgrades/beryl/b20/specification) +[Related concept](/base-chain/specs/reference/b20) ## Signature @@ -40,5 +40,5 @@ IB20(target).supplyCap(); ## Related -- [IB20 reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/symbol.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/symbol.mdx similarity index 67% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/symbol.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20/symbol.mdx index f8b8f9e30..056faabf5 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/symbol.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/symbol.mdx @@ -4,7 +4,7 @@ description: "Generated B20 reference for symbol()." --- -[Related concept](/base-chain/specs/upgrades/beryl/b20/specification) +[Related concept](/base-chain/specs/reference/b20) ## Signature @@ -38,5 +38,5 @@ IB20(target).symbol(); ## Related -- [IB20 reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/totalSupply.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/totalSupply.mdx similarity index 68% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/totalSupply.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20/totalSupply.mdx index 8f002eca0..a8ff3395f 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/totalSupply.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/totalSupply.mdx @@ -4,7 +4,7 @@ description: "Generated B20 reference for totalSupply()." --- -[Related concept](/base-chain/specs/upgrades/beryl/b20/specification) +[Related concept](/base-chain/specs/reference/b20) ## Signature @@ -38,5 +38,5 @@ IB20(target).totalSupply(); ## Related -- [IB20 reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/transfer.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/transfer.mdx similarity index 86% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/transfer.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20/transfer.mdx index efb393f52..50e87526d 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/transfer.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/transfer.mdx @@ -45,5 +45,5 @@ IB20(target).transfer(arg0, arg1); ## Related -- [IB20 reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/transferFrom.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/transferFrom.mdx similarity index 88% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/transferFrom.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20/transferFrom.mdx index d3c436d0e..150258fed 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/transferFrom.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/transferFrom.mdx @@ -48,5 +48,5 @@ IB20(target).transferFrom(arg0, arg1, arg2); ## Related -- [IB20 reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/transferFromWithMemo.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/transferFromWithMemo.mdx similarity index 83% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/transferFromWithMemo.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20/transferFromWithMemo.mdx index 5c8a2f699..d555f6a30 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/transferFromWithMemo.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/transferFromWithMemo.mdx @@ -42,5 +42,5 @@ IB20(target).transferFromWithMemo(arg0, arg1, arg2, arg3); ## Related -- [IB20 reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/transferWithMemo.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/transferWithMemo.mdx similarity index 82% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/transferWithMemo.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20/transferWithMemo.mdx index 890ade686..00562ebdb 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/transferWithMemo.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/transferWithMemo.mdx @@ -41,5 +41,5 @@ IB20(target).transferWithMemo(arg0, arg1, arg2); ## Related -- [IB20 reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/unpause.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/unpause.mdx similarity index 79% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/unpause.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20/unpause.mdx index 16d74d680..038d36069 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/unpause.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/unpause.mdx @@ -40,5 +40,5 @@ IB20(target).unpause(arg0); ## Related -- [IB20 reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/updateContractURI.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/updateContractURI.mdx similarity index 74% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/updateContractURI.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20/updateContractURI.mdx index eb81fdc8c..4597f3f71 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/updateContractURI.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/updateContractURI.mdx @@ -4,7 +4,7 @@ description: "Generated B20 reference for updateContractURI(string)." --- -[Related concept](/base-chain/specs/upgrades/beryl/b20/specification) +[Related concept](/base-chain/specs/reference/b20) ## Signature @@ -40,5 +40,5 @@ IB20(target).updateContractURI(arg0); ## Related -- [IB20 reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/updateName.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/updateName.mdx similarity index 71% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/updateName.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20/updateName.mdx index f64a59fd6..7528a79ff 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/updateName.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/updateName.mdx @@ -4,7 +4,7 @@ description: "Generated B20 reference for updateName(string)." --- -[Related concept](/base-chain/specs/upgrades/beryl/b20/specification) +[Related concept](/base-chain/specs/reference/b20) ## Signature @@ -39,5 +39,5 @@ IB20(target).updateName(arg0); ## Related -- [IB20 reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/updatePolicy.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/updatePolicy.mdx similarity index 85% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/updatePolicy.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20/updatePolicy.mdx index f81d858c1..5b950fac9 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/updatePolicy.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/updatePolicy.mdx @@ -42,5 +42,5 @@ IB20(token).updatePolicy(B20Constants.MINT_RECEIVER_POLICY, policyId); ## Related -- [IB20 reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/updateSupplyCap.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/updateSupplyCap.mdx similarity index 78% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/updateSupplyCap.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20/updateSupplyCap.mdx index 3a9b32283..27b728c7f 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/updateSupplyCap.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/updateSupplyCap.mdx @@ -4,7 +4,7 @@ description: "Generated B20 reference for updateSupplyCap(uint256)." --- -[Related concept](/base-chain/specs/upgrades/beryl/b20/specification) +[Related concept](/base-chain/specs/reference/b20) ## Signature @@ -41,5 +41,5 @@ IB20(target).updateSupplyCap(arg0); ## Related -- [IB20 reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/updateSymbol.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/updateSymbol.mdx similarity index 71% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/updateSymbol.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20/updateSymbol.mdx index 61ae4c378..d25beab3c 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/updateSymbol.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/updateSymbol.mdx @@ -4,7 +4,7 @@ description: "Generated B20 reference for updateSymbol(string)." --- -[Related concept](/base-chain/specs/upgrades/beryl/b20/specification) +[Related concept](/base-chain/specs/reference/b20) ## Signature @@ -39,5 +39,5 @@ IB20(target).updateSymbol(arg0); ## Related -- [IB20 reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20Asset.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset.mdx new file mode 100644 index 000000000..91831ea9e --- /dev/null +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset.mdx @@ -0,0 +1,65 @@ +--- +title: "IB20Asset reference" +description: "Generated B20 reference for IB20Asset functions, events, and errors." +--- + + +## Functions + +| Function | Selector | Summary | +|---|---|---| +| [`OPERATOR_ROLE`](/base-chain/specs/reference/b20/interfaces/IB20Asset/OPERATOR_ROLE) | `0xf5b541a6` | Required to call `announce`, `updateUIMultiplier`, `cancelUIMultiplierUpdate`, and | +| [`WAD_PRECISION`](/base-chain/specs/reference/b20/interfaces/IB20Asset/WAD_PRECISION) | `0x664808a8` | Fixed-point precision used to scale `multiplier`. Equal to `1e18`. | +| [`MAX_UI_MULTIPLIER`](/base-chain/specs/reference/b20/interfaces/IB20Asset/MAX_UI_MULTIPLIER) | `0x785c0cf0` | Maximum multiplier accepted by the setter functions. | +| [`announce`](/base-chain/specs/reference/b20/interfaces/IB20Asset/announce) | `0x595135dd` | Posts a holder-impacting announcement and atomically dispatches each entry in | +| [`isAnnouncementIdUsed`](/base-chain/specs/reference/b20/interfaces/IB20Asset/isAnnouncementIdUsed) | `0xc0da474e` | Whether `id` has previously been consumed by `announce`. | +| [`multiplier`](/base-chain/specs/reference/b20/interfaces/IB20Asset/multiplier) | `0x1b3ed722` | The current multiplier, scaled to `WAD_PRECISION`. Holder balances are stored | +| [`toScaledBalance`](/base-chain/specs/reference/b20/interfaces/IB20Asset/toScaledBalance) | `0x04f04c99` | Converts a raw balance to its scaled view: `rawBalance * multiplier / WAD_PRECISION`. | +| [`toRawBalance`](/base-chain/specs/reference/b20/interfaces/IB20Asset/toRawBalance) | `0x0ca06c44` | Converts a scaled balance back to its raw representation: | +| [`scaledBalanceOf`](/base-chain/specs/reference/b20/interfaces/IB20Asset/scaledBalanceOf) | `0x1da24f3e` | Convenience for `toUIAmount(balanceOf(account))`. | +| [`updateUIMultiplier`](/base-chain/specs/reference/b20/interfaces/IB20Asset/updateUIMultiplier) | `0x628e600f` | Schedules a UI-multiplier update to take effect at `effectiveAt`. | +| [`cancelUIMultiplierUpdate`](/base-chain/specs/reference/b20/interfaces/IB20Asset/cancelUIMultiplierUpdate) | `0x2c97a0f0` | Cancels the single live pending update, restoring the no-pending state. | +| [`updateMultiplier`](/base-chain/specs/reference/b20/interfaces/IB20Asset/updateMultiplier) | `0x5ffe6146` | Instant failsafe / emergency override — sets the current multiplier immediately and | +| [`batchMint`](/base-chain/specs/reference/b20/interfaces/IB20Asset/batchMint) | `0x68573107` | Mints `amounts[i]` to `recipients[i]` in one call. All-or-nothing: any element | +| [`extraMetadata`](/base-chain/specs/reference/b20/interfaces/IB20Asset/extraMetadata) | `0x4ddf9da0` | The value of the named metadata entry, or the empty string if not set. A | +| [`updateExtraMetadata`](/base-chain/specs/reference/b20/interfaces/IB20Asset/updateExtraMetadata) | `0xb2851ef5` | Sets, updates, or removes an extra-metadata entry. An empty `value` removes the | +| [`uiMultiplier`](/base-chain/specs/reference/b20/interfaces/IB20Asset/uiMultiplier) | `0xa60bf13d` | Returns the current ERC-8056 UI multiplier. | +| [`newUIMultiplier`](/base-chain/specs/reference/b20/interfaces/IB20Asset/newUIMultiplier) | `0xdc767007` | Returns the pending UI multiplier. | +| [`effectiveAt`](/base-chain/specs/reference/b20/interfaces/IB20Asset/effectiveAt) | `0x97a4064f` | Returns the effective-at timestamp for the pending multiplier. | +| [`balanceOfUI`](/base-chain/specs/reference/b20/interfaces/IB20Asset/balanceOfUI) | `0x437a9958` | Returns an account's UI-adjusted balance. | +| [`totalSupplyUI`](/base-chain/specs/reference/b20/interfaces/IB20Asset/totalSupplyUI) | `0x9bea6429` | Returns the UI-adjusted total supply. | +| [`toUIAmount`](/base-chain/specs/reference/b20/interfaces/IB20Asset/toUIAmount) | `0x3248d4ff` | Converts a raw amount to its UI representation. | +| [`fromUIAmount`](/base-chain/specs/reference/b20/interfaces/IB20Asset/fromUIAmount) | `0x65cd9b3c` | Converts a UI amount to its raw representation. | + +## Events + +| Event | Topic0 | Summary | +|---|---|---| +| `UIMultiplierUpdated` | `0x2205df4534432b2f60654a3fdb48737ffdaf3e9edb1a498bd985bc026b15b055` | Emitted when the UI multiplier is updated. | +| `MultiplierUpdated` | `0x4dbe4840d7465bd162f67814cea0b519567a2e0e578bcde61e7f4ced361e5a3d` | Deprecated multiplier-change event emitted by `updateMultiplier`. | +| `UIMultiplierUpdateCancelled` | `0x883856335ba5f60c18b9817c4505d3c7d3f6223dcf39516b30c508c46a5e1cad` | A scheduled multiplier update was cancelled. | +| `ExtraMetadataUpdated` | `0xd7bb345be29e78d635203d40fe0567e7ef19d5cd5cc5fcd25f768b8063e82aa1` | Emitted by `updateExtraMetadata`. An empty `value` indicates removal. | +| `Announcement` | `0xccebf8218a62875909564adef86a6f4df81503cb617221e793357d62f8e813f7` | Emitted by `announce` to open an announcement bracket. | +| `EndAnnouncement` | `0x96d64dafe2c790596430196b982ad1da3221cb3b0f4e6e2df77f2e4f71a90037` | Emitted by `announce` to close the bracket opened by the paired `Announcement` with the same `id`. | + +## Errors + +| Error | Selector | Summary | +|---|---|---| +| `AnnouncementIdAlreadyUsed` | `0xd10b3c9e` | `announce` was called with an `id` that has already been consumed. | +| `InvalidMetadataKey` | `0x86ea3abb` | `updateExtraMetadata` was called with an empty `key`. | +| `InvalidMultiplier` | `0x6f12f3dc` | A multiplier setter (`updateUIMultiplier` or `updateMultiplier`) was called with a | +| `EffectiveAtInPast` | `0x14119cf6` | `updateUIMultiplier` was called with an `effectiveAt` that is not in the future | +| `EffectiveAtTooFar` | `0x1ce214fa` | `updateUIMultiplier` was called with an `effectiveAt` above `type(uint64).max`, the | +| `UIMultiplierUpdateExists` | `0x4481a68e` | `updateUIMultiplier` was called while a live pending update already exists | +| `UIMultiplierUpdateDoesNotExist` | `0xa7d6a5ca` | `cancelUIMultiplierUpdate` was called when there is no live pending update | +| `LengthMismatch` | `0xab8b67c6` | A batched function was called with parallel arrays of differing lengths. | +| `EmptyBatch` | `0xc2e5347d` | A batched function was called with empty arrays. | +| `AnnouncementInProgress` | `0x5c5f0829` | An inner call dispatched by `announce` tried to re-invoke `announce`. | +| `InternalCallMalformed` | `0x4e2f143e` | An inner call dispatched by `announce` was shorter than four bytes. | +| `InternalCallFailed` | `0xb288a127` | An inner call dispatched by `announce` reverted with an ordinary revert; its reason is | + + + + + diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/MAX_UI_MULTIPLIER.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/MAX_UI_MULTIPLIER.mdx similarity index 81% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/MAX_UI_MULTIPLIER.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20Asset/MAX_UI_MULTIPLIER.mdx index aaa4c5224..f0b0e4598 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/MAX_UI_MULTIPLIER.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/MAX_UI_MULTIPLIER.mdx @@ -26,4 +26,4 @@ IB20Asset(target).MAX_UI_MULTIPLIER(); ## Related -- [IB20Asset reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset) +- [IB20Asset reference](/base-chain/specs/reference/b20/interfaces/IB20Asset) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/OPERATOR_ROLE.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/OPERATOR_ROLE.mdx similarity index 78% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/OPERATOR_ROLE.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20Asset/OPERATOR_ROLE.mdx index af787dcef..1fe91a19d 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/OPERATOR_ROLE.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/OPERATOR_ROLE.mdx @@ -39,5 +39,5 @@ IB20Asset(target).OPERATOR_ROLE(); ## Related -- [IB20Asset reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IB20Asset reference](/base-chain/specs/reference/b20/interfaces/IB20Asset) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/WAD_PRECISION.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/WAD_PRECISION.mdx similarity index 74% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/WAD_PRECISION.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20Asset/WAD_PRECISION.mdx index 7dc3d2b9b..b9585b2d0 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/WAD_PRECISION.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/WAD_PRECISION.mdx @@ -37,5 +37,5 @@ IB20Asset(target).WAD_PRECISION(); ## Related -- [IB20Asset reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IB20Asset reference](/base-chain/specs/reference/b20/interfaces/IB20Asset) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/announce.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/announce.mdx similarity index 89% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/announce.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20Asset/announce.mdx index ef8d7b469..4bd52fb61 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/announce.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/announce.mdx @@ -50,5 +50,5 @@ IB20Asset(target).announce(arg0, arg1, arg2, arg3); ## Related -- [IB20Asset reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IB20Asset reference](/base-chain/specs/reference/b20/interfaces/IB20Asset) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/balanceOfUI.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/balanceOfUI.mdx similarity index 77% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/balanceOfUI.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20Asset/balanceOfUI.mdx index 5fdf0b1d3..f69b789e9 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/balanceOfUI.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/balanceOfUI.mdx @@ -20,4 +20,4 @@ Returns the UI-adjusted balance of `account`. ## Related -- [IB20Asset reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset) +- [IB20Asset reference](/base-chain/specs/reference/b20/interfaces/IB20Asset) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/batchMint.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/batchMint.mdx similarity index 87% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/batchMint.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20Asset/batchMint.mdx index fd4ca2e6b..e588c2ca5 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/batchMint.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/batchMint.mdx @@ -47,5 +47,5 @@ IB20Asset(target).batchMint(arg0, arg1); ## Related -- [IB20Asset reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IB20Asset reference](/base-chain/specs/reference/b20/interfaces/IB20Asset) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/cancelUIMultiplierUpdate.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/cancelUIMultiplierUpdate.mdx similarity index 78% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/cancelUIMultiplierUpdate.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20Asset/cancelUIMultiplierUpdate.mdx index 9d673cb30..8241e3e24 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/cancelUIMultiplierUpdate.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/cancelUIMultiplierUpdate.mdx @@ -39,5 +39,5 @@ IB20Asset(target).cancelUIMultiplierUpdate(); ## Related -- [IB20Asset reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IB20Asset reference](/base-chain/specs/reference/b20/interfaces/IB20Asset) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/effectiveAt.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/effectiveAt.mdx similarity index 78% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/effectiveAt.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20Asset/effectiveAt.mdx index 756fc7bd7..b947b450a 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/effectiveAt.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/effectiveAt.mdx @@ -20,4 +20,4 @@ Returns the timestamp at which the pending UI multiplier becomes effective. ## Related -- [IB20Asset reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset) +- [IB20Asset reference](/base-chain/specs/reference/b20/interfaces/IB20Asset) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/extraMetadata.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/extraMetadata.mdx similarity index 79% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/extraMetadata.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20Asset/extraMetadata.mdx index 6c33e1711..ad97e5193 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/extraMetadata.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/extraMetadata.mdx @@ -40,5 +40,5 @@ IB20Asset(target).extraMetadata(arg0); ## Related -- [IB20Asset reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IB20Asset reference](/base-chain/specs/reference/b20/interfaces/IB20Asset) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/fromUIAmount.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/fromUIAmount.mdx similarity index 79% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/fromUIAmount.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20Asset/fromUIAmount.mdx index f117a5940..6c3e088b7 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/fromUIAmount.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/fromUIAmount.mdx @@ -20,4 +20,4 @@ Converts `uiAmount` to its raw token representation at the effective multiplier. ## Related -- [IB20Asset reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset) +- [IB20Asset reference](/base-chain/specs/reference/b20/interfaces/IB20Asset) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/isAnnouncementIdUsed.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/isAnnouncementIdUsed.mdx similarity index 76% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/isAnnouncementIdUsed.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20Asset/isAnnouncementIdUsed.mdx index d5770c808..1f8e14484 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/isAnnouncementIdUsed.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/isAnnouncementIdUsed.mdx @@ -38,5 +38,5 @@ IB20Asset(target).isAnnouncementIdUsed(arg0); ## Related -- [IB20Asset reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IB20Asset reference](/base-chain/specs/reference/b20/interfaces/IB20Asset) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/multiplier.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/multiplier.mdx similarity index 78% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/multiplier.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20Asset/multiplier.mdx index 04a498870..05a8bba09 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/multiplier.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/multiplier.mdx @@ -40,5 +40,5 @@ IB20Asset(target).multiplier(); ## Related -- [IB20Asset reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IB20Asset reference](/base-chain/specs/reference/b20/interfaces/IB20Asset) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/newUIMultiplier.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/newUIMultiplier.mdx similarity index 80% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/newUIMultiplier.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20Asset/newUIMultiplier.mdx index 8561ae239..f5dacb935 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/newUIMultiplier.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/newUIMultiplier.mdx @@ -20,4 +20,4 @@ Returns the pending UI multiplier scheduled to take effect at `effectiveAt`, rep ## Related -- [IB20Asset reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset) +- [IB20Asset reference](/base-chain/specs/reference/b20/interfaces/IB20Asset) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/scaledBalanceOf.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/scaledBalanceOf.mdx similarity index 76% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/scaledBalanceOf.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20Asset/scaledBalanceOf.mdx index e94e67ecb..5bf594a5b 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/scaledBalanceOf.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/scaledBalanceOf.mdx @@ -38,5 +38,5 @@ IB20Asset(target).scaledBalanceOf(arg0); ## Related -- [IB20Asset reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IB20Asset reference](/base-chain/specs/reference/b20/interfaces/IB20Asset) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/toRawBalance.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/toRawBalance.mdx similarity index 82% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/toRawBalance.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20Asset/toRawBalance.mdx index 3ab243139..2097f2c70 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/toRawBalance.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/toRawBalance.mdx @@ -42,5 +42,5 @@ IB20Asset(target).toRawBalance(arg0); ## Related -- [IB20Asset reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IB20Asset reference](/base-chain/specs/reference/b20/interfaces/IB20Asset) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/toScaledBalance.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/toScaledBalance.mdx similarity index 77% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/toScaledBalance.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20Asset/toScaledBalance.mdx index 11afc15d4..5c41991c8 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/toScaledBalance.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/toScaledBalance.mdx @@ -38,5 +38,5 @@ IB20Asset(target).toScaledBalance(arg0); ## Related -- [IB20Asset reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IB20Asset reference](/base-chain/specs/reference/b20/interfaces/IB20Asset) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/toUIAmount.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/toUIAmount.mdx similarity index 79% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/toUIAmount.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20Asset/toUIAmount.mdx index 9f17eca96..e3a62b098 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/toUIAmount.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/toUIAmount.mdx @@ -20,4 +20,4 @@ Converts `rawAmount` to its UI representation at the effective multiplier. ## Related -- [IB20Asset reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset) +- [IB20Asset reference](/base-chain/specs/reference/b20/interfaces/IB20Asset) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/totalSupplyUI.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/totalSupplyUI.mdx similarity index 76% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/totalSupplyUI.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20Asset/totalSupplyUI.mdx index 91b718307..6639727ed 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/totalSupplyUI.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/totalSupplyUI.mdx @@ -20,4 +20,4 @@ Returns the UI-adjusted total supply. ## Related -- [IB20Asset reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset) +- [IB20Asset reference](/base-chain/specs/reference/b20/interfaces/IB20Asset) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/uiMultiplier.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/uiMultiplier.mdx similarity index 78% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/uiMultiplier.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20Asset/uiMultiplier.mdx index deb9c85ce..00ff1bdd4 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/uiMultiplier.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/uiMultiplier.mdx @@ -20,4 +20,4 @@ Returns the current ERC-8056 UI multiplier, represented with 18 decimals (`1e18 ## Related -- [IB20Asset reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset) +- [IB20Asset reference](/base-chain/specs/reference/b20/interfaces/IB20Asset) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/updateExtraMetadata.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/updateExtraMetadata.mdx similarity index 81% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/updateExtraMetadata.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20Asset/updateExtraMetadata.mdx index f24993187..4c23ac9b8 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/updateExtraMetadata.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/updateExtraMetadata.mdx @@ -41,5 +41,5 @@ IB20Asset(target).updateExtraMetadata(arg0, arg1); ## Related -- [IB20Asset reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IB20Asset reference](/base-chain/specs/reference/b20/interfaces/IB20Asset) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/updateMultiplier.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/updateMultiplier.mdx similarity index 83% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/updateMultiplier.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20Asset/updateMultiplier.mdx index 70eb2f2f8..388446f4f 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/updateMultiplier.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/updateMultiplier.mdx @@ -41,5 +41,5 @@ IB20Asset(target).updateMultiplier(arg0); ## Related -- [IB20Asset reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IB20Asset reference](/base-chain/specs/reference/b20/interfaces/IB20Asset) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/updateUIMultiplier.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/updateUIMultiplier.mdx similarity index 85% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/updateUIMultiplier.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20Asset/updateUIMultiplier.mdx index 5c87f7a68..2b50f0b2a 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/updateUIMultiplier.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/updateUIMultiplier.mdx @@ -44,5 +44,5 @@ IB20Asset(target).updateUIMultiplier(arg0, arg1); ## Related -- [IB20Asset reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IB20Asset reference](/base-chain/specs/reference/b20/interfaces/IB20Asset) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Factory.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20Factory.mdx similarity index 53% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Factory.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20Factory.mdx index 108a8c83b..177dd6f76 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Factory.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20Factory.mdx @@ -8,10 +8,10 @@ description: "Generated B20 reference for IB20Factory functions, events, and err | Function | Selector | Summary | |---|---|---| -| [`createB20`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Factory/createB20) | `0x62975e6a` | Creates a B-20 token of the given `variant` at the deterministic address derived | -| [`getB20Address`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Factory/getB20Address) | `0x8c30260f` | Returns the deterministic address `createB20` would assign for `(variant, sender, salt)`. Never reverts. | -| [`isB20`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Factory/isB20) | `0xfa19b927` | Returns whether `token` was created by this factory, recovered from the address prefix. Never reverts. | -| [`isB20Initialized`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Factory/isB20Initialized) | `0x6a45ba98` | Returns whether `createB20` has run to completion at `token`. Flips exactly once, | +| [`createB20`](/base-chain/specs/reference/b20/interfaces/IB20Factory/createB20) | `0x62975e6a` | Creates a B-20 token of the given `variant` at the deterministic address derived | +| [`getB20Address`](/base-chain/specs/reference/b20/interfaces/IB20Factory/getB20Address) | `0x8c30260f` | Returns the deterministic address `createB20` would assign for `(variant, sender, salt)`. Never reverts. | +| [`isB20`](/base-chain/specs/reference/b20/interfaces/IB20Factory/isB20) | `0xfa19b927` | Returns whether `token` was created by this factory, recovered from the address prefix. Never reverts. | +| [`isB20Initialized`](/base-chain/specs/reference/b20/interfaces/IB20Factory/isB20Initialized) | `0x6a45ba98` | Returns whether `createB20` has run to completion at `token`. Flips exactly once, | ## Events @@ -33,6 +33,6 @@ description: "Generated B20 reference for IB20Factory functions, events, and err | `InitCallFailed` | `0x4eae0860` | One of the `initCalls` reverted. The factory bubbles the underlying revert reason | - - + + diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Factory/createB20.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20Factory/createB20.mdx similarity index 93% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Factory/createB20.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20Factory/createB20.mdx index ac12620fe..fed5cceca 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Factory/createB20.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20Factory/createB20.mdx @@ -65,5 +65,5 @@ address token = StdPrecompiles.B20_FACTORY.createB20(variant, salt, params, init ## Related -- [IB20Factory reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Factory) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IB20Factory reference](/base-chain/specs/reference/b20/interfaces/IB20Factory) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Factory/getB20Address.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20Factory/getB20Address.mdx similarity index 81% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Factory/getB20Address.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20Factory/getB20Address.mdx index 1ea4e0747..4e789a8f6 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Factory/getB20Address.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20Factory/getB20Address.mdx @@ -40,5 +40,5 @@ IB20Factory(target).getB20Address(arg0, arg1, arg2); ## Related -- [IB20Factory reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Factory) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IB20Factory reference](/base-chain/specs/reference/b20/interfaces/IB20Factory) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Factory/isB20.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20Factory/isB20.mdx similarity index 76% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Factory/isB20.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20Factory/isB20.mdx index 98ccb0e0b..ae95e058a 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Factory/isB20.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20Factory/isB20.mdx @@ -38,5 +38,5 @@ IB20Factory(target).isB20(arg0); ## Related -- [IB20Factory reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Factory) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IB20Factory reference](/base-chain/specs/reference/b20/interfaces/IB20Factory) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Factory/isB20Initialized.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20Factory/isB20Initialized.mdx similarity index 78% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Factory/isB20Initialized.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20Factory/isB20Initialized.mdx index 3539918ee..4d12b0627 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Factory/isB20Initialized.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20Factory/isB20Initialized.mdx @@ -39,5 +39,5 @@ IB20Factory(target).isB20Initialized(arg0); ## Related -- [IB20Factory reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Factory) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IB20Factory reference](/base-chain/specs/reference/b20/interfaces/IB20Factory) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20Stablecoin.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20Stablecoin.mdx new file mode 100644 index 000000000..e98e05a01 --- /dev/null +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20Stablecoin.mdx @@ -0,0 +1,28 @@ +--- +title: "IB20Stablecoin reference" +description: "Generated B20 reference for IB20Stablecoin functions, events, and errors." +--- + + +## Functions + +| Function | Selector | Summary | +|---|---|---| +| [`currency`](/base-chain/specs/reference/b20/interfaces/IB20Stablecoin/currency) | `0xe5a6b10f` | The currency code this stablecoin tracks (e.g. `"USD"`, `"EUR"`, `"JPY"`). | + +## Events + +| Event | Topic0 | Summary | +|---|---|---| +| — | — | — | + +## Errors + +| Error | Selector | Summary | +|---|---|---| +| — | — | — | + + + + + diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Stablecoin/currency.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20Stablecoin/currency.mdx similarity index 73% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Stablecoin/currency.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IB20Stablecoin/currency.mdx index 73d48da3d..9608744ec 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Stablecoin/currency.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20Stablecoin/currency.mdx @@ -37,5 +37,5 @@ IB20Stablecoin(target).currency(); ## Related -- [IB20Stablecoin reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Stablecoin) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IB20Stablecoin reference](/base-chain/specs/reference/b20/interfaces/IB20Stablecoin) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry.mdx b/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry.mdx new file mode 100644 index 000000000..6af5c0a20 --- /dev/null +++ b/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry.mdx @@ -0,0 +1,56 @@ +--- +title: "IPolicyRegistry reference" +description: "Generated B20 reference for IPolicyRegistry functions, events, and errors." +--- + + +## Functions + +| Function | Selector | Summary | +|---|---|---| +| [`createPolicy`](/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/createPolicy) | `0xca5d55f6` | Creates a new simple policy with no initial members. Permissionless. | +| [`createPolicyWithAccounts`](/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/createPolicyWithAccounts) | `0xa2d3044f` | Creates a new simple policy seeded with `accounts` as initial members. Permissionless. | +| [`createCompositePolicy`](/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/createCompositePolicy) | `0x6fdd1491` | Creates a new composite policy that combines existing simple policies under a logic | +| [`stageUpdateAdmin`](/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/stageUpdateAdmin) | `0x1d7ae695` | Stages a proposed new admin for `policyId`. The active admin does not change | +| [`finalizeUpdateAdmin`](/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/finalizeUpdateAdmin) | `0x33031a9c` | Completes a two-step admin transfer. Promotes the caller to active admin and clears the pending slot. | +| [`renounceAdmin`](/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/renounceAdmin) | `0xefdb7fa3` | Permanently relinquishes administration of `policyId`. The member set is frozen | +| [`updateAllowlist`](/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/updateAllowlist) | `0x3388fb5b` | Sets `accounts` membership in an ALLOWLIST policy to `allowed` in one batch. | +| [`updateBlocklist`](/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/updateBlocklist) | `0x5c4e51b8` | Sets `accounts` membership in a BLOCKLIST policy to `blocked` in one batch. | +| [`updateComposite`](/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/updateComposite) | `0xbfe142c0` | Replaces a composite policy's child-policy set in full with `childPolicyIds`. | +| [`isAuthorized`](/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/isAuthorized) | `0x55a1179e` | Returns whether `account` is authorized under `policyId`. Never reverts; unknown | +| [`MIN_COMPOSITE_CHILD_POLICIES`](/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/MIN_COMPOSITE_CHILD_POLICIES) | `0xb3ae29f7` | Minimum number of child policies a composite must reference, inclusive. Never reverts. | +| [`MAX_COMPOSITE_CHILD_POLICIES`](/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/MAX_COMPOSITE_CHILD_POLICIES) | `0x54309870` | Maximum number of child policies a composite may reference, inclusive. Never reverts. | +| [`policyExists`](/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/policyExists) | `0x330f5637` | Returns whether `policyId` is a built-in sentinel or a previously-assigned custom ID. Never reverts. | +| [`policyAdmin`](/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/policyAdmin) | `0x09dd0a47` | Returns the current admin of `policyId`, or `address(0)` for built-in sentinels, | +| [`pendingPolicyAdmin`](/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/pendingPolicyAdmin) | `0x017548b7` | Returns the currently-staged pending admin for `policyId`, or `address(0)` when | +| [`compositePolicyChildIds`](/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/compositePolicyChildIds) | `0x7c40df74` | Returns the child-policy set of the composite `policyId`. | + +## Events + +| Event | Topic0 | Summary | +|---|---|---| +| `PolicyCreated` | `0xdc870ce85be577234b8548f42b93f84bbff6d0c1f38ee725c809c49932a13885` | A new policy was created. | +| `PolicyAdminStaged` | `0xdbf3b34a4c956c56ca05cd4b8f9293a4347ad61994445a4b89817d4a19561136` | A new admin was staged. `pendingAdmin == address(0)` clears a prior nomination. | +| `PolicyAdminUpdated` | `0x98925cfb1bc09c5b43dd0dd56d3d95aa04fb3300927580cc588c3f5dd58c15e1` | The active admin changed. `newAdmin == address(0)` indicates renunciation; | +| `AllowlistUpdated` | `0x18c46532f90187ba11e436e21da087b684801d7f0787f2043f26f079c91e9ef0` | One or more accounts had their ALLOWLIST membership set to `allowed` in a single batch. | +| `BlocklistUpdated` | `0x2ff63c102b1b9fd7f5d39f83039c5d6aaf50a414a4f2def2704e41be2628f1e3` | One or more accounts had their BLOCKLIST membership set to `blocked` in a single batch. | +| `CompositePolicyUpdated` | `0x4ff6adaab31b0df87aa7b8b7320c52b8b3b5eede3bf28a6baaaa8b8b7e1d6363` | A composite policy's child set was set or replaced in full with `childPolicyIds`. Emitted | + +## Errors + +| Error | Selector | Summary | +|---|---|---| +| `NonPayable` | `0x6fb1b0e9` | ETH was attached to a call targeting a nonpayable policy registry selector. | +| `Unauthorized` | `0x82b42900` | Caller is not the admin required by the attempted operation. | +| `PolicyNotFound` | `0x720caa4f` | The referenced policy ID does not exist. | +| `IncompatiblePolicyType` | `0xf1011ef5` | The operation is incompatible with the policy's type. | +| `ZeroAddress` | `0xd92e233d` | A required address argument was the zero address. | +| `BatchSizeTooLarge` | `0x083e2f67` | A membership batch exceeded the registry limit. | +| `NoPendingAdmin` | `0xb4539afa` | `finalizeUpdateAdmin` was called with no pending admin staged. | +| `ChildPoliciesOutsideOfRange` | `0x697ec868` | A composite policy was created or updated with a child-policy count outside the | +| `InvalidChildPolicy` | `0x46508ef6` | Composite policies are not simple policies. Child policies must be existing | + + + + + diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry/MAX_COMPOSITE_CHILD_POLICIES.mdx b/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/MAX_COMPOSITE_CHILD_POLICIES.mdx similarity index 77% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry/MAX_COMPOSITE_CHILD_POLICIES.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/MAX_COMPOSITE_CHILD_POLICIES.mdx index f8ccad09c..39af98cdb 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry/MAX_COMPOSITE_CHILD_POLICIES.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/MAX_COMPOSITE_CHILD_POLICIES.mdx @@ -37,5 +37,5 @@ IPolicyRegistry(target).MAX_COMPOSITE_CHILD_POLICIES(); ## Related -- [IPolicyRegistry reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IPolicyRegistry reference](/base-chain/specs/reference/b20/interfaces/IPolicyRegistry) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry/MIN_COMPOSITE_CHILD_POLICIES.mdx b/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/MIN_COMPOSITE_CHILD_POLICIES.mdx similarity index 77% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry/MIN_COMPOSITE_CHILD_POLICIES.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/MIN_COMPOSITE_CHILD_POLICIES.mdx index 8a0781269..2cf272b3d 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry/MIN_COMPOSITE_CHILD_POLICIES.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/MIN_COMPOSITE_CHILD_POLICIES.mdx @@ -37,5 +37,5 @@ IPolicyRegistry(target).MIN_COMPOSITE_CHILD_POLICIES(); ## Related -- [IPolicyRegistry reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IPolicyRegistry reference](/base-chain/specs/reference/b20/interfaces/IPolicyRegistry) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry/compositePolicyChildIds.mdx b/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/compositePolicyChildIds.mdx similarity index 83% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry/compositePolicyChildIds.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/compositePolicyChildIds.mdx index d0d1fe4e6..e9ed1f273 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry/compositePolicyChildIds.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/compositePolicyChildIds.mdx @@ -44,5 +44,5 @@ IPolicyRegistry(target).compositePolicyChildIds(arg0); ## Related -- [IPolicyRegistry reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IPolicyRegistry reference](/base-chain/specs/reference/b20/interfaces/IPolicyRegistry) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry/createCompositePolicy.mdx b/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/createCompositePolicy.mdx similarity index 89% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry/createCompositePolicy.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/createCompositePolicy.mdx index 73e56bd69..026422e5d 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry/createCompositePolicy.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/createCompositePolicy.mdx @@ -51,5 +51,5 @@ IPolicyRegistry(target).createCompositePolicy(arg0, arg1, arg2); ## Related -- [IPolicyRegistry reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IPolicyRegistry reference](/base-chain/specs/reference/b20/interfaces/IPolicyRegistry) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry/createPolicy.mdx b/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/createPolicy.mdx similarity index 83% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry/createPolicy.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/createPolicy.mdx index 6a1bfc21c..0e031a916 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry/createPolicy.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/createPolicy.mdx @@ -41,5 +41,5 @@ uint64 policyId = StdPrecompiles.POLICY_REGISTRY.createPolicy(admin, IPolicyRegi ## Related -- [IPolicyRegistry reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IPolicyRegistry reference](/base-chain/specs/reference/b20/interfaces/IPolicyRegistry) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry/createPolicyWithAccounts.mdx b/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/createPolicyWithAccounts.mdx similarity index 87% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry/createPolicyWithAccounts.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/createPolicyWithAccounts.mdx index 5588c01ce..accea7e5e 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry/createPolicyWithAccounts.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/createPolicyWithAccounts.mdx @@ -44,5 +44,5 @@ uint64 policyId = StdPrecompiles.POLICY_REGISTRY.createPolicyWithAccounts(admin, ## Related -- [IPolicyRegistry reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IPolicyRegistry reference](/base-chain/specs/reference/b20/interfaces/IPolicyRegistry) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry/finalizeUpdateAdmin.mdx b/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/finalizeUpdateAdmin.mdx similarity index 82% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry/finalizeUpdateAdmin.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/finalizeUpdateAdmin.mdx index 0552b67ab..8b13fb066 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry/finalizeUpdateAdmin.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/finalizeUpdateAdmin.mdx @@ -40,5 +40,5 @@ IPolicyRegistry(target).finalizeUpdateAdmin(arg0); ## Related -- [IPolicyRegistry reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IPolicyRegistry reference](/base-chain/specs/reference/b20/interfaces/IPolicyRegistry) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry/isAuthorized.mdx b/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/isAuthorized.mdx similarity index 82% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry/isAuthorized.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/isAuthorized.mdx index e7839b44a..c1026c60a 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry/isAuthorized.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/isAuthorized.mdx @@ -42,5 +42,5 @@ bool ok = StdPrecompiles.POLICY_REGISTRY.isAuthorized(policyId, account); ## Related -- [IPolicyRegistry reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IPolicyRegistry reference](/base-chain/specs/reference/b20/interfaces/IPolicyRegistry) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry/pendingPolicyAdmin.mdx b/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/pendingPolicyAdmin.mdx similarity index 79% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry/pendingPolicyAdmin.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/pendingPolicyAdmin.mdx index 7a95e8aaa..530de629f 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry/pendingPolicyAdmin.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/pendingPolicyAdmin.mdx @@ -40,5 +40,5 @@ IPolicyRegistry(target).pendingPolicyAdmin(arg0); ## Related -- [IPolicyRegistry reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IPolicyRegistry reference](/base-chain/specs/reference/b20/interfaces/IPolicyRegistry) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry/policyAdmin.mdx b/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/policyAdmin.mdx similarity index 78% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry/policyAdmin.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/policyAdmin.mdx index 19098d974..3c97bd949 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry/policyAdmin.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/policyAdmin.mdx @@ -39,5 +39,5 @@ IPolicyRegistry(target).policyAdmin(arg0); ## Related -- [IPolicyRegistry reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IPolicyRegistry reference](/base-chain/specs/reference/b20/interfaces/IPolicyRegistry) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry/policyExists.mdx b/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/policyExists.mdx similarity index 77% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry/policyExists.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/policyExists.mdx index c01c2b877..d77074fe6 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry/policyExists.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/policyExists.mdx @@ -38,5 +38,5 @@ IPolicyRegistry(target).policyExists(arg0); ## Related -- [IPolicyRegistry reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IPolicyRegistry reference](/base-chain/specs/reference/b20/interfaces/IPolicyRegistry) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry/renounceAdmin.mdx b/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/renounceAdmin.mdx similarity index 80% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry/renounceAdmin.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/renounceAdmin.mdx index f4a1fcc3c..cc096cb0c 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry/renounceAdmin.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/renounceAdmin.mdx @@ -40,5 +40,5 @@ IPolicyRegistry(target).renounceAdmin(arg0); ## Related -- [IPolicyRegistry reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IPolicyRegistry reference](/base-chain/specs/reference/b20/interfaces/IPolicyRegistry) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry/stageUpdateAdmin.mdx b/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/stageUpdateAdmin.mdx similarity index 81% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry/stageUpdateAdmin.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/stageUpdateAdmin.mdx index 8e99c0542..7d6f43b62 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry/stageUpdateAdmin.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/stageUpdateAdmin.mdx @@ -41,5 +41,5 @@ IPolicyRegistry(target).stageUpdateAdmin(arg0, arg1); ## Related -- [IPolicyRegistry reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IPolicyRegistry reference](/base-chain/specs/reference/b20/interfaces/IPolicyRegistry) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry/updateAllowlist.mdx b/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/updateAllowlist.mdx similarity index 83% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry/updateAllowlist.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/updateAllowlist.mdx index 3b79a9bf3..c57e344d3 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry/updateAllowlist.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/updateAllowlist.mdx @@ -43,5 +43,5 @@ IPolicyRegistry(target).updateAllowlist(arg0, arg1, arg2); ## Related -- [IPolicyRegistry reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IPolicyRegistry reference](/base-chain/specs/reference/b20/interfaces/IPolicyRegistry) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry/updateBlocklist.mdx b/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/updateBlocklist.mdx similarity index 83% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry/updateBlocklist.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/updateBlocklist.mdx index 0aded3929..e9dd70c62 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry/updateBlocklist.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/updateBlocklist.mdx @@ -43,5 +43,5 @@ IPolicyRegistry(target).updateBlocklist(arg0, arg1, arg2); ## Related -- [IPolicyRegistry reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IPolicyRegistry reference](/base-chain/specs/reference/b20/interfaces/IPolicyRegistry) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry/updateComposite.mdx b/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/updateComposite.mdx similarity index 87% rename from docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry/updateComposite.mdx rename to docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/updateComposite.mdx index 34b8d1364..861493f9f 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry/updateComposite.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/updateComposite.mdx @@ -48,5 +48,5 @@ IPolicyRegistry(target).updateComposite(arg0, arg1); ## Related -- [IPolicyRegistry reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry) -- [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses) +- [IPolicyRegistry reference](/base-chain/specs/reference/b20/interfaces/IPolicyRegistry) +- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/upgrades/cobalt/eip-8130.mdx b/docs/base-chain/specs/reference/native-account-abstraction.mdx similarity index 100% rename from docs/base-chain/specs/upgrades/cobalt/eip-8130.mdx rename to docs/base-chain/specs/reference/native-account-abstraction.mdx diff --git a/docs/base-chain/specs/upgrades/beryl/b20-playground.mdx b/docs/base-chain/specs/upgrades/beryl/b20-playground.mdx index 1b2d81ec5..fa681b046 100644 --- a/docs/base-chain/specs/upgrades/beryl/b20-playground.mdx +++ b/docs/base-chain/specs/upgrades/beryl/b20-playground.mdx @@ -16,7 +16,7 @@ B20 is a superset of ERC-20: every ERC-20 call works unchanged, so there's no co ## A compliance order arrives -A court order targets one account. Freeze it so it can't send, then seize the balance with one call. Seizure only works on an account that is already frozen. Every other holder is untouched and the token keeps trading. See [transfer policies](/base-chain/specs/upgrades/beryl/b20/specification#policy-integration) and [seizure](/base-chain/specs/upgrades/beryl/b20/specification#seize) in the specification. +A court order targets one account. Freeze it so it can't send, then seize the balance with one call. Seizure only works on an account that is already frozen. Every other holder is untouched and the token keeps trading. See [transfer policies](/base-chain/specs/reference/b20#policy-integration) and [seizure](/base-chain/specs/reference/b20#seize) in the specification. @@ -32,7 +32,7 @@ Your customer pays to one address. The transfer carries the invoice reference, s ## A new user approves without gas -A new user shouldn't have to buy ETH first. With `permit`, they sign an approval offchain and your platform relays it. They start transacting with zero gas, and nonces stop signature replay. See [permit](/base-chain/specs/upgrades/beryl/b20/specification#erc-2612-permit--eip-712) in the spec. +A new user shouldn't have to buy ETH first. With `permit`, they sign an approval offchain and your platform relays it. They start transacting with zero gas, and nonces stop signature replay. See [permit](/base-chain/specs/reference/b20#erc-2612-permit--eip-712) in the spec. @@ -40,7 +40,7 @@ A new user shouldn't have to buy ETH first. With `permit`, they sign an approval ## The stock splits -A 2-for-1 split is one call. Every balance doubles without a migration or a new contract. Dividends run inside a public announcement window, so the disclosure lives onchain next to the action. The token also stores identifiers like a CUSIP. See the [Asset variant](/base-chain/specs/upgrades/beryl/b20/specification#asset) in the spec. +A 2-for-1 split is one call. Every balance doubles without a migration or a new contract. Dividends run inside a public announcement window, so the disclosure lives onchain next to the action. The token also stores identifiers like a CUSIP. See the [Asset variant](/base-chain/specs/reference/b20#asset) in the spec. @@ -55,7 +55,7 @@ A 2-for-1 split is one call. Every balance doubles without a migration or a new Integration code for memo-tagged payments and B20-specific reverts. - + Every method, event, role, and policy in the standard. diff --git a/docs/base-chain/specs/upgrades/beryl/b20/changelog.mdx b/docs/base-chain/specs/upgrades/beryl/b20/changelog.mdx deleted file mode 100644 index 44e312079..000000000 --- a/docs/base-chain/specs/upgrades/beryl/b20/changelog.mdx +++ /dev/null @@ -1,40 +0,0 @@ ---- -title: "B20 changelog" -description: "Changes to the B20 token standard, release by release, including new methods, deprecations, and activation dates." ---- - -Changes to the [B20 token standard](/base-chain/specs/upgrades/beryl/b20/specification). Newest first. - - -B20 method and event signatures are part of the chain's consensus surface. Existing selectors and behavior do not change; the standard grows by addition. - - -## Beryl — initial release - -| Network | Activated | -|---|---| -| Base mainnet | 2026-06-25 | -| Base Sepolia | 2026-06-18 | - -Shipped with the [Beryl upgrade](/base-chain/specs/upgrades/beryl/overview). - -**Added** - -- The B20 standard as a native precompile: a superset of ERC-20 with full selector and behavior parity for `transfer`, `transferFrom`, `approve`, `allowance`, `balanceOf`, `totalSupply`, `name`, `symbol`, `decimals`, `Transfer`, and `Approval` -- [Role-based access control](/base-chain/specs/upgrades/beryl/b20/specification#roles-model) with built-in roles, user-defined roles in the role graph, and `renounceLastAdmin` for permanent admin-less operation -- [PolicyRegistry](/base-chain/specs/upgrades/beryl/b20/specification#policy-registry) singleton precompile with `BLOCKLIST`, `ALLOWLIST`, `UNION`, and `INTERSECT` policy types, two-step admin transfer, and the `ALWAYS_ALLOW` and `ALWAYS_BLOCK` built-ins -- [Six policy scopes](/base-chain/specs/upgrades/beryl/b20/specification#policy-integration) on every token, covering transfer sender, receiver, and executor, mint receiver, and seize holder and receiver -- [`seizeWithMemo`](/base-chain/specs/upgrades/beryl/b20/specification#seize) for compliance-driven balance transfers -- [Memo variants](/base-chain/specs/upgrades/beryl/b20/specification#memos) of transfer, transferFrom, mint, burn, and seize, emitting `Memo` immediately after the primary event -- [Granular pausing](/base-chain/specs/upgrades/beryl/b20/specification#pause) by `PausableFeature`: `TRANSFER`, `MINT`, `BURN`, and `SEIZE` -- [Optional supply caps](/base-chain/specs/upgrades/beryl/b20/specification#supply-cap), with `type(uint128).max` as the uncapped sentinel and maximum supply -- [ERC-2612 `permit`](/base-chain/specs/upgrades/beryl/b20/specification#erc-2612-permit--eip-712) with an EIP-712 domain at version `"1"` -- [ERC-7572 `contractURI`](/base-chain/specs/upgrades/beryl/b20/specification#contract-uri-erc-7572) and `METADATA_ROLE`-gated name, symbol, and URI updates -- [B20Factory](/base-chain/specs/upgrades/beryl/b20/specification#factory) singleton precompile with deterministic, variant-encoding addresses and `initCalls` bootstrap semantics -- ActivationRegistry gating for state-changing PolicyRegistry calls -- The [`ASSET` variant](/base-chain/specs/upgrades/beryl/b20/specification#asset): `OPERATOR_ROLE`, WAD-precision UI multipliers with scheduled and instant updates, announcements, `batchMint`, and issuer-defined extra metadata -- The [`STABLECOIN` variant](/base-chain/specs/upgrades/beryl/b20/specification#stablecoin): fixed 6 decimals and a `currency()` code set once at creation - -**Deprecated** - -- `burnBlocked` and `BURN_BLOCKED_ROLE`, retained for backwards compatibility. New seizure flows use `seizeWithMemo`. diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IActivationRegistry.mdx b/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IActivationRegistry.mdx deleted file mode 100644 index 3b9d07084..000000000 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IActivationRegistry.mdx +++ /dev/null @@ -1,37 +0,0 @@ ---- -title: "IActivationRegistry reference" -description: "Generated B20 reference for IActivationRegistry functions, events, and errors." ---- - - -## Functions - -| Function | Selector | Summary | -|---|---|---| -| [`isActivated`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IActivationRegistry/isActivated) | `0xba87af80` | Whether `feature` is currently activated. Never reverts. | -| [`checkActivated`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IActivationRegistry/checkActivated) | `0xde5bfd9b` | Reverts with `FeatureNotActivated(feature)` if `feature` is not currently activated. | -| [`admin`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IActivationRegistry/admin) | `0xf851a440` | The address authorized to call `activate` and `deactivate`. | -| [`activate`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IActivationRegistry/activate) | `0x59db6e85` | Activates `feature`. Emits `FeatureActivated`. | -| [`deactivate`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IActivationRegistry/deactivate) | `0x22eee84c` | Deactivates `feature`. Emits `FeatureDeactivated`. | - -## Events - -| Event | Topic0 | Summary | -|---|---|---| -| `FeatureActivated` | `0x8c7a0ecdbb8d96e867e43ec1aef80027976ee493c18bef399fa799ed19752451` | Emitted when `feature` is activated. | -| `FeatureDeactivated` | `0x15bf65a782c3258c63268ba9d7aed710cf9f9315d3687d9a4632ccdad7926c84` | Emitted when `feature` is deactivated. | - -## Errors - -| Error | Selector | Summary | -|---|---|---| -| `Unauthorized` | `0x8e4a23d6` | Caller is not the activation admin. | -| `AlreadyActivated` | `0x866b0041` | Feature is already activated. | -| `FeatureNotActivated` | `0xb9b2a425` | Feature is not activated. | -| `DelegateCallNotAllowed` | `0x0d89438e` | The precompile was invoked via `DELEGATECALL` or `CALLCODE`. | -| `StaticCallNotAllowed` | `0xbeaba5b7` | A state-mutating entry point was invoked from a `STATICCALL` frame. | - - - - - diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20.mdx b/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20.mdx deleted file mode 100644 index a8ab7ec79..000000000 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20.mdx +++ /dev/null @@ -1,120 +0,0 @@ ---- -title: "IB20 reference" -description: "Generated B20 reference for IB20 functions, events, and errors." ---- - - -## Functions - -| Function | Selector | Summary | -|---|---|---| -| [`DEFAULT_ADMIN_ROLE`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/DEFAULT_ADMIN_ROLE) | `0xa217fddf` | The default top-level admin role (`bytes32(0)`). Required to call `grantRole`, `revokeRole`, | -| [`MINT_ROLE`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/MINT_ROLE) | `0xe9a9c850` | Required to call `mint` and `mintWithMemo`. | -| [`BURN_ROLE`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/BURN_ROLE) | `0xb930908f` | Required to call `burn` and `burnWithMemo`. | -| [`BURN_BLOCKED_ROLE`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/BURN_BLOCKED_ROLE) | `0x32ad9be8` | Required to call the deprecated `burnBlocked` (retained for | -| [`SEIZE_ROLE`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/SEIZE_ROLE) | `0x3c7e9ba5` | Required to call `seizeWithMemo`. | -| [`PAUSE_ROLE`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/PAUSE_ROLE) | `0x389ed267` | Required to call `pause`. | -| [`UNPAUSE_ROLE`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/UNPAUSE_ROLE) | `0x309756fb` | Required to call `unpause`. | -| [`METADATA_ROLE`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/METADATA_ROLE) | `0x38841782` | Required to call `updateName`, `updateSymbol`, and `updateContractURI`. | -| [`TRANSFER_SENDER_POLICY`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/TRANSFER_SENDER_POLICY) | `0xd116fc21` | Policy slot consulted against `from` on every transfer (including `transferFrom`). | -| [`TRANSFER_RECEIVER_POLICY`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/TRANSFER_RECEIVER_POLICY) | `0x210f521b` | Policy slot consulted against `to` on every transfer. | -| [`TRANSFER_EXECUTOR_POLICY`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/TRANSFER_EXECUTOR_POLICY) | `0x724e9c53` | Policy slot consulted against `msg.sender` on `transferFrom` when distinct from `from`. | -| [`MINT_RECEIVER_POLICY`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/MINT_RECEIVER_POLICY) | `0x6e5b013d` | Policy slot consulted against `to` on every mint. | -| [`SEIZE_HOLDER_POLICY`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/SEIZE_HOLDER_POLICY) | `0xb279d311` | Policy slot consulted against `from` by `seizeWithMemo`. | -| [`SEIZE_RECEIVER_POLICY`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/SEIZE_RECEIVER_POLICY) | `0xb31da27f` | Policy slot consulted against `to` by `seizeWithMemo`. | -| [`name`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/name) | `0x06fdde03` | Token name. Set at creation, mutable via `updateName`. | -| [`symbol`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/symbol) | `0x95d89b41` | Token symbol. Set at creation, mutable via `updateSymbol`. | -| [`decimals`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/decimals) | `0x313ce567` | Number of decimal places. Immutable per token variant. | -| [`totalSupply`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/totalSupply) | `0x18160ddd` | Total token supply currently in circulation. | -| [`balanceOf`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/balanceOf) | `0x70a08231` | Balance of `account`. | -| [`allowance`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/allowance) | `0xdd62ed3e` | Allowance granted by `owner` to `spender`. | -| [`transfer`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/transfer) | `0xa9059cbb` | Transfers `amount` from `msg.sender` to `to`. Emits `Transfer`. | -| [`transferFrom`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/transferFrom) | `0x23b872dd` | Transfers `amount` from `from` to `to` using `msg.sender`'s allowance. Emits `Transfer`. | -| [`approve`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/approve) | `0x095ea7b3` | Sets `spender`'s allowance to `amount`. Not gated by any policy or by pause. Emits `Approval`. | -| [`updateName`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/updateName) | `0x84da92a7` | Updates the token's `name`. Emits `NameUpdated` followed by `EIP712DomainChanged`. | -| [`updateSymbol`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/updateSymbol) | `0x537f5312` | Updates the token's `symbol`. Emits `SymbolUpdated`. | -| [`transferWithMemo`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/transferWithMemo) | `0x95777d59` | Same as `transfer`, plus emits `Memo` immediately after the standard `Transfer` event. | -| [`transferFromWithMemo`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/transferFromWithMemo) | `0x929c2539` | Same as `transferFrom`, plus emits `Memo` immediately after the standard `Transfer` event. | -| [`mint`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/mint) | `0x40c10f19` | Mints `amount` to `to`. Emits `Transfer(address(0), to, amount)`. | -| [`mintWithMemo`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/mintWithMemo) | `0xe44f0b12` | Same as `mint`, plus emits `Memo` immediately after the standard `Transfer` event. | -| [`burn`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/burn) | `0x42966c68` | Burns `amount` from the caller's own balance. Not subject to any policy. | -| [`burnWithMemo`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/burnWithMemo) | `0x38f23b0b` | Same as `burn`, plus emits `Memo` immediately after the standard `Transfer` event. | -| [`burnBlocked`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/burnBlocked) | `0xec0cf3dc` | DEPRECATED. Burns `amount` from a `from` account that is blocked under `TRANSFER_SENDER_POLICY`. | -| [`seizeWithMemo`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/seizeWithMemo) | `0xf916d81b` | Seizes `amount` of `from`'s balance and reassigns it to `to` in a single admin operation. | -| [`hasRole`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/hasRole) | `0x91d14854` | Whether `account` is a member of `role`. User-defined roles are supported and have no | -| [`getRoleAdmin`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/getRoleAdmin) | `0x248a9ca3` | The role required to grant or revoke `role`. Defaults to `DEFAULT_ADMIN_ROLE` if not | -| [`grantRole`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/grantRole) | `0x2f2ff15d` | Grants `role` to `account`. Emits `RoleGranted`. | -| [`revokeRole`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/revokeRole) | `0xd547741f` | Revokes `role` from `account`. Emits `RoleRevoked`. | -| [`renounceRole`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/renounceRole) | `0x36568abe` | Caller renounces `role` for themselves. Emits `RoleRevoked`. | -| [`renounceLastAdmin`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/renounceLastAdmin) | `0x6f79e3d7` | Permanently transitions the token to a zero-admin state. Revokes `DEFAULT_ADMIN_ROLE` | -| [`setRoleAdmin`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/setRoleAdmin) | `0x1e4e0091` | Sets the admin role for `role`. Emits `RoleAdminChanged`. | -| [`pausedFeatures`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/pausedFeatures) | `0xde9997e3` | The `PausableFeature`s currently paused on this token. Order is implementation-defined; | -| [`isPaused`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/isPaused) | `0x165c44bc` | Whether `feature` is currently paused. O(1). | -| [`pause`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/pause) | `0x9f98bd2d` | Pauses each of `features`. Additive: features already paused remain paused; duplicates | -| [`unpause`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/unpause) | `0xb61b2ebc` | Unpauses each of `features`. Features not listed are unaffected; duplicates are idempotent. | -| [`policyId`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/policyId) | `0xdb3de624` | The current policy ID configured for `policyScope`. Returns `0` (always-allow built-in) | -| [`updatePolicy`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/updatePolicy) | `0xadf9c4ea` | Updates the policy ID assigned to `policyScope`. Takes effect immediately for the next | -| [`supplyCap`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/supplyCap) | `0x8f770ad0` | The maximum total supply enforced on `mint`. Capped at `type(uint128).max`, which | -| [`updateSupplyCap`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/updateSupplyCap) | `0xe5a97f07` | Sets a new supply cap. May be raised or lowered freely, but never below current | -| [`DOMAIN_SEPARATOR`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/DOMAIN_SEPARATOR) | `0x3644e515` | The current EIP-712 domain separator for this token. Recomputed on each call so it | -| [`nonces`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/nonces) | `0x7ecebe00` | The current EIP-2612 permit nonce for `owner`. Incremented by 1 on each successful `permit`. | -| [`permit`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/permit) | `0xd505accf` | EIP-2612 permit. Recovers `owner` via ECDSA from `(v, r, s)`. EOA signatures only; | -| [`eip712Domain`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/eip712Domain) | `0x84b0196e` | ERC-5267 EIP-712 domain introspection. | -| [`contractURI`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/contractURI) | `0xe8a3d485` | Off-chain URI pointing at contract-level metadata for this token, per ERC-7572. | -| [`updateContractURI`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20/updateContractURI) | `0x7e5b1e24` | Updates `contractURI`. Emits the parameterless `ContractURIUpdated` event per ERC-7572; | - -## Events - -| Event | Topic0 | Summary | -|---|---|---| -| `Transfer` | `0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef` | ERC-20 transfer event. Emitted on every successful transfer (including memo'd variants), | -| `Approval` | `0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925` | ERC-20 approval event. Emitted by `approve` and `permit`. | -| `Memo` | `0x6989f5818dcfd11f8cd53b27c94cec33dae1589735f03e639cba54553a1825e8` | Emitted by `transferWithMemo`, `transferFromWithMemo`, `mintWithMemo`, and `burnWithMemo` | -| `BurnedBlocked` | `0x0b552e96653fd6842da37c477005d3b5c08a8c7d3631b1f43787b2dc9a1006a3` | Emitted by the deprecated `burnBlocked` in addition to `Transfer(from, address(0), amount)`. | -| `Seized` | `0xa9aec5d8b86e2fa2fd6ac3af62f2622e3dfdab1967d4cbbb56a5df7d74cb887c` | Emitted by `seizeWithMemo` in addition to `Transfer(from, to, amount)` (and the | -| `RoleGranted` | `0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d` | Emitted when `account` is granted `role`. `sender` is the originating caller. | -| `RoleRevoked` | `0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b` | Emitted when `role` is revoked from `account`. `sender` is the originating caller | -| `RoleAdminChanged` | `0xbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff` | Emitted by `setRoleAdmin` when the admin role for `role` changes. | -| `LastAdminRenounced` | `0xe8d3a9872e7ca325571ff1e4c51ddd69090a0345240cc605ccde365ec867cc67` | Emitted by `renounceLastAdmin` in addition to the standard | -| `Paused` | `0x43e072977b8112813d7c2aa0b63d3c121c1fe3e714e6d2eacb5735fe4027e976` | Emitted by `pause`. `features` is the argument to the call (not the resulting paused state). | -| `Unpaused` | `0xdc6281474ea3dea2a856e225c7ba3edf427de9164495817c4d49a595e683fed4` | Emitted by `unpause`. `features` is the argument to the call (not the resulting paused state). | -| `PolicyUpdated` | `0x8b4790f7ff717fc8f60f07ae099e47ef318dc04b37ae98056b50a22b79056626` | Emitted by `updatePolicy` when a token's policy slot is changed. Initial slot assignment at | -| `SupplyCapUpdated` | `0x6d14f44808ce024f263432bc38d019a9951fbe674e9898b54844dbc8dc09c23a` | Emitted by `updateSupplyCap`. | -| `ContractURIUpdated` | `0xa5d4097edda6d87cb9329af83fb3712ef77eeb13738ffe43cc35a4ce305ad962` | Emitted by `updateContractURI`. Per ERC-7572, parameterless: integrators re-fetch `contractURI()`. | -| `NameUpdated` | `0x74321da206c1b9fa34367f7ece59ca49371dcd13820b9a5c3767ae1ecceed51a` | Emitted by `updateName`. Carries the new name string. | -| `SymbolUpdated` | `0x64e8b5c6dcea43dd79766bb3b8af7c45968d12b68c960cf2da23856f34d598d4` | Emitted by `updateSymbol`. Carries the new symbol string. | -| `EIP712DomainChanged` | `0x0a6387c9ea3628b88a633bb4f3b151770f70085117a15f9bf3787cda53f13d31` | ERC-5267 domain-change signal. Emitted exactly once per successful `updateName` call, | - -## Errors - -| Error | Selector | Summary | -|---|---|---| -| `NonPayable` | `0x6fb1b0e9` | ETH was attached to a call targeting a nonpayable token selector. | -| `AccessControlUnauthorizedAccount` | `0xe2517d3f` | `account` does not hold `neededRole`. | -| `Unauthorized` | `0x82b42900` | Caller failed a positional authorization check that is not expressible as "missing role X". | -| `ContractPaused` | `0xf9df5ac9` | The `PausableFeature` covering this operation is currently paused. | -| `InsufficientAllowance` | `0x192b9e4e` | `spender`'s allowance is less than `needed` for the requested `transferFrom`. | -| `InsufficientBalance` | `0xdb42144d` | `sender`'s balance is less than `needed` for the requested transfer or burn. | -| `InvalidSender` | `0x4c14f64c` | The transfer's source address is invalid (typically `address(0)`). | -| `InvalidReceiver` | `0x9cfea583` | The transfer's destination address is invalid (typically `address(0)`). | -| `InvalidApprover` | `0x8bc146c4` | The approval's `owner` address is invalid (typically `address(0)`). | -| `InvalidSpender` | `0x4e15efda` | The approval's `spender` address is invalid (typically `address(0)`). | -| `InvalidAmount` | `0x2c5211c6` | An amount argument was zero where a non-zero value is required. Not used for ERC-20 amount arguments. | -| `EmptyFeatureSet` | `0x4861ff45` | An empty array was passed to a function that requires at least one element. | -| `InvalidSupplyCap` | `0x0a3780ce` | The proposed supply cap is outside the permitted range: below the current | -| `SupplyCapExceeded` | `0x4b344b11` | The mint would push `totalSupply` past the configured cap. | -| `PolicyForbids` | `0xa43fec12` | A policy slot denied the operation. | -| `PolicyNotFound` | `0xcccad523` | The provided policy ID does not exist in the policy registry. | -| `UnsupportedPolicyType` | `0xcdd98a4a` | `policyScope` is not a slot this token (or its variant) supports. | -| `AccountNotSeizable` | `0x91dbbc8d` | `seizeWithMemo` was called against a `from` that is currently authorized under | -| `AccountNotBlocked` | `0x64a5cb46` | The deprecated `burnBlocked` was called against a `from` that is currently authorized under | -| `ExpiredSignature` | `0xbd2a913c` | An EIP-2612 `permit` was submitted with a `deadline` strictly less than `block.timestamp`. | -| `InvalidSigner` | `0x7ba5ffb5` | ECDSA recovery on an EIP-2612 `permit` returned `signer`, which does not match the claimed `owner`. | -| `LastAdminCannotRenounce` | `0x361513e7` | `renounceRole(DEFAULT_ADMIN_ROLE, ...)` was called by the sole remaining admin. | -| `NotSoleAdmin` | `0x2a98e73b` | `renounceLastAdmin()` was called when other accounts also hold `DEFAULT_ADMIN_ROLE`. | -| `AccessControlBadConfirmation` | `0x6697b232` | The `callerConfirmation` argument to `renounceRole` was not `msg.sender`. | - - - - - diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset.mdx b/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset.mdx deleted file mode 100644 index 8f2a9a05c..000000000 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset.mdx +++ /dev/null @@ -1,65 +0,0 @@ ---- -title: "IB20Asset reference" -description: "Generated B20 reference for IB20Asset functions, events, and errors." ---- - - -## Functions - -| Function | Selector | Summary | -|---|---|---| -| [`OPERATOR_ROLE`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/OPERATOR_ROLE) | `0xf5b541a6` | Required to call `announce`, `updateUIMultiplier`, `cancelUIMultiplierUpdate`, and | -| [`WAD_PRECISION`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/WAD_PRECISION) | `0x664808a8` | Fixed-point precision used to scale `multiplier`. Equal to `1e18`. | -| [`MAX_UI_MULTIPLIER`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/MAX_UI_MULTIPLIER) | `0x785c0cf0` | Maximum multiplier accepted by the setter functions. | -| [`announce`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/announce) | `0x595135dd` | Posts a holder-impacting announcement and atomically dispatches each entry in | -| [`isAnnouncementIdUsed`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/isAnnouncementIdUsed) | `0xc0da474e` | Whether `id` has previously been consumed by `announce`. | -| [`multiplier`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/multiplier) | `0x1b3ed722` | The current multiplier, scaled to `WAD_PRECISION`. Holder balances are stored | -| [`toScaledBalance`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/toScaledBalance) | `0x04f04c99` | Converts a raw balance to its scaled view: `rawBalance * multiplier / WAD_PRECISION`. | -| [`toRawBalance`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/toRawBalance) | `0x0ca06c44` | Converts a scaled balance back to its raw representation: | -| [`scaledBalanceOf`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/scaledBalanceOf) | `0x1da24f3e` | Convenience for `toUIAmount(balanceOf(account))`. | -| [`updateUIMultiplier`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/updateUIMultiplier) | `0x628e600f` | Schedules a UI-multiplier update to take effect at `effectiveAt`. | -| [`cancelUIMultiplierUpdate`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/cancelUIMultiplierUpdate) | `0x2c97a0f0` | Cancels the single live pending update, restoring the no-pending state. | -| [`updateMultiplier`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/updateMultiplier) | `0x5ffe6146` | Instant failsafe / emergency override — sets the current multiplier immediately and | -| [`batchMint`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/batchMint) | `0x68573107` | Mints `amounts[i]` to `recipients[i]` in one call. All-or-nothing: any element | -| [`extraMetadata`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/extraMetadata) | `0x4ddf9da0` | The value of the named metadata entry, or the empty string if not set. A | -| [`updateExtraMetadata`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/updateExtraMetadata) | `0xb2851ef5` | Sets, updates, or removes an extra-metadata entry. An empty `value` removes the | -| [`uiMultiplier`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/uiMultiplier) | `0xa60bf13d` | Returns the current ERC-8056 UI multiplier. | -| [`newUIMultiplier`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/newUIMultiplier) | `0xdc767007` | Returns the pending UI multiplier. | -| [`effectiveAt`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/effectiveAt) | `0x97a4064f` | Returns the effective-at timestamp for the pending multiplier. | -| [`balanceOfUI`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/balanceOfUI) | `0x437a9958` | Returns an account's UI-adjusted balance. | -| [`totalSupplyUI`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/totalSupplyUI) | `0x9bea6429` | Returns the UI-adjusted total supply. | -| [`toUIAmount`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/toUIAmount) | `0x3248d4ff` | Converts a raw amount to its UI representation. | -| [`fromUIAmount`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/fromUIAmount) | `0x65cd9b3c` | Converts a UI amount to its raw representation. | - -## Events - -| Event | Topic0 | Summary | -|---|---|---| -| `UIMultiplierUpdated` | `0x2205df4534432b2f60654a3fdb48737ffdaf3e9edb1a498bd985bc026b15b055` | Emitted when the UI multiplier is updated. | -| `MultiplierUpdated` | `0x4dbe4840d7465bd162f67814cea0b519567a2e0e578bcde61e7f4ced361e5a3d` | Deprecated multiplier-change event emitted by `updateMultiplier`. | -| `UIMultiplierUpdateCancelled` | `0x883856335ba5f60c18b9817c4505d3c7d3f6223dcf39516b30c508c46a5e1cad` | A scheduled multiplier update was cancelled. | -| `ExtraMetadataUpdated` | `0xd7bb345be29e78d635203d40fe0567e7ef19d5cd5cc5fcd25f768b8063e82aa1` | Emitted by `updateExtraMetadata`. An empty `value` indicates removal. | -| `Announcement` | `0xccebf8218a62875909564adef86a6f4df81503cb617221e793357d62f8e813f7` | Emitted by `announce` to open an announcement bracket. | -| `EndAnnouncement` | `0x96d64dafe2c790596430196b982ad1da3221cb3b0f4e6e2df77f2e4f71a90037` | Emitted by `announce` to close the bracket opened by the paired `Announcement` with the same `id`. | - -## Errors - -| Error | Selector | Summary | -|---|---|---| -| `AnnouncementIdAlreadyUsed` | `0xd10b3c9e` | `announce` was called with an `id` that has already been consumed. | -| `InvalidMetadataKey` | `0x86ea3abb` | `updateExtraMetadata` was called with an empty `key`. | -| `InvalidMultiplier` | `0x6f12f3dc` | A multiplier setter (`updateUIMultiplier` or `updateMultiplier`) was called with a | -| `EffectiveAtInPast` | `0x14119cf6` | `updateUIMultiplier` was called with an `effectiveAt` that is not in the future | -| `EffectiveAtTooFar` | `0x1ce214fa` | `updateUIMultiplier` was called with an `effectiveAt` above `type(uint64).max`, the | -| `UIMultiplierUpdateExists` | `0x4481a68e` | `updateUIMultiplier` was called while a live pending update already exists | -| `UIMultiplierUpdateDoesNotExist` | `0xa7d6a5ca` | `cancelUIMultiplierUpdate` was called when there is no live pending update | -| `LengthMismatch` | `0xab8b67c6` | A batched function was called with parallel arrays of differing lengths. | -| `EmptyBatch` | `0xc2e5347d` | A batched function was called with empty arrays. | -| `AnnouncementInProgress` | `0x5c5f0829` | An inner call dispatched by `announce` tried to re-invoke `announce`. | -| `InternalCallMalformed` | `0x4e2f143e` | An inner call dispatched by `announce` was shorter than four bytes. | -| `InternalCallFailed` | `0xb288a127` | An inner call dispatched by `announce` reverted with an ordinary revert; its reason is | - - - - - diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Stablecoin.mdx b/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Stablecoin.mdx deleted file mode 100644 index e9d66398d..000000000 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Stablecoin.mdx +++ /dev/null @@ -1,28 +0,0 @@ ---- -title: "IB20Stablecoin reference" -description: "Generated B20 reference for IB20Stablecoin functions, events, and errors." ---- - - -## Functions - -| Function | Selector | Summary | -|---|---|---| -| [`currency`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Stablecoin/currency) | `0xe5a6b10f` | The currency code this stablecoin tracks (e.g. `"USD"`, `"EUR"`, `"JPY"`). | - -## Events - -| Event | Topic0 | Summary | -|---|---|---| -| — | — | — | - -## Errors - -| Error | Selector | Summary | -|---|---|---| -| — | — | — | - - - - - diff --git a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry.mdx b/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry.mdx deleted file mode 100644 index f93ca6245..000000000 --- a/docs/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry.mdx +++ /dev/null @@ -1,56 +0,0 @@ ---- -title: "IPolicyRegistry reference" -description: "Generated B20 reference for IPolicyRegistry functions, events, and errors." ---- - - -## Functions - -| Function | Selector | Summary | -|---|---|---| -| [`createPolicy`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry/createPolicy) | `0xca5d55f6` | Creates a new simple policy with no initial members. Permissionless. | -| [`createPolicyWithAccounts`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry/createPolicyWithAccounts) | `0xa2d3044f` | Creates a new simple policy seeded with `accounts` as initial members. Permissionless. | -| [`createCompositePolicy`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry/createCompositePolicy) | `0x6fdd1491` | Creates a new composite policy that combines existing simple policies under a logic | -| [`stageUpdateAdmin`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry/stageUpdateAdmin) | `0x1d7ae695` | Stages a proposed new admin for `policyId`. The active admin does not change | -| [`finalizeUpdateAdmin`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry/finalizeUpdateAdmin) | `0x33031a9c` | Completes a two-step admin transfer. Promotes the caller to active admin and clears the pending slot. | -| [`renounceAdmin`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry/renounceAdmin) | `0xefdb7fa3` | Permanently relinquishes administration of `policyId`. The member set is frozen | -| [`updateAllowlist`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry/updateAllowlist) | `0x3388fb5b` | Sets `accounts` membership in an ALLOWLIST policy to `allowed` in one batch. | -| [`updateBlocklist`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry/updateBlocklist) | `0x5c4e51b8` | Sets `accounts` membership in a BLOCKLIST policy to `blocked` in one batch. | -| [`updateComposite`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry/updateComposite) | `0xbfe142c0` | Replaces a composite policy's child-policy set in full with `childPolicyIds`. | -| [`isAuthorized`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry/isAuthorized) | `0x55a1179e` | Returns whether `account` is authorized under `policyId`. Never reverts; unknown | -| [`MIN_COMPOSITE_CHILD_POLICIES`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry/MIN_COMPOSITE_CHILD_POLICIES) | `0xb3ae29f7` | Minimum number of child policies a composite must reference, inclusive. Never reverts. | -| [`MAX_COMPOSITE_CHILD_POLICIES`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry/MAX_COMPOSITE_CHILD_POLICIES) | `0x54309870` | Maximum number of child policies a composite may reference, inclusive. Never reverts. | -| [`policyExists`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry/policyExists) | `0x330f5637` | Returns whether `policyId` is a built-in sentinel or a previously-assigned custom ID. Never reverts. | -| [`policyAdmin`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry/policyAdmin) | `0x09dd0a47` | Returns the current admin of `policyId`, or `address(0)` for built-in sentinels, | -| [`pendingPolicyAdmin`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry/pendingPolicyAdmin) | `0x017548b7` | Returns the currently-staged pending admin for `policyId`, or `address(0)` when | -| [`compositePolicyChildIds`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry/compositePolicyChildIds) | `0x7c40df74` | Returns the child-policy set of the composite `policyId`. | - -## Events - -| Event | Topic0 | Summary | -|---|---|---| -| `PolicyCreated` | `0xdc870ce85be577234b8548f42b93f84bbff6d0c1f38ee725c809c49932a13885` | A new policy was created. | -| `PolicyAdminStaged` | `0xdbf3b34a4c956c56ca05cd4b8f9293a4347ad61994445a4b89817d4a19561136` | A new admin was staged. `pendingAdmin == address(0)` clears a prior nomination. | -| `PolicyAdminUpdated` | `0x98925cfb1bc09c5b43dd0dd56d3d95aa04fb3300927580cc588c3f5dd58c15e1` | The active admin changed. `newAdmin == address(0)` indicates renunciation; | -| `AllowlistUpdated` | `0x18c46532f90187ba11e436e21da087b684801d7f0787f2043f26f079c91e9ef0` | One or more accounts had their ALLOWLIST membership set to `allowed` in a single batch. | -| `BlocklistUpdated` | `0x2ff63c102b1b9fd7f5d39f83039c5d6aaf50a414a4f2def2704e41be2628f1e3` | One or more accounts had their BLOCKLIST membership set to `blocked` in a single batch. | -| `CompositePolicyUpdated` | `0x4ff6adaab31b0df87aa7b8b7320c52b8b3b5eede3bf28a6baaaa8b8b7e1d6363` | A composite policy's child set was set or replaced in full with `childPolicyIds`. Emitted | - -## Errors - -| Error | Selector | Summary | -|---|---|---| -| `NonPayable` | `0x6fb1b0e9` | ETH was attached to a call targeting a nonpayable policy registry selector. | -| `Unauthorized` | `0x82b42900` | Caller is not the admin required by the attempted operation. | -| `PolicyNotFound` | `0x720caa4f` | The referenced policy ID does not exist. | -| `IncompatiblePolicyType` | `0xf1011ef5` | The operation is incompatible with the policy's type. | -| `ZeroAddress` | `0xd92e233d` | A required address argument was the zero address. | -| `BatchSizeTooLarge` | `0x083e2f67` | A membership batch exceeded the registry limit. | -| `NoPendingAdmin` | `0xb4539afa` | `finalizeUpdateAdmin` was called with no pending admin staged. | -| `ChildPoliciesOutsideOfRange` | `0x697ec868` | A composite policy was created or updated with a child-policy count outside the | -| `InvalidChildPolicy` | `0x46508ef6` | Composite policies are not simple policies. Child policies must be existing | - - - - - diff --git a/docs/base-chain/specs/upgrades/beryl/overview.mdx b/docs/base-chain/specs/upgrades/beryl/overview.mdx index 570d87f57..7301954b7 100644 --- a/docs/base-chain/specs/upgrades/beryl/overview.mdx +++ b/docs/base-chain/specs/upgrades/beryl/overview.mdx @@ -35,21 +35,21 @@ Action required before activation. Upgrade to the required version before each n B20 is Base's native token standard - ERC-20 compatible tokens implemented as Rust precompiles, designed for stablecoin, real-world asset, and long-tail token issuers. - [B20 Token Standard](/base-chain/network-information/b20-token-standard) -- [B20 Specification](/base-chain/specs/upgrades/beryl/b20/specification) -- [Roles Model](/base-chain/specs/upgrades/beryl/b20/specification#roles-model) -- [Policy Integration](/base-chain/specs/upgrades/beryl/b20/specification#policy-integration) -- [Factory](/base-chain/specs/upgrades/beryl/b20/specification#factory) -- [Policy Registry](/base-chain/specs/upgrades/beryl/b20/specification#policy-registry) -- [Mint & Burn](/base-chain/specs/upgrades/beryl/b20/specification#mint) -- [Variants](/base-chain/specs/upgrades/beryl/b20/specification#variants) -- [B20 changelog](/base-chain/specs/upgrades/beryl/b20/changelog) +- [B20 Specification](/base-chain/specs/reference/b20) +- [Roles Model](/base-chain/specs/reference/b20#roles-model) +- [Policy Integration](/base-chain/specs/reference/b20#policy-integration) +- [Factory](/base-chain/specs/reference/b20#factory) +- [Policy Registry](/base-chain/specs/reference/b20#policy-registry) +- [Mint & Burn](/base-chain/specs/reference/b20#mint) +- [Variants](/base-chain/specs/reference/b20#variants) +- [B20 changelog](/base-chain/specs/reference/b20/changelog) ## Native Account Abstraction (EIP-8130) The [Cobalt upgrade](/base-chain/specs/upgrades/cobalt/overview) brings account abstraction into the protocol. Accounts configure authorized actors and signature validation onchain. Apps get portable smart accounts, scoped session keys, atomic batching, and native gas sponsorship without bundler or relay infrastructure. EIP-8130 is experimental and currently runs only on the vibenet devnet. - [Native Account Abstraction](/base-chain/network-information/native-account-abstraction) -- [Native Account Abstraction Reference](/base-chain/specs/upgrades/cobalt/eip-8130) +- [Native Account Abstraction Reference](/base-chain/specs/reference/native-account-abstraction) ## Withdrawals diff --git a/docs/base-chain/specs/upgrades/cobalt/overview.mdx b/docs/base-chain/specs/upgrades/cobalt/overview.mdx index aeb64134b..3b9b3d66b 100644 --- a/docs/base-chain/specs/upgrades/cobalt/overview.mdx +++ b/docs/base-chain/specs/upgrades/cobalt/overview.mdx @@ -30,4 +30,4 @@ Node software requirements will be published here once Cobalt is scheduled. To f Cobalt brings account abstraction into the protocol. An account registers who can act for it, and how its signatures are checked, in an onchain system contract. The chain validates each transaction against that configuration, so smart accounts work without bundlers, relays, or a separate mempool. - [Native Account Abstraction](/base-chain/network-information/native-account-abstraction): what it is, how it compares to ERC-4337 and EIP-7702, and what it unlocks -- [Native Account Abstraction Reference](/base-chain/specs/upgrades/cobalt/eip-8130): chain details, client setup, transaction structure, account configuration, authenticators, and payers +- [Native Account Abstraction Reference](/base-chain/specs/reference/native-account-abstraction): chain details, client setup, transaction structure, account configuration, authenticators, and payers diff --git a/docs/docs.json b/docs/docs.json index 4807da400..63dc9de5c 100644 --- a/docs/docs.json +++ b/docs/docs.json @@ -107,12 +107,12 @@ { "group": "Core Concepts", "pages": [ - "base-chain/network-information/b20-token-standard", - "base-chain/network-information/native-account-abstraction", "base-chain/network-information/transaction-ordering", "base-chain/network-information/transaction-finality", "base-chain/network-information/throughput-and-limits", "base-chain/network-information/network-fees", + "base-chain/network-information/b20-token-standard", + "base-chain/network-information/native-account-abstraction", "base-chain/network-information/bridging-and-withdrawals" ] }, @@ -348,24 +348,24 @@ { "group": "B20", "pages": [ - "base-chain/specs/upgrades/beryl/b20/specification/index", - "base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses", - "base-chain/specs/upgrades/beryl/b20/specification/reference/errors-and-events-index", + "base-chain/specs/reference/b20/index", + "base-chain/specs/reference/b20/constants-and-addresses", + "base-chain/specs/reference/b20/errors-and-events", { "group": "Interfaces", "pages": [ - "base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IActivationRegistry", - "base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20", - "base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset", - "base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Factory", - "base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Stablecoin", - "base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IPolicyRegistry" + "base-chain/specs/reference/b20/interfaces/IActivationRegistry", + "base-chain/specs/reference/b20/interfaces/IB20", + "base-chain/specs/reference/b20/interfaces/IB20Asset", + "base-chain/specs/reference/b20/interfaces/IB20Factory", + "base-chain/specs/reference/b20/interfaces/IB20Stablecoin", + "base-chain/specs/reference/b20/interfaces/IPolicyRegistry" ] }, - "base-chain/specs/upgrades/beryl/b20/changelog" + "base-chain/specs/reference/b20/changelog" ] }, - "base-chain/specs/upgrades/cobalt/eip-8130" + "base-chain/specs/reference/native-account-abstraction" ] } ] @@ -837,9 +837,29 @@ "source": "/base-chain/specs/upgrades/beryl/b20/demos", "destination": "/base-chain/network-information/b20-token-standard" }, + { + "source": "/base-chain/specs/upgrades/beryl/b20/specification/reference/errors-and-events-index", + "destination": "/base-chain/specs/reference/b20/errors-and-events" + }, + { + "source": "/base-chain/specs/upgrades/beryl/b20/specification/reference/:slug*", + "destination": "/base-chain/specs/reference/b20/:slug*" + }, + { + "source": "/base-chain/specs/upgrades/beryl/b20/specification", + "destination": "/base-chain/specs/reference/b20" + }, + { + "source": "/base-chain/specs/upgrades/beryl/b20/changelog", + "destination": "/base-chain/specs/reference/b20/changelog" + }, + { + "source": "/base-chain/specs/upgrades/cobalt/eip-8130", + "destination": "/base-chain/specs/reference/native-account-abstraction" + }, { "source": "/base-chain/specs/upgrades/beryl/b20", - "destination": "/base-chain/specs/upgrades/beryl/b20/specification" + "destination": "/base-chain/specs/reference/b20" }, { "source": "/ledger/overview", diff --git a/docs/get-started/launch-b20-token.mdx b/docs/get-started/launch-b20-token.mdx index 23111b226..532c8b9e1 100644 --- a/docs/get-started/launch-b20-token.mdx +++ b/docs/get-started/launch-b20-token.mdx @@ -5,7 +5,7 @@ description: "Launch a B20 token on Base with one call to the B20 Factory precom B20 is an ERC-20 superset that runs as a native precompile on Base, which makes transfers cheaper and higher-throughput than a standard contract token while keeping full ERC-20 compatibility. Roles, supply caps, pausing, policy gating, memos, and `permit` are built into the chain. -A standard ERC-20 leaves that logic for you to build, audit, and maintain. With B20, you call the singleton [**B20 Factory**](/base-chain/specs/upgrades/beryl/b20/specification#factory) to create a token, fully configured, in a single transaction. +A standard ERC-20 leaves that logic for you to build, audit, and maintain. With B20, you call the singleton [**B20 Factory**](/base-chain/specs/reference/b20#factory) to create a token, fully configured, in a single transaction. This guide creates an Asset token, mints its initial supply, and verifies the balance onchain. To accept the token as payment in an app, continue with [Accept B20 payments](/apps/guides/accept-b20-payments). @@ -327,4 +327,4 @@ All without writing, deploying, or auditing a token contract. ## Next steps * [Accept B20 payments in an app](/apps/guides/accept-b20-payments): wire this token into a checkout flow that tags each payment with an order ID and reconciles it from onchain events. -* Gate transfers or mints with PolicyRegistry policies, add granular pause, or manage roles. See the [B20 token standard](/base-chain/specs/upgrades/beryl/b20/specification). \ No newline at end of file +* Gate transfers or mints with PolicyRegistry policies, add granular pause, or manage roles. See the [B20 token standard](/base-chain/specs/reference/b20). \ No newline at end of file From f623c1488bab588353a35617345587321f7b514f Mon Sep 17 00:00:00 2001 From: Youssef Date: Tue, 18 Aug 2026 20:16:33 +0100 Subject: [PATCH 08/11] docs: remove the Coming Soon tag from native account abstraction Reverts 3ae34aa8 at the author's request. The page's own warning still states that EIP-8130 is experimental and vibenet-only, and the Cobalt overview lists mainnet and Sepolia activation as TBD. Generated with Claude Code Co-Authored-By: Claude --- .../network-information/native-account-abstraction.mdx | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/base-chain/network-information/native-account-abstraction.mdx b/docs/base-chain/network-information/native-account-abstraction.mdx index 932c844ff..3473e1bd0 100644 --- a/docs/base-chain/network-information/native-account-abstraction.mdx +++ b/docs/base-chain/network-information/native-account-abstraction.mdx @@ -1,7 +1,6 @@ --- title: "Native Account Abstraction" description: "Understand native account abstraction on Base. EIP-8130 smart accounts send ordinary transactions, with no bundlers, relays, or paymaster infrastructure." -tag: "Coming Soon" --- Native account abstraction makes smart accounts a property of the chain instead of something bolted on around it. An account records who is allowed to act for it, and how its signatures are checked, in an onchain system contract. Base validates every transaction against that configuration, so smart accounts send ordinary transactions. From d29cc397ac29fc0b50f4d6d4adfb7f274d70d465 Mon Sep 17 00:00:00 2001 From: Youssef Date: Tue, 18 Aug 2026 20:25:26 +0100 Subject: [PATCH 09/11] docs: tag native account abstraction as Soon Restores a nav tag on the page, shortened from "Coming Soon" so it fits alongside the label without pushing onto a second line. Generated with Claude Code Co-Authored-By: Claude --- .../network-information/native-account-abstraction.mdx | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/base-chain/network-information/native-account-abstraction.mdx b/docs/base-chain/network-information/native-account-abstraction.mdx index 3473e1bd0..b7010eab8 100644 --- a/docs/base-chain/network-information/native-account-abstraction.mdx +++ b/docs/base-chain/network-information/native-account-abstraction.mdx @@ -1,6 +1,7 @@ --- title: "Native Account Abstraction" description: "Understand native account abstraction on Base. EIP-8130 smart accounts send ordinary transactions, with no bundlers, relays, or paymaster infrastructure." +tag: "Soon" --- Native account abstraction makes smart accounts a property of the chain instead of something bolted on around it. An account records who is allowed to act for it, and how its signatures are checked, in an onchain system contract. Base validates every transaction against that configuration, so smart accounts send ordinary transactions. From a6d88bab989a400bcd75168b5c98165acbd56c14 Mon Sep 17 00:00:00 2001 From: sohey Date: Tue, 18 Aug 2026 21:38:36 +0200 Subject: [PATCH 10/11] updated b20 token standard page --- .../b20-token-standard.mdx | 167 +++++++++--------- 1 file changed, 83 insertions(+), 84 deletions(-) diff --git a/docs/base-chain/network-information/b20-token-standard.mdx b/docs/base-chain/network-information/b20-token-standard.mdx index e2bb2932f..e3daf558d 100644 --- a/docs/base-chain/network-information/b20-token-standard.mdx +++ b/docs/base-chain/network-information/b20-token-standard.mdx @@ -1,99 +1,106 @@ --- title: "B20 Token Standard" -description: "B20 is Base's native ERC-20-compatible token standard, implemented as Rust precompiles with chain-native roles, policies, memos, pausing, and supply caps." +description: "Learn about B20, Base's native ERC-20-compatible token standard." tag: "New" --- -B20 is Base's native token standard: an ERC-20 superset implemented as Rust precompiles rather than deployed Solidity contracts. Running as a precompile makes transfers cheaper and higher-throughput than a standard contract token while keeping full ERC-20 compatibility. +## What is B20? -Roles, policy gating, memos, pausing, supply caps, and ERC-2612 `permit` are built into the chain. A standard ERC-20 leaves that logic for you to build, audit, and maintain. +B20 is Base's native token standard for stablecoins, real-world assets (RWAs), and other fungible tokens. It retains ERC-20 compatibility, so wallets, exchanges, and apps can use B20 tokens through standard ERC-20 flows. Issuers can add B20 controls without requiring those integrations to use a new token interface. -B20 is designed for stablecoin, real-world asset (RWA), and long-tail token issuers. It shipped with the [Beryl upgrade](/base-chain/specs/upgrades/beryl/overview). +The [B20 Factory](/base-chain/specs/reference/b20#factory) establishes a token's operational configuration. The factory applies the configuration atomically, so the token starts with the selected controls. The issuer supplies roles, policies, supply limits, pause controls, and metadata for that configuration. -## ERC-20 compatibility +After creation, the token applies its configuration to each operation. [Roles](/base-chain/specs/reference/b20#roles-model) control privileged issuer actions. The token queries the [PolicyRegistry](/base-chain/specs/reference/b20#policy-registry) for configured authorization checks. Holders can transfer and approve tokens. Apps and indexers continue to use standard ERC-20 calls and events. -B20 is a superset of ERC-20. Standard calls and events keep selector and behavior parity: +## Why B20? -`transfer`, `transferFrom`, `approve`, `allowance`, `balanceOf`, `totalSupply`, `name`, `symbol`, `decimals`, `Transfer`, and `Approval`. +Token issuers may need controls beyond ordinary transfers. Examples include mint permissions, transfer restrictions, operation pauses, and payment references. A standard ERC-20 requires issuers to implement these controls in a custom contract. B20 standardizes the controls that issuers configure for a token. -B20-specific methods extend the standard without changing the ERC-20 surface, so an app that accepts ERC-20 tokens accepts B20 with no code changes. +The standard includes: - -B20 tokens range from 6 to 18 decimals, so read `decimals()` rather than assuming 18. - - -## Try it +- **Issuer controls:** B20 includes [roles](/base-chain/specs/reference/b20#roles-model), [policy scopes](/base-chain/specs/reference/b20#policy-integration), [supply caps](/base-chain/specs/reference/b20#supply-cap), [pauses](/base-chain/specs/reference/b20#pause), [memos](/base-chain/specs/reference/b20#memos), and [signed approvals](/base-chain/specs/reference/b20#erc-2612-permit--eip-712). +- **Integration surface:** B20 retains [ERC-20 compatibility](/base-chain/specs/reference/b20#erc-20-compatibility). B20-specific functionality uses a consistent interface. +- **Execution model:** B20 runs as a precompile. [Precompile addresses](/base-chain/specs/reference/b20#precompile-addresses) define the protocol entry points. -The B20 demo runs the standard's issuer flows in the browser, with no wallet or setup required. +## How B20 works - - - +The diagram shows the B20 lifecycle. The issuer configures the token during creation. The token applies that configuration during later operations. Use the diagram to identify the component that controls each part of the lifecycle. -If the demo does not load above, [open it in a new tab](https://chain.base.org/demos/b20). +```mermaid +flowchart LR + AR[ActivationRegistry] -->|enables a B20 variant| F[B20 Factory] + I[Issuer] -->|chooses variant and initial configuration| F + F -->|creates and initializes| T[B20 token] + I -->|assigns roles and policy scopes| T + I -->|manages allowlists and blocklists| PR[PolicyRegistry] + T -->|checks configured policy scopes| PR + U[Holders and ERC-20 apps] -->|transfer, approve, balanceOf| T + O[Issuer operators] -->|mint, pause, seize, update metadata| T +``` -## What B20 adds to ERC-20 +In practice, the flow is: -| Feature | Behavior | -|---|---| -| [Roles](/base-chain/specs/reference/b20#roles-model) | Role-based access control with fixed built-in roles. `MINT_ROLE`, `BURN_ROLE`, `SEIZE_ROLE`, `PAUSE_ROLE`, `UNPAUSE_ROLE`, and `METADATA_ROLE` each gate their own operations; `DEFAULT_ADMIN_ROLE` gates role and configuration changes. | -| [Policies](/base-chain/specs/reference/b20#policy-registry) | A singleton PolicyRegistry precompile stores policies addressed by `uint64 policyId`, with `BLOCKLIST`, `ALLOWLIST`, and composite `UNION` and `INTERSECT` types. Tokens call `isAuthorized(policyId, account)` during gated operations. | -| [Policy scopes](/base-chain/specs/reference/b20#policy-integration) | Each token stores one policy ID per scope, covering transfer sender, receiver, and executor, mint receiver, and seize holder and receiver. All default to `ALWAYS_ALLOW`. `approve` and `permit` are not policy-gated. | -| [Seize](/base-chain/specs/reference/b20#seize) | `seizeWithMemo(from, to, amount, memo)` moves a balance and emits `Transfer`, `Memo`, and `Seized`. It skips allowance and transfer policies, requires `from` to be denied by `SEIZE_HOLDER_POLICY`, and requires `to` to be authorized by `SEIZE_RECEIVER_POLICY`. | -| [Granular pause](/base-chain/specs/reference/b20#pause) | Pause by `PausableFeature`: `TRANSFER`, `MINT`, `BURN`, and `SEIZE` independently, rather than halting the whole token. | -| [Memos](/base-chain/specs/reference/b20#memos) | Memo-enabled operations emit `Memo(address indexed caller, bytes32 indexed memo)` immediately after the primary event. Indexers join memo logs to the parent log with `(transactionHash, logIndex - 1)`. | -| [Supply cap](/base-chain/specs/reference/b20#supply-cap) | Optional enforced ceiling on `totalSupply`. The sentinel `type(uint128).max` means no practical cap and is also the maximum permitted supply. | -| [ERC-2612 `permit`](/base-chain/specs/reference/b20#erc-2612-permit--eip-712) | Signed approvals with an EIP-712 domain of `(name, version, chainId, verifyingContract)` and `version` fixed at `"1"`. ERC-1271 contract signatures are not accepted. | -| [Contract URI](/base-chain/specs/reference/b20#contract-uri-erc-7572) | `contractURI()` returns offchain token metadata per ERC-7572, updatable under `METADATA_ROLE`. | -| [Factory](/base-chain/specs/reference/b20#factory) | All tokens are created through a singleton factory precompile via `createB20(variant, salt, params, initCalls)`, which dispatches bootstrap calls so a token arrives configured in one transaction. | - -### Deterministic addresses - -Token addresses are derived from the deployer and a caller-chosen salt, and encode the variant in the address itself: - -```text -[10-byte B20 prefix][1-byte variant][9-byte keccak256(deployer, salt)] -``` +1. **Choose a variant.** Check [activation](/get-started/launch-b20-token#verify-the-activation-registry-is-enabled) for the selected variant. +2. **Create the token.** The issuer calls the factory with creation parameters and bootstrap calls. [Factory creation](/base-chain/specs/reference/b20#factory) defines the call. [Address derivation](/base-chain/specs/reference/b20#address-derivation) defines the token address. +3. **Configure operations.** Built-in roles gate sensitive operations. [Policy scopes](/base-chain/specs/reference/b20#policy-integration) authorize or deny accounts for each operation. +4. **Use the token.** Holders and applications use ordinary ERC-20 methods. B20 methods can add a memo or perform an issuer operation. -The factory exposes `getB20Address`, `isB20`, and `isB20Initialized`, so you can recognize and pre-compute a B20 address before the token exists. +## What can I do with B20? -### Admin renunciation + + + Create a token. Set a supply cap. Assign roles for minting, pausing, seizure, and metadata. [Manage roles](/base-chain/specs/reference/b20#roles-model). + + + Connect allowlists, blocklists, or composite policies to transfer, mint, and seizure scopes. Scopes allow every account by default. [Set policies](/base-chain/specs/reference/b20#policy-integration). + + + Pause transfers, mints, burns, or seizures independently. Authorized operators can mint, burn, or seize balances. [Review pauses](/base-chain/specs/reference/b20#pause) and [seizures](/base-chain/specs/reference/b20#seize). + + + Memo-enabled operations emit a `bytes32` reference. The reference can identify an order or invoice. [Review memo events](/base-chain/specs/reference/b20#memos). + + + Use ERC-2612 [`permit`](/base-chain/specs/reference/b20#erc-2612-permit--eip-712) for signed approvals. Standard `approve` and allowance flows remain available. + + + Asset tokens support scaled UI balances, announcements, batch minting, and extra metadata. [Review Asset features](/base-chain/specs/reference/b20#asset). + + -The final `DEFAULT_ADMIN_ROLE` holder cannot be removed with `renounceRole` or `revokeRole`; both revert with `LastAdminCannotRenounce`. `renounceLastAdmin()` is the only normal path to admin-less operation. A token can also launch admin-less by setting `initialAdmin == address(0)` at creation. Afterwards, admin-gated functions are permanently uncallable and admin resurrection is blocked. +### Choose the right variant -## Variants +Every B20 token uses one of two variants. The issuer chooses the variant during creation. The choice determines the token's decimals and additional methods. Use the table to select the variant for the token's use case. -Every B20 token is one of two variants, chosen at creation. +| Variant | Best for | Key differences | +|---|---|---| +| **Asset** | RWAs, equities, funds, and long-tail assets | Configurable 6 to 18 decimals. Multipliers, announcements, batch minting, and extra metadata. | +| **Stablecoin** | Fiat-referenced stablecoins | Fixed 6 decimals. An immutable uppercase currency code such as `USD`. The code validates format only. It does not validate reserves, legal status, or registration. | -| Variant | Byte | Decimals | Additional surface | -|---|---:|---|---| -| `ASSET` | `0x00` | 6-18, configured at creation | Multiplier, announcements, batch mint, extra metadata | -| `STABLECOIN` | `0x01` | Fixed 6 | `currency()` | +This overview does not define method-level behavior. Read the [B20 technical specification](/base-chain/specs/reference/b20) for methods, events, errors, and configuration rules. Read the [generated interface reference](/base-chain/specs/reference/b20/interfaces/IB20) when you need the full callable interface. -**Asset** adds `OPERATOR_ROLE` and scaled UI balances. The WAD-precision multiplier scales UI balance reads while raw balances stay unchanged, so a 2-for-1 split is one call rather than a migration or a new contract. `announce` emits `Announcement`, dispatches internal calls, and emits `EndAnnouncement`, which puts a corporate action and its disclosure onchain together. `batchMint` mints to parallel recipient and amount arrays atomically, and `extraMetadata` stores issuer-defined values such as a CUSIP. +## How can I get started? -**Stablecoin** adds `currency()`, set once at creation and restricted to uppercase `A`-`Z`. B20 validates the code format, not the issuer claim, reserves, legal status, or external registration. +### Explore the issuer flow -## Precompiles and activation +The B20 demo runs issuer flows in the browser. Use the demo to explore token creation and issuer controls before you integrate B20. The demo does not require a wallet or setup. -| Precompile | Address | -|---|---| -| B20Factory | `0xB20f000000000000000000000000000000000000` | -| ActivationRegistry | `0x8453000000000000000000000000000000000001` | -| PolicyRegistry | `0x8453000000000000000000000000000000000002` | + + + -Each variant is gated by the ActivationRegistry, as are state-changing PolicyRegistry calls; registry read functions are always callable. `createB20` reverts with `FeatureNotActivated` if the requested variant is not active on the network, so check `isActivated` for `base.b20_asset` or `base.b20_stablecoin` before deploying. +[Open the demo in a new tab](https://chain.base.org/demos/b20). -Standard `forge` cannot simulate calls to B20 precompile addresses, because they hold no contract bytecode, and aborts with `call to non-contract address`. Use Base's Foundry build (`base-forge`, `base-cast`, [`base-anvil`](https://github.com/base/base-anvil)), which registers the precompiles into its EVM. +Standard `forge` cannot simulate B20 precompile calls. B20 precompile addresses have no contract bytecode. Use Base's Foundry build: `base-forge`, `base-cast`, and `base-anvil`. The tools register B20 precompiles in their EVM. ## Availability @@ -103,33 +110,25 @@ Standard `forge` cannot simulate calls to B20 precompile addresses, because they | Base mainnet | 2026-06-25 (Beryl) | | Base Sepolia | 2026-06-18 (Beryl) | -## When to use B20 - -- You need compliance, reconciliation, or corporate-action machinery. It ships as part of the standard, so you don't build and audit a custom contract. -- Your integrators matter. Exchanges, wallets, and indexers wire up one surface that behaves the same across every B20 token. -- Cost matters. B20 runs as a native precompile: cheaper and faster than a contract token. - -Because B20 is a superset of ERC-20, choosing it carries no compatibility trade-off. - ## Next steps - Create a fully configured token in one factory call. + Create a token with one factory call. - Integrate memo-tagged payments and handle B20-specific reverts. + Integrate memo-tagged payments. Handle B20-specific reverts. - - The normative standard: roles, policies, factory, variants, and events. + + Read the normative standard. - - Precompile addresses, role identifiers, policy scopes, variant bytes, and supply-cap constants. + + Find protocol constants and addresses. - - Every method on `IB20`, `IB20Asset`, `IB20Stablecoin`, and the registries. + + Browse B20 and registry methods. - - Changes to the standard, release by release. + + Review standard changes by release. From 4ff5c14d67118c1dabd8ff5ccdda22987f71d8ba Mon Sep 17 00:00:00 2001 From: sohey Date: Tue, 18 Aug 2026 22:05:24 +0200 Subject: [PATCH 11/11] docs: streamline B20 reference navigation --- .../b20/interfaces/IActivationRegistry.mdx | 5 --- .../IActivationRegistry/activate.mdx | 5 --- .../interfaces/IActivationRegistry/admin.mdx | 5 --- .../IActivationRegistry/checkActivated.mdx | 5 --- .../IActivationRegistry/deactivate.mdx | 5 --- .../IActivationRegistry/isActivated.mdx | 5 --- .../specs/reference/b20/interfaces/IB20.mdx | 5 --- .../b20/interfaces/IB20/BURN_BLOCKED_ROLE.mdx | 14 +++--- .../b20/interfaces/IB20/BURN_ROLE.mdx | 11 ++--- .../interfaces/IB20/DEFAULT_ADMIN_ROLE.mdx | 14 +++--- .../b20/interfaces/IB20/DOMAIN_SEPARATOR.mdx | 14 +++--- .../b20/interfaces/IB20/METADATA_ROLE.mdx | 11 ++--- .../interfaces/IB20/MINT_RECEIVER_POLICY.mdx | 16 +++---- .../b20/interfaces/IB20/MINT_ROLE.mdx | 11 ++--- .../b20/interfaces/IB20/PAUSE_ROLE.mdx | 11 ++--- .../interfaces/IB20/SEIZE_HOLDER_POLICY.mdx | 15 +++---- .../interfaces/IB20/SEIZE_RECEIVER_POLICY.mdx | 15 +++---- .../b20/interfaces/IB20/SEIZE_ROLE.mdx | 11 ++--- .../IB20/TRANSFER_EXECUTOR_POLICY.mdx | 18 +++----- .../IB20/TRANSFER_RECEIVER_POLICY.mdx | 15 +++---- .../IB20/TRANSFER_SENDER_POLICY.mdx | 15 +++---- .../b20/interfaces/IB20/UNPAUSE_ROLE.mdx | 11 ++--- .../b20/interfaces/IB20/allowance.mdx | 22 +++++----- .../reference/b20/interfaces/IB20/approve.mdx | 29 +++++++----- .../b20/interfaces/IB20/balanceOf.mdx | 20 +++++---- .../reference/b20/interfaces/IB20/burn.mdx | 26 ++++++----- .../b20/interfaces/IB20/burnBlocked.mdx | 34 +++++++------- .../b20/interfaces/IB20/burnWithMemo.mdx | 19 ++++---- .../b20/interfaces/IB20/contractURI.mdx | 11 ++--- .../b20/interfaces/IB20/decimals.mdx | 11 ++--- .../b20/interfaces/IB20/eip712Domain.mdx | 25 +++++------ .../b20/interfaces/IB20/getRoleAdmin.mdx | 22 +++++----- .../b20/interfaces/IB20/grantRole.mdx | 22 +++++----- .../reference/b20/interfaces/IB20/hasRole.mdx | 24 +++++----- .../b20/interfaces/IB20/isPaused.mdx | 20 +++++---- .../reference/b20/interfaces/IB20/mint.mdx | 29 ++++++------ .../b20/interfaces/IB20/mintWithMemo.mdx | 21 +++++---- .../reference/b20/interfaces/IB20/name.mdx | 11 ++--- .../reference/b20/interfaces/IB20/nonces.mdx | 20 +++++---- .../reference/b20/interfaces/IB20/pause.mdx | 24 +++++----- .../b20/interfaces/IB20/pausedFeatures.mdx | 13 +++--- .../reference/b20/interfaces/IB20/permit.mdx | 39 ++++++++-------- .../b20/interfaces/IB20/policyId.mdx | 25 ++++++----- .../b20/interfaces/IB20/renounceLastAdmin.mdx | 16 +++---- .../b20/interfaces/IB20/renounceRole.mdx | 23 +++++----- .../b20/interfaces/IB20/revokeRole.mdx | 25 ++++++----- .../b20/interfaces/IB20/seizeWithMemo.mdx | 44 +++++++++---------- .../b20/interfaces/IB20/setRoleAdmin.mdx | 22 +++++----- .../b20/interfaces/IB20/supplyCap.mdx | 15 +++---- .../reference/b20/interfaces/IB20/symbol.mdx | 11 ++--- .../b20/interfaces/IB20/totalSupply.mdx | 11 ++--- .../b20/interfaces/IB20/transfer.mdx | 36 ++++++++------- .../b20/interfaces/IB20/transferFrom.mdx | 42 ++++++++++-------- .../interfaces/IB20/transferFromWithMemo.mdx | 28 ++++++------ .../b20/interfaces/IB20/transferWithMemo.mdx | 26 ++++++----- .../reference/b20/interfaces/IB20/unpause.mdx | 24 +++++----- .../b20/interfaces/IB20/updateContractURI.mdx | 23 +++++----- .../b20/interfaces/IB20/updateName.mdx | 20 +++++---- .../b20/interfaces/IB20/updatePolicy.mdx | 26 ++++++----- .../b20/interfaces/IB20/updateSupplyCap.mdx | 25 ++++++----- .../b20/interfaces/IB20/updateSymbol.mdx | 20 +++++---- .../reference/b20/interfaces/IB20Asset.mdx | 5 --- .../IB20Asset/MAX_UI_MULTIPLIER.mdx | 4 -- .../interfaces/IB20Asset/OPERATOR_ROLE.mdx | 5 --- .../interfaces/IB20Asset/WAD_PRECISION.mdx | 5 --- .../b20/interfaces/IB20Asset/announce.mdx | 5 --- .../b20/interfaces/IB20Asset/balanceOfUI.mdx | 4 -- .../b20/interfaces/IB20Asset/batchMint.mdx | 5 --- .../IB20Asset/cancelUIMultiplierUpdate.mdx | 5 --- .../b20/interfaces/IB20Asset/effectiveAt.mdx | 4 -- .../interfaces/IB20Asset/extraMetadata.mdx | 5 --- .../b20/interfaces/IB20Asset/fromUIAmount.mdx | 4 -- .../IB20Asset/isAnnouncementIdUsed.mdx | 5 --- .../b20/interfaces/IB20Asset/multiplier.mdx | 5 --- .../interfaces/IB20Asset/newUIMultiplier.mdx | 4 -- .../interfaces/IB20Asset/scaledBalanceOf.mdx | 5 --- .../b20/interfaces/IB20Asset/toRawBalance.mdx | 5 --- .../interfaces/IB20Asset/toScaledBalance.mdx | 5 --- .../b20/interfaces/IB20Asset/toUIAmount.mdx | 4 -- .../interfaces/IB20Asset/totalSupplyUI.mdx | 4 -- .../b20/interfaces/IB20Asset/uiMultiplier.mdx | 4 -- .../IB20Asset/updateExtraMetadata.mdx | 5 --- .../interfaces/IB20Asset/updateMultiplier.mdx | 5 --- .../IB20Asset/updateUIMultiplier.mdx | 5 --- .../reference/b20/interfaces/IB20Factory.mdx | 5 --- .../b20/interfaces/IB20Factory/createB20.mdx | 5 --- .../interfaces/IB20Factory/getB20Address.mdx | 5 --- .../b20/interfaces/IB20Factory/isB20.mdx | 5 --- .../IB20Factory/isB20Initialized.mdx | 5 --- .../b20/interfaces/IB20Stablecoin.mdx | 5 --- .../interfaces/IB20Stablecoin/currency.mdx | 5 --- .../b20/interfaces/IPolicyRegistry.mdx | 5 --- .../MAX_COMPOSITE_CHILD_POLICIES.mdx | 5 --- .../MIN_COMPOSITE_CHILD_POLICIES.mdx | 5 --- .../compositePolicyChildIds.mdx | 5 --- .../IPolicyRegistry/createCompositePolicy.mdx | 5 --- .../IPolicyRegistry/createPolicy.mdx | 5 --- .../createPolicyWithAccounts.mdx | 5 --- .../IPolicyRegistry/finalizeUpdateAdmin.mdx | 5 --- .../IPolicyRegistry/isAuthorized.mdx | 5 --- .../IPolicyRegistry/pendingPolicyAdmin.mdx | 5 --- .../IPolicyRegistry/policyAdmin.mdx | 5 --- .../IPolicyRegistry/policyExists.mdx | 5 --- .../IPolicyRegistry/renounceAdmin.mdx | 5 --- .../IPolicyRegistry/stageUpdateAdmin.mdx | 5 --- .../IPolicyRegistry/updateAllowlist.mdx | 5 --- .../IPolicyRegistry/updateBlocklist.mdx | 5 --- .../IPolicyRegistry/updateComposite.mdx | 5 --- 108 files changed, 545 insertions(+), 823 deletions(-) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IActivationRegistry.mdx b/docs/base-chain/specs/reference/b20/interfaces/IActivationRegistry.mdx index 08a8a41dc..80b2ea411 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IActivationRegistry.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IActivationRegistry.mdx @@ -30,8 +30,3 @@ description: "Generated B20 reference for IActivationRegistry functions, events, | `FeatureNotActivated` | `0xb9b2a425` | Feature is not activated. | | `DelegateCallNotAllowed` | `0x0d89438e` | The precompile was invoked via `DELEGATECALL` or `CALLCODE`. | | `StaticCallNotAllowed` | `0xbeaba5b7` | A state-mutating entry point was invoked from a `STATICCALL` frame. | - - - - - diff --git a/docs/base-chain/specs/reference/b20/interfaces/IActivationRegistry/activate.mdx b/docs/base-chain/specs/reference/b20/interfaces/IActivationRegistry/activate.mdx index 5aa41839e..ad20f32cf 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IActivationRegistry/activate.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IActivationRegistry/activate.mdx @@ -38,8 +38,3 @@ No direct policy interaction. ```solidity IActivationRegistry(target).activate(arg0); ``` - -## Related - -- [IActivationRegistry reference](/base-chain/specs/reference/b20/interfaces/IActivationRegistry) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IActivationRegistry/admin.mdx b/docs/base-chain/specs/reference/b20/interfaces/IActivationRegistry/admin.mdx index 136b01f7e..05f5df066 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IActivationRegistry/admin.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IActivationRegistry/admin.mdx @@ -34,8 +34,3 @@ No direct policy interaction. ```solidity IActivationRegistry(target).admin(); ``` - -## Related - -- [IActivationRegistry reference](/base-chain/specs/reference/b20/interfaces/IActivationRegistry) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IActivationRegistry/checkActivated.mdx b/docs/base-chain/specs/reference/b20/interfaces/IActivationRegistry/checkActivated.mdx index cb3796c7f..9acede31f 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IActivationRegistry/checkActivated.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IActivationRegistry/checkActivated.mdx @@ -36,8 +36,3 @@ No direct policy interaction. ```solidity IActivationRegistry(target).checkActivated(arg0); ``` - -## Related - -- [IActivationRegistry reference](/base-chain/specs/reference/b20/interfaces/IActivationRegistry) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IActivationRegistry/deactivate.mdx b/docs/base-chain/specs/reference/b20/interfaces/IActivationRegistry/deactivate.mdx index 9fa5a0501..66a821696 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IActivationRegistry/deactivate.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IActivationRegistry/deactivate.mdx @@ -38,8 +38,3 @@ No direct policy interaction. ```solidity IActivationRegistry(target).deactivate(arg0); ``` - -## Related - -- [IActivationRegistry reference](/base-chain/specs/reference/b20/interfaces/IActivationRegistry) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IActivationRegistry/isActivated.mdx b/docs/base-chain/specs/reference/b20/interfaces/IActivationRegistry/isActivated.mdx index e3bebc5ce..141e3906f 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IActivationRegistry/isActivated.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IActivationRegistry/isActivated.mdx @@ -35,8 +35,3 @@ No direct policy interaction. ```solidity IActivationRegistry(target).isActivated(arg0); ``` - -## Related - -- [IActivationRegistry reference](/base-chain/specs/reference/b20/interfaces/IActivationRegistry) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20.mdx index 4ab089fae..132933833 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20.mdx @@ -113,8 +113,3 @@ description: "Generated B20 reference for IB20 functions, events, and errors." | `LastAdminCannotRenounce` | `0x361513e7` | `renounceRole(DEFAULT_ADMIN_ROLE, ...)` was called by the sole remaining admin. | | `NotSoleAdmin` | `0x2a98e73b` | `renounceLastAdmin()` was called when other accounts also hold `DEFAULT_ADMIN_ROLE`. | | `AccessControlBadConfirmation` | `0x6697b232` | The `callerConfirmation` argument to `renounceRole` was not `msg.sender`. | - - - - - diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20/BURN_BLOCKED_ROLE.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/BURN_BLOCKED_ROLE.mdx index c5673ec54..49c9a70dc 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20/BURN_BLOCKED_ROLE.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/BURN_BLOCKED_ROLE.mdx @@ -4,7 +4,6 @@ description: "Generated B20 reference for BURN_BLOCKED_ROLE()." --- -[Related concept](/base-chain/specs/reference/b20) ## Signature @@ -19,9 +18,11 @@ function BURN_BLOCKED_ROLE() external view returns (bytes32); ## Description -Required to call the deprecated `burnBlocked` (retained for -the back-compat impl). -Return: Role constant. +Required to call the deprecated `burnBlocked` (retained for the back-compat impl). + +## Returns + +Role constant. ## Access control @@ -36,8 +37,3 @@ No direct policy interaction. ```solidity IB20(target).BURN_BLOCKED_ROLE(); ``` - -## Related - -- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20/BURN_ROLE.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/BURN_ROLE.mdx index 31cf829dd..a279e1db4 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20/BURN_ROLE.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/BURN_ROLE.mdx @@ -4,7 +4,6 @@ description: "Generated B20 reference for BURN_ROLE()." --- -[Related concept](/base-chain/specs/reference/b20) ## Signature @@ -20,7 +19,10 @@ function BURN_ROLE() external view returns (bytes32); ## Description Required to call `burn` and `burnWithMemo`. -Return: Role constant. + +## Returns + +Role constant. ## Access control @@ -35,8 +37,3 @@ No direct policy interaction. ```solidity IB20(target).BURN_ROLE(); ``` - -## Related - -- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20/DEFAULT_ADMIN_ROLE.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/DEFAULT_ADMIN_ROLE.mdx index 2b5d11617..52978c513 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20/DEFAULT_ADMIN_ROLE.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/DEFAULT_ADMIN_ROLE.mdx @@ -4,7 +4,6 @@ description: "Generated B20 reference for DEFAULT_ADMIN_ROLE()." --- -[Related concept](/base-chain/specs/reference/b20) ## Signature @@ -19,9 +18,11 @@ function DEFAULT_ADMIN_ROLE() external view returns (bytes32); ## Description -The default top-level admin role (`bytes32(0)`). Required to call `grantRole`, `revokeRole`, -`setRoleAdmin`, `updatePolicy`, and `updateSupplyCap`. -Return: Role constant. +The default top-level admin role (`bytes32(0)`). Required to call `grantRole`, `revokeRole`, `setRoleAdmin`, `updatePolicy`, and `updateSupplyCap`. + +## Returns + +Role constant. ## Access control @@ -36,8 +37,3 @@ No direct policy interaction. ```solidity IB20(target).DEFAULT_ADMIN_ROLE(); ``` - -## Related - -- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20/DOMAIN_SEPARATOR.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/DOMAIN_SEPARATOR.mdx index d9e9c0f0f..60b3799d5 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20/DOMAIN_SEPARATOR.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/DOMAIN_SEPARATOR.mdx @@ -4,7 +4,6 @@ description: "Generated B20 reference for DOMAIN_SEPARATOR()." --- -[Related concept](/base-chain/specs/reference/b20) ## Signature @@ -19,9 +18,11 @@ function DOMAIN_SEPARATOR() external view returns (bytes32); ## Description -The current EIP-712 domain separator for this token. Recomputed on each call so it -remains correct after `updateName` or a chain fork that changes `block.chainid`. -Return: Current domain separator. +The current EIP-712 domain separator for this token. Recomputed on each call so it remains correct after `updateName` or a chain fork that changes `block.chainid`. + +## Returns + +Current domain separator. ## Access control @@ -36,8 +37,3 @@ No direct policy interaction. ```solidity IB20(target).DOMAIN_SEPARATOR(); ``` - -## Related - -- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20/METADATA_ROLE.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/METADATA_ROLE.mdx index b4bbaa31f..7de7b5a47 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20/METADATA_ROLE.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/METADATA_ROLE.mdx @@ -4,7 +4,6 @@ description: "Generated B20 reference for METADATA_ROLE()." --- -[Related concept](/base-chain/specs/reference/b20) ## Signature @@ -20,7 +19,10 @@ function METADATA_ROLE() external view returns (bytes32); ## Description Required to call `updateName`, `updateSymbol`, and `updateContractURI`. -Return: Role constant. + +## Returns + +Role constant. ## Access control @@ -35,8 +37,3 @@ No direct policy interaction. ```solidity IB20(target).METADATA_ROLE(); ``` - -## Related - -- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20/MINT_RECEIVER_POLICY.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/MINT_RECEIVER_POLICY.mdx index d08424ac4..6a538f2f6 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20/MINT_RECEIVER_POLICY.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/MINT_RECEIVER_POLICY.mdx @@ -4,7 +4,6 @@ description: "Generated B20 reference for MINT_RECEIVER_POLICY()." --- -[Related concept](/base-chain/specs/reference/b20) ## Signature @@ -20,10 +19,12 @@ function MINT_RECEIVER_POLICY() external view returns (bytes32); ## Description Policy slot consulted against `to` on every mint. -Dev: Unlike the transfer-side policies, this slot is ALWAYS enforced — including for -factory-originated mints during the creation (bootstrap) window — so new supply is never -issued to a policy-denied recipient even at creation. See `IB20Factory.createB20`. -Return: Policy scope constant. + +Unlike transfer-side policies, this slot is always enforced. Factory-originated mints also check this slot during the creation window. A policy-denied recipient cannot receive new supply at creation. See `IB20Factory.createB20`. + +## Returns + +Policy scope constant. ## Access control @@ -38,8 +39,3 @@ No direct policy interaction. ```solidity IB20(target).MINT_RECEIVER_POLICY(); ``` - -## Related - -- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20/MINT_ROLE.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/MINT_ROLE.mdx index dc1372a1b..8b27ed89f 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20/MINT_ROLE.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/MINT_ROLE.mdx @@ -4,7 +4,6 @@ description: "Generated B20 reference for MINT_ROLE()." --- -[Related concept](/base-chain/specs/reference/b20) ## Signature @@ -20,7 +19,10 @@ function MINT_ROLE() external view returns (bytes32); ## Description Required to call `mint` and `mintWithMemo`. -Return: Role constant. + +## Returns + +Role constant. ## Access control @@ -35,8 +37,3 @@ No direct policy interaction. ```solidity IB20(target).MINT_ROLE(); ``` - -## Related - -- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20/PAUSE_ROLE.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/PAUSE_ROLE.mdx index d5e20ca89..856793b5c 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20/PAUSE_ROLE.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/PAUSE_ROLE.mdx @@ -4,7 +4,6 @@ description: "Generated B20 reference for PAUSE_ROLE()." --- -[Related concept](/base-chain/specs/reference/b20) ## Signature @@ -20,7 +19,10 @@ function PAUSE_ROLE() external view returns (bytes32); ## Description Required to call `pause`. -Return: Role constant. + +## Returns + +Role constant. ## Access control @@ -35,8 +37,3 @@ No direct policy interaction. ```solidity IB20(target).PAUSE_ROLE(); ``` - -## Related - -- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20/SEIZE_HOLDER_POLICY.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/SEIZE_HOLDER_POLICY.mdx index 34f7f73a8..930fffd71 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20/SEIZE_HOLDER_POLICY.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/SEIZE_HOLDER_POLICY.mdx @@ -4,7 +4,6 @@ description: "Generated B20 reference for SEIZE_HOLDER_POLICY()." --- -[Related concept](/base-chain/specs/reference/b20) ## Signature @@ -20,9 +19,12 @@ function SEIZE_HOLDER_POLICY() external view returns (bytes32); ## Description Policy slot consulted against `from` by `seizeWithMemo`. -Dev: A `from` is seizable only when it is NOT authorized by this policy. An unset slot reads as `0` -(always-allow), so no account is seizable until an issuer configures the slot. -Return: Policy scope constant. + +A `from` is seizable only when it is NOT authorized by this policy. An unset slot reads as `0` (always-allow), so no account is seizable until an issuer configures the slot. + +## Returns + +Policy scope constant. ## Access control @@ -37,8 +39,3 @@ No direct policy interaction. ```solidity IB20(target).SEIZE_HOLDER_POLICY(); ``` - -## Related - -- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20/SEIZE_RECEIVER_POLICY.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/SEIZE_RECEIVER_POLICY.mdx index f1d66127e..2aff35b4c 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20/SEIZE_RECEIVER_POLICY.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/SEIZE_RECEIVER_POLICY.mdx @@ -4,7 +4,6 @@ description: "Generated B20 reference for SEIZE_RECEIVER_POLICY()." --- -[Related concept](/base-chain/specs/reference/b20) ## Signature @@ -20,9 +19,12 @@ function SEIZE_RECEIVER_POLICY() external view returns (bytes32); ## Description Policy slot consulted against `to` by `seizeWithMemo`. -Dev: Mirrors `MINT_RECEIVER_POLICY`: always enforced on the seize destination. An unset slot reads -as `0` (always-allow), so seize may send anywhere until an issuer configures the slot. -Return: Policy scope constant. + +Mirrors `MINT_RECEIVER_POLICY`: always enforced on the seize destination. An unset slot reads as `0` (always-allow), so seize may send anywhere until an issuer configures the slot. + +## Returns + +Policy scope constant. ## Access control @@ -37,8 +39,3 @@ No direct policy interaction. ```solidity IB20(target).SEIZE_RECEIVER_POLICY(); ``` - -## Related - -- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20/SEIZE_ROLE.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/SEIZE_ROLE.mdx index db7e490e3..cb3bc9809 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20/SEIZE_ROLE.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/SEIZE_ROLE.mdx @@ -4,7 +4,6 @@ description: "Generated B20 reference for SEIZE_ROLE()." --- -[Related concept](/base-chain/specs/reference/b20) ## Signature @@ -20,7 +19,10 @@ function SEIZE_ROLE() external view returns (bytes32); ## Description Required to call `seizeWithMemo`. -Return: Role constant. + +## Returns + +Role constant. ## Access control @@ -35,8 +37,3 @@ No direct policy interaction. ```solidity IB20(target).SEIZE_ROLE(); ``` - -## Related - -- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20/TRANSFER_EXECUTOR_POLICY.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/TRANSFER_EXECUTOR_POLICY.mdx index 0d27c7b08..ae5a87c93 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20/TRANSFER_EXECUTOR_POLICY.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/TRANSFER_EXECUTOR_POLICY.mdx @@ -4,7 +4,6 @@ description: "Generated B20 reference for TRANSFER_EXECUTOR_POLICY()." --- -[Related concept](/base-chain/specs/reference/b20) ## Signature @@ -19,11 +18,13 @@ function TRANSFER_EXECUTOR_POLICY() external view returns (bytes32); ## Description -Policy slot consulted against `msg.sender` on `transferFrom` when distinct from `from`. -Not consulted on `transfer`. -Dev: Bypassed for factory-originated calls during the creation (bootstrap) window; see -`IB20Factory.createB20`. -Return: Policy scope constant. +Policy slot consulted against `msg.sender` on `transferFrom` when distinct from `from`. Not consulted on `transfer`. + +Bypassed for factory-originated calls during the creation (bootstrap) window; see `IB20Factory.createB20`. + +## Returns + +Policy scope constant. ## Access control @@ -38,8 +39,3 @@ No direct policy interaction. ```solidity IB20(target).TRANSFER_EXECUTOR_POLICY(); ``` - -## Related - -- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20/TRANSFER_RECEIVER_POLICY.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/TRANSFER_RECEIVER_POLICY.mdx index 46051addd..5134caf32 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20/TRANSFER_RECEIVER_POLICY.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/TRANSFER_RECEIVER_POLICY.mdx @@ -4,7 +4,6 @@ description: "Generated B20 reference for TRANSFER_RECEIVER_POLICY()." --- -[Related concept](/base-chain/specs/reference/b20) ## Signature @@ -20,9 +19,12 @@ function TRANSFER_RECEIVER_POLICY() external view returns (bytes32); ## Description Policy slot consulted against `to` on every transfer. -Dev: Bypassed for factory-originated calls during the creation (bootstrap) window; see -`IB20Factory.createB20`. -Return: Policy scope constant. + +Bypassed for factory-originated calls during the creation (bootstrap) window; see `IB20Factory.createB20`. + +## Returns + +Policy scope constant. ## Access control @@ -37,8 +39,3 @@ No direct policy interaction. ```solidity IB20(target).TRANSFER_RECEIVER_POLICY(); ``` - -## Related - -- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20/TRANSFER_SENDER_POLICY.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/TRANSFER_SENDER_POLICY.mdx index 396f09679..a9d6cfb55 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20/TRANSFER_SENDER_POLICY.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/TRANSFER_SENDER_POLICY.mdx @@ -4,7 +4,6 @@ description: "Generated B20 reference for TRANSFER_SENDER_POLICY()." --- -[Related concept](/base-chain/specs/reference/b20) ## Signature @@ -20,9 +19,12 @@ function TRANSFER_SENDER_POLICY() external view returns (bytes32); ## Description Policy slot consulted against `from` on every transfer (including `transferFrom`). -Dev: Bypassed for factory-originated calls during the creation (bootstrap) window; see -`IB20Factory.createB20`. -Return: Policy scope constant. + +Bypassed for factory-originated calls during the creation (bootstrap) window; see `IB20Factory.createB20`. + +## Returns + +Policy scope constant. ## Access control @@ -37,8 +39,3 @@ No direct policy interaction. ```solidity IB20(target).TRANSFER_SENDER_POLICY(); ``` - -## Related - -- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20/UNPAUSE_ROLE.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/UNPAUSE_ROLE.mdx index 1cde9022d..3c72cd851 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20/UNPAUSE_ROLE.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/UNPAUSE_ROLE.mdx @@ -4,7 +4,6 @@ description: "Generated B20 reference for UNPAUSE_ROLE()." --- -[Related concept](/base-chain/specs/reference/b20) ## Signature @@ -20,7 +19,10 @@ function UNPAUSE_ROLE() external view returns (bytes32); ## Description Required to call `unpause`. -Return: Role constant. + +## Returns + +Role constant. ## Access control @@ -35,8 +37,3 @@ No direct policy interaction. ```solidity IB20(target).UNPAUSE_ROLE(); ``` - -## Related - -- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20/allowance.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/allowance.mdx index 20e151971..51939d27f 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20/allowance.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/allowance.mdx @@ -4,7 +4,6 @@ description: "Generated B20 reference for allowance(address,address)." --- -[Related concept](/base-chain/specs/reference/b20) ## Signature @@ -20,9 +19,17 @@ function allowance(address owner, address spender) external view returns (uint25 ## Description Allowance granted by `owner` to `spender`. -Param: owner Allowance owner. -Param: spender Allowance spender. -Return: Current allowance. + +## Parameters + +| Parameter | Description | +|---|---| +| `owner` | Allowance owner. | +| `spender` | Allowance spender. | + +## Returns + +Current allowance. ## Access control @@ -35,10 +42,5 @@ No direct policy interaction. ## Example ```solidity -IB20(target).allowance(arg0, arg1); +IB20(target).allowance(owner, spender); ``` - -## Related - -- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20/approve.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/approve.mdx index 3b7ef96d0..e03b0ecf3 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20/approve.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/approve.mdx @@ -4,7 +4,6 @@ description: "Generated B20 reference for approve(address,uint256)." --- -[Related concept](/base-chain/specs/reference/b20) ## Signature @@ -20,11 +19,22 @@ function approve(address spender, uint256 amount) external returns (bool); ## Description Sets `spender`'s allowance to `amount`. Not gated by any policy or by pause. Emits `Approval`. -Dev: Reverts with `InvalidApprover` when `msg.sender == address(0)`. -Dev: Reverts with `InvalidSpender` when `spender == address(0)`. -Param: spender Account being granted the allowance. -Param: amount Allowance amount. -Return: Always `true` on success. + +## Parameters + +| Parameter | Description | +|---|---| +| `spender` | Account being granted the allowance. | +| `amount` | Allowance amount. | + +## Returns + +Always `true` on success. + +## Reverts + +- `InvalidApprover` when `msg.sender == address(0)`. +- `InvalidSpender` when `spender == address(0)`. ## Access control @@ -37,10 +47,5 @@ No direct policy interaction. ## Example ```solidity -IB20(target).approve(arg0, arg1); +IB20(target).approve(spender, amount); ``` - -## Related - -- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20/balanceOf.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/balanceOf.mdx index 67e050836..fc2cfa429 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20/balanceOf.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/balanceOf.mdx @@ -4,7 +4,6 @@ description: "Generated B20 reference for balanceOf(address)." --- -[Related concept](/base-chain/specs/reference/b20) ## Signature @@ -20,8 +19,16 @@ function balanceOf(address account) external view returns (uint256); ## Description Balance of `account`. -Param: account Account whose balance is being queried. -Return: Current balance. + +## Parameters + +| Parameter | Description | +|---|---| +| `account` | Account whose balance is being queried. | + +## Returns + +Current balance. ## Access control @@ -34,10 +41,5 @@ No direct policy interaction. ## Example ```solidity -IB20(target).balanceOf(arg0); +IB20(target).balanceOf(account); ``` - -## Related - -- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20/burn.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/burn.mdx index 8d4279997..d98016dfa 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20/burn.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/burn.mdx @@ -18,12 +18,19 @@ function burn(uint256 amount) external; ## Description -Burns `amount` from the caller's own balance. Not subject to any policy. -Emits `Transfer(caller, address(0), amount)`. -Dev: Reverts with `ContractPaused(BURN)` when `BURN` is paused. -Dev: Reverts with `AccessControlUnauthorizedAccount` when the caller does not hold `BURN_ROLE`. -Dev: Reverts with `InsufficientBalance` when the caller's balance is below `amount`. -Param: amount Amount to burn. +Burns `amount` from the caller's own balance. Not subject to any policy. Emits `Transfer(caller, address(0), amount)`. + +## Parameters + +| Parameter | Description | +|---|---| +| `amount` | Amount to burn. | + +## Reverts + +- `ContractPaused(BURN)` when `BURN` is paused. +- `AccessControlUnauthorizedAccount` when the caller does not hold `BURN_ROLE`. +- `InsufficientBalance` when the caller's balance is below `amount`. ## Access control @@ -36,10 +43,5 @@ No direct policy interaction. ## Example ```solidity -IB20(target).burn(arg0); +IB20(target).burn(amount); ``` - -## Related - -- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20/burnBlocked.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/burnBlocked.mdx index 76b867afb..c4174a964 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20/burnBlocked.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/burnBlocked.mdx @@ -18,18 +18,23 @@ function burnBlocked(address from, uint256 amount) external; ## Description -DEPRECATED. Burns `amount` from a `from` account that is blocked under -`TRANSFER_SENDER_POLICY`, without spending an allowance. Retained for back-compat; -prefer `seizeWithMemo` (to a treasury/self address) followed by `burn`. -Emits `Transfer(from, address(0), amount)` and `BurnedBlocked(caller, from, amount)`. -Dev: Gated by `BURN_BLOCKED_ROLE` and the `BURN` pause vector (not `SEIZE`). Its blocked check -reads `TRANSFER_SENDER_POLICY`, distinct from `seizeWithMemo`'s `SEIZE_HOLDER_POLICY`. -Dev: Reverts with `ContractPaused(BURN)` when `BURN` is paused. -Dev: Reverts with `AccessControlUnauthorizedAccount` when the caller does not hold `BURN_BLOCKED_ROLE`. -Dev: Reverts with `AccountNotBlocked` when `from` is currently authorized under `TRANSFER_SENDER_POLICY`. -Dev: Reverts with `InsufficientBalance` when `from`'s balance is below `amount`. -Param: from Account whose blocked balance is being burned. -Param: amount Amount to burn. +DEPRECATED. Burns `amount` from a `from` account that is blocked under `TRANSFER_SENDER_POLICY`, without spending an allowance. Retained for back-compat; prefer `seizeWithMemo` (to a treasury/self address) followed by `burn`. Emits `Transfer(from, address(0), amount)` and `BurnedBlocked(caller, from, amount)`. + +Gated by `BURN_BLOCKED_ROLE` and the `BURN` pause vector (not `SEIZE`). Its blocked check reads `TRANSFER_SENDER_POLICY`, distinct from `seizeWithMemo`'s `SEIZE_HOLDER_POLICY`. + +## Parameters + +| Parameter | Description | +|---|---| +| `from` | Account whose blocked balance is being burned. | +| `amount` | Amount to burn. | + +## Reverts + +- `ContractPaused(BURN)` when `BURN` is paused. +- `AccessControlUnauthorizedAccount` when the caller does not hold `BURN_BLOCKED_ROLE`. +- `AccountNotBlocked` when `from` is currently authorized under `TRANSFER_SENDER_POLICY`. +- `InsufficientBalance` when `from`'s balance is below `amount`. ## Access control @@ -44,8 +49,3 @@ Checks `TRANSFER_SENDER_POLICY`; the account can be burned only when not authori ```solidity IB20(token).burnBlocked(from, amount); ``` - -## Related - -- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20/burnWithMemo.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/burnWithMemo.mdx index 3712d12ec..64d65c94e 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20/burnWithMemo.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/burnWithMemo.mdx @@ -18,10 +18,14 @@ function burnWithMemo(uint256 amount, bytes32 memo) external; ## Description -Same as `burn`, plus emits `Memo` immediately after the standard `Transfer` event. -A memo of `bytes32(0)` is permitted. -Param: amount Amount to burn. -Param: memo Off-chain memo payload. +Same as `burn`, plus emits `Memo` immediately after the standard `Transfer` event. A memo of `bytes32(0)` is permitted. + +## Parameters + +| Parameter | Description | +|---|---| +| `amount` | Amount to burn. | +| `memo` | Off-chain memo payload. | ## Access control @@ -34,10 +38,5 @@ No direct policy interaction. ## Example ```solidity -IB20(target).burnWithMemo(arg0, arg1); +IB20(target).burnWithMemo(amount, memo); ``` - -## Related - -- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20/contractURI.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/contractURI.mdx index 879c18afa..483fd0f92 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20/contractURI.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/contractURI.mdx @@ -4,7 +4,6 @@ description: "Generated B20 reference for contractURI()." --- -[Related concept](/base-chain/specs/reference/b20) ## Signature @@ -20,7 +19,10 @@ function contractURI() external view returns (string memory); ## Description Off-chain URI pointing at contract-level metadata for this token, per ERC-7572. -Return: Current contract URI. + +## Returns + +Current contract URI. ## Access control @@ -35,8 +37,3 @@ No direct policy interaction. ```solidity IB20(target).contractURI(); ``` - -## Related - -- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20/decimals.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/decimals.mdx index ba0771bb2..677e9ae27 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20/decimals.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/decimals.mdx @@ -4,7 +4,6 @@ description: "Generated B20 reference for decimals()." --- -[Related concept](/base-chain/specs/reference/b20) ## Signature @@ -20,7 +19,10 @@ function decimals() external view returns (uint8); ## Description Number of decimal places. Immutable per token variant. -Return: Number of decimal places. + +## Returns + +Number of decimal places. ## Access control @@ -35,8 +37,3 @@ No direct policy interaction. ```solidity IB20(target).decimals(); ``` - -## Related - -- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20/eip712Domain.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/eip712Domain.mdx index e3bb9dc54..fb27c9141 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20/eip712Domain.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/eip712Domain.mdx @@ -4,7 +4,6 @@ description: "Generated B20 reference for eip712Domain()." --- -[Related concept](/base-chain/specs/reference/b20) ## Signature @@ -20,13 +19,18 @@ function eip712Domain() external view returns ( bytes1 fields, string memory nam ## Description ERC-5267 EIP-712 domain introspection. -Return: fields Bitmap of populated domain fields (`0x0f`: `name`, `version`, `chainId`, `verifyingContract`). -Return: name Live `name()` value. -Return: version Constant `"1"`. -Return: chainId Current `block.chainid`. -Return: verifyingContract This token's address. -Return: salt Unused (zero). -Return: extensions Empty. + +## Returns + +| Value | Description | +|---|---| +| `fields` | Bitmap of populated domain fields (`0x0f`: `name`, `version`, `chainId`, `verifyingContract`). | +| `name` | Live `name()` value. | +| `version` | Constant `"1"`. | +| `chainId` | Current `block.chainid`. | +| `verifyingContract` | This token's address. | +| `salt` | Unused (zero). | +| `extensions` | Empty. | ## Access control @@ -41,8 +45,3 @@ No direct policy interaction. ```solidity IB20(target).eip712Domain(); ``` - -## Related - -- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20/getRoleAdmin.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/getRoleAdmin.mdx index 5f13c644e..bdcfaad55 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20/getRoleAdmin.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/getRoleAdmin.mdx @@ -18,10 +18,17 @@ function getRoleAdmin(bytes32 role) external view returns (bytes32); ## Description -The role required to grant or revoke `role`. Defaults to `DEFAULT_ADMIN_ROLE` if not -explicitly set via `setRoleAdmin`. -Param: role Role whose admin is being queried. -Return: Admin role. +The role required to grant or revoke `role`. Defaults to `DEFAULT_ADMIN_ROLE` if not explicitly set via `setRoleAdmin`. + +## Parameters + +| Parameter | Description | +|---|---| +| `role` | Role whose admin is being queried. | + +## Returns + +Admin role. ## Access control @@ -34,10 +41,5 @@ No direct policy interaction. ## Example ```solidity -IB20(target).getRoleAdmin(arg0); +IB20(target).getRoleAdmin(role); ``` - -## Related - -- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20/grantRole.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/grantRole.mdx index 77c07116a..b9c6917ef 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20/grantRole.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/grantRole.mdx @@ -19,10 +19,17 @@ function grantRole(bytes32 role, address account) external; ## Description Grants `role` to `account`. Emits `RoleGranted`. -Dev: Reverts with `AccessControlUnauthorizedAccount` when the caller does not hold the admin role for `role`, -or when the token has been transitioned to admin-less via `renounceLastAdmin` (admin-resurrection guard). -Param: role Role to grant. -Param: account Recipient. + +## Parameters + +| Parameter | Description | +|---|---| +| `role` | Role to grant. | +| `account` | Recipient. | + +## Reverts + +- `AccessControlUnauthorizedAccount` when the caller does not hold the admin role for `role`, or when the token has been transitioned to admin-less via `renounceLastAdmin` (admin-resurrection guard). ## Access control @@ -35,10 +42,5 @@ No direct policy interaction. ## Example ```solidity -IB20(target).grantRole(arg0, arg1); +IB20(target).grantRole(role, account); ``` - -## Related - -- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20/hasRole.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/hasRole.mdx index c5bf706bc..c6fa1d756 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20/hasRole.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/hasRole.mdx @@ -18,11 +18,18 @@ function hasRole(bytes32 role, address account) external view returns (bool); ## Description -Whether `account` is a member of `role`. User-defined roles are supported and have no -built-in effect on the token's own functions. -Param: role Role to check. -Param: account Account to check. -Return: Whether `account` holds `role`. +Whether `account` is a member of `role`. User-defined roles are supported and have no built-in effect on the token's own functions. + +## Parameters + +| Parameter | Description | +|---|---| +| `role` | Role to check. | +| `account` | Account to check. | + +## Returns + +Whether `account` holds `role`. ## Access control @@ -35,10 +42,5 @@ No direct policy interaction. ## Example ```solidity -IB20(target).hasRole(arg0, arg1); +IB20(target).hasRole(role, account); ``` - -## Related - -- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20/isPaused.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/isPaused.mdx index 04c9eca93..d6e55d027 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20/isPaused.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/isPaused.mdx @@ -4,7 +4,6 @@ description: "Generated B20 reference for isPaused(PausableFeature)." --- -[Related concept](/base-chain/specs/reference/b20) ## Signature @@ -20,8 +19,16 @@ function isPaused(PausableFeature feature) external view returns (bool); ## Description Whether `feature` is currently paused. O(1). -Param: feature Feature to query. -Return: Whether `feature` is paused. + +## Parameters + +| Parameter | Description | +|---|---| +| `feature` | Feature to query. | + +## Returns + +Whether `feature` is paused. ## Access control @@ -34,10 +41,5 @@ No direct policy interaction. ## Example ```solidity -IB20(target).isPaused(arg0); +IB20(target).isPaused(feature); ``` - -## Related - -- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20/mint.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/mint.mdx index e428a9354..4aedce21b 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20/mint.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/mint.mdx @@ -19,13 +19,21 @@ function mint(address to, uint256 amount) external; ## Description Mints `amount` to `to`. Emits `Transfer(address(0), to, amount)`. -Dev: Reverts with `ContractPaused(MINT)` when `MINT` is paused. -Dev: Reverts with `AccessControlUnauthorizedAccount` when the caller does not hold `MINT_ROLE`. -Dev: Reverts with `InvalidReceiver` when `to == address(0)`. -Dev: Reverts with `PolicyForbids(MINT_RECEIVER_POLICY, ...)` when `to` is not authorized. -Dev: Reverts with `SupplyCapExceeded` when `totalSupply + amount > supplyCap`. -Param: to Mint recipient. -Param: amount Amount to mint. + +## Parameters + +| Parameter | Description | +|---|---| +| `to` | Mint recipient. | +| `amount` | Amount to mint. | + +## Reverts + +- `ContractPaused(MINT)` when `MINT` is paused. +- `AccessControlUnauthorizedAccount` when the caller does not hold `MINT_ROLE`. +- `InvalidReceiver` when `to == address(0)`. +- `PolicyForbids(MINT_RECEIVER_POLICY, ...)` when `to` is not authorized. +- `SupplyCapExceeded` when `totalSupply + amount > supplyCap`. ## Access control @@ -38,10 +46,5 @@ Checks `MINT_RECEIVER_POLICY`, including during factory initCalls. ## Example ```solidity -IB20(target).mint(arg0, arg1); +IB20(target).mint(to, amount); ``` - -## Related - -- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20/mintWithMemo.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/mintWithMemo.mdx index f9e016457..ba8737fd5 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20/mintWithMemo.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/mintWithMemo.mdx @@ -18,11 +18,15 @@ function mintWithMemo(address to, uint256 amount, bytes32 memo) external; ## Description -Same as `mint`, plus emits `Memo` immediately after the standard `Transfer` event. -A memo of `bytes32(0)` is permitted. -Param: to Mint recipient. -Param: amount Amount to mint. -Param: memo Off-chain memo payload. +Same as `mint`, plus emits `Memo` immediately after the standard `Transfer` event. A memo of `bytes32(0)` is permitted. + +## Parameters + +| Parameter | Description | +|---|---| +| `to` | Mint recipient. | +| `amount` | Amount to mint. | +| `memo` | Off-chain memo payload. | ## Access control @@ -35,10 +39,5 @@ Checks `MINT_RECEIVER_POLICY`, including during factory initCalls. ## Example ```solidity -IB20(target).mintWithMemo(arg0, arg1, arg2); +IB20(target).mintWithMemo(to, amount, memo); ``` - -## Related - -- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20/name.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/name.mdx index 402834483..85d0c4b78 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20/name.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/name.mdx @@ -4,7 +4,6 @@ description: "Generated B20 reference for name()." --- -[Related concept](/base-chain/specs/reference/b20) ## Signature @@ -20,7 +19,10 @@ function name() external view returns (string memory); ## Description Token name. Set at creation, mutable via `updateName`. -Return: Current token name. + +## Returns + +Current token name. ## Access control @@ -35,8 +37,3 @@ No direct policy interaction. ```solidity IB20(target).name(); ``` - -## Related - -- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20/nonces.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/nonces.mdx index 3d2bc33c3..22c818acd 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20/nonces.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/nonces.mdx @@ -4,7 +4,6 @@ description: "Generated B20 reference for nonces(address)." --- -[Related concept](/base-chain/specs/reference/b20) ## Signature @@ -20,8 +19,16 @@ function nonces(address owner) external view returns (uint256); ## Description The current EIP-2612 permit nonce for `owner`. Incremented by 1 on each successful `permit`. -Param: owner Account whose nonce is being queried. -Return: Current nonce. + +## Parameters + +| Parameter | Description | +|---|---| +| `owner` | Account whose nonce is being queried. | + +## Returns + +Current nonce. ## Access control @@ -34,10 +41,5 @@ No direct policy interaction. ## Example ```solidity -IB20(target).nonces(arg0); +IB20(target).nonces(owner); ``` - -## Related - -- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20/pause.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/pause.mdx index 07ded2d28..584424560 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20/pause.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/pause.mdx @@ -18,11 +18,18 @@ function pause(PausableFeature[] calldata features) external; ## Description -Pauses each of `features`. Additive: features already paused remain paused; duplicates -within the call are idempotent. Emits `Paused`. -Dev: Reverts with `AccessControlUnauthorizedAccount` when the caller does not hold `PAUSE_ROLE`. -Dev: Reverts with `EmptyFeatureSet` when `features.length == 0`. -Param: features Features to pause. +Pauses each of `features`. Additive: features already paused remain paused; duplicates within the call are idempotent. Emits `Paused`. + +## Parameters + +| Parameter | Description | +|---|---| +| `features` | Features to pause. | + +## Reverts + +- `AccessControlUnauthorizedAccount` when the caller does not hold `PAUSE_ROLE`. +- `EmptyFeatureSet` when `features.length == 0`. ## Access control @@ -35,10 +42,5 @@ No direct policy interaction. ## Example ```solidity -IB20(target).pause(arg0); +IB20(target).pause(features); ``` - -## Related - -- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20/pausedFeatures.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/pausedFeatures.mdx index e1c2a45ec..52e43b907 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20/pausedFeatures.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/pausedFeatures.mdx @@ -18,9 +18,11 @@ function pausedFeatures() external view returns (PausableFeature[] memory); ## Description -The `PausableFeature`s currently paused on this token. Order is implementation-defined; -callers should treat the result as a set. -Return: Currently-paused features. +The `PausableFeature`s currently paused on this token. Order is implementation-defined; callers should treat the result as a set. + +## Returns + +Currently-paused features. ## Access control @@ -35,8 +37,3 @@ No direct policy interaction. ```solidity IB20(target).pausedFeatures(); ``` - -## Related - -- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20/permit.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/permit.mdx index 6c14bd6a5..fdbe398f9 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20/permit.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/permit.mdx @@ -4,7 +4,6 @@ description: "Generated B20 reference for permit(address,address,uint256,uint256 --- -[Related concept](/base-chain/specs/reference/b20) ## Signature @@ -19,18 +18,25 @@ function permit(address owner, address spender, uint256 value, uint256 deadline, ## Description -EIP-2612 permit. Recovers `owner` via ECDSA from `(v, r, s)`. EOA signatures only; -ERC-1271 contract signatures are NOT supported. Emits `Approval`. -Dev: Reverts with `ExpiredSignature` when `block.timestamp > deadline`. -Dev: Reverts with `InvalidSigner` when ECDSA recovery does not yield `owner`. -Dev: Reverts with `InvalidSpender` when `spender == address(0)`. -Param: owner Token holder granting the allowance. -Param: spender Account being granted the allowance. -Param: value Allowance amount. -Param: deadline Unix timestamp after which the signature is invalid. -Param: v ECDSA recovery byte. -Param: r ECDSA signature r component. -Param: s ECDSA signature s component. +EIP-2612 permit. Recovers `owner` via ECDSA from `(v, r, s)`. EOA signatures only; ERC-1271 contract signatures are NOT supported. Emits `Approval`. + +## Parameters + +| Parameter | Description | +|---|---| +| `owner` | Token holder granting the allowance. | +| `spender` | Account being granted the allowance. | +| `value` | Allowance amount. | +| `deadline` | Unix timestamp after which the signature is invalid. | +| `v` | ECDSA recovery byte. | +| `r` | ECDSA signature r component. | +| `s` | ECDSA signature s component. | + +## Reverts + +- `ExpiredSignature` when `block.timestamp > deadline`. +- `InvalidSigner` when ECDSA recovery does not yield `owner`. +- `InvalidSpender` when `spender == address(0)`. ## Access control @@ -43,10 +49,5 @@ No direct policy interaction. ## Example ```solidity -IB20(target).permit(arg0, arg1, arg2, arg3, arg4, arg5, arg6); +IB20(target).permit(owner, spender, value, deadline, v, r, s); ``` - -## Related - -- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20/policyId.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/policyId.mdx index b343ca731..efeef8e08 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20/policyId.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/policyId.mdx @@ -18,11 +18,21 @@ function policyId(bytes32 policyScope) external view returns (uint64); ## Description -The current policy ID configured for `policyScope`. Returns `0` (always-allow built-in) -for any slot that has never been assigned. -Dev: Reverts with `UnsupportedPolicyType` when `policyScope` is not recognized by this token. -Param: policyScope Policy slot scope. -Return: Configured policy ID. +The current policy ID configured for `policyScope`. Returns `0` (always-allow built-in) for any slot that has never been assigned. + +## Parameters + +| Parameter | Description | +|---|---| +| `policyScope` | Policy slot scope. | + +## Returns + +Configured policy ID. + +## Reverts + +- `UnsupportedPolicyType` when `policyScope` is not recognized by this token. ## Access control @@ -37,8 +47,3 @@ Reads or writes a token policy-scope pointer into the PolicyRegistry. ```solidity uint64 id = IB20(token).policyId(B20Constants.MINT_RECEIVER_POLICY); ``` - -## Related - -- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20/renounceLastAdmin.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/renounceLastAdmin.mdx index a7cedfbac..2b76354e0 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20/renounceLastAdmin.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/renounceLastAdmin.mdx @@ -18,11 +18,12 @@ function renounceLastAdmin() external; ## Description -Permanently transitions the token to a zero-admin state. Revokes `DEFAULT_ADMIN_ROLE` -from `msg.sender`. Emits `RoleRevoked(DEFAULT_ADMIN_ROLE, msg.sender, msg.sender)` and -`LastAdminRenounced(msg.sender)`. -Dev: Reverts with `AccessControlUnauthorizedAccount` when `msg.sender` does not hold `DEFAULT_ADMIN_ROLE`. -Dev: Reverts with `NotSoleAdmin` when other accounts also hold `DEFAULT_ADMIN_ROLE`. +Permanently transitions the token to a zero-admin state. Revokes `DEFAULT_ADMIN_ROLE` from `msg.sender`. Emits `RoleRevoked(DEFAULT_ADMIN_ROLE, msg.sender, msg.sender)` and `LastAdminRenounced(msg.sender)`. + +## Reverts + +- `AccessControlUnauthorizedAccount` when `msg.sender` does not hold `DEFAULT_ADMIN_ROLE`. +- `NotSoleAdmin` when other accounts also hold `DEFAULT_ADMIN_ROLE`. ## Access control @@ -37,8 +38,3 @@ No direct policy interaction. ```solidity IB20(target).renounceLastAdmin(); ``` - -## Related - -- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20/renounceRole.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/renounceRole.mdx index c422fcf7e..57272d7c5 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20/renounceRole.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/renounceRole.mdx @@ -19,10 +19,18 @@ function renounceRole(bytes32 role, address callerConfirmation) external; ## Description Caller renounces `role` for themselves. Emits `RoleRevoked`. -Dev: Reverts with `AccessControlBadConfirmation` when `callerConfirmation != msg.sender`. -Dev: Reverts with `LastAdminCannotRenounce` when `role == DEFAULT_ADMIN_ROLE` and the caller is the last default admin. -Param: role Role to renounce. -Param: callerConfirmation MUST equal `msg.sender`. + +## Parameters + +| Parameter | Description | +|---|---| +| `role` | Role to renounce. | +| `callerConfirmation` | MUST equal `msg.sender`. | + +## Reverts + +- `AccessControlBadConfirmation` when `callerConfirmation != msg.sender`. +- `LastAdminCannotRenounce` when `role == DEFAULT_ADMIN_ROLE` and the caller is the last default admin. ## Access control @@ -35,10 +43,5 @@ No direct policy interaction. ## Example ```solidity -IB20(target).renounceRole(arg0, arg1); +IB20(target).renounceRole(role, callerConfirmation); ``` - -## Related - -- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20/revokeRole.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/revokeRole.mdx index ef326601c..e4a1a2f19 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20/revokeRole.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/revokeRole.mdx @@ -19,12 +19,18 @@ function revokeRole(bytes32 role, address account) external; ## Description Revokes `role` from `account`. Emits `RoleRevoked`. -Dev: Reverts with `AccessControlUnauthorizedAccount` when the caller does not hold the admin role for `role`, -or when the token has been transitioned to admin-less via `renounceLastAdmin`. -Dev: Reverts with `LastAdminCannotRenounce` when `role == DEFAULT_ADMIN_ROLE` and `account` is the last default admin. -Use `renounceLastAdmin` to clear the final admin. -Param: role Role to revoke. -Param: account Account to revoke from. + +## Parameters + +| Parameter | Description | +|---|---| +| `role` | Role to revoke. | +| `account` | Account to revoke from. | + +## Reverts + +- `AccessControlUnauthorizedAccount` when the caller does not hold the admin role for `role`, or when the token has been transitioned to admin-less via `renounceLastAdmin`. +- `LastAdminCannotRenounce` when `role == DEFAULT_ADMIN_ROLE` and `account` is the last default admin. Use `renounceLastAdmin` to clear the final admin. ## Access control @@ -37,10 +43,5 @@ No direct policy interaction. ## Example ```solidity -IB20(target).revokeRole(arg0, arg1); +IB20(target).revokeRole(role, account); ``` - -## Related - -- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20/seizeWithMemo.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/seizeWithMemo.mdx index 7041adc6f..f05a9ad01 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20/seizeWithMemo.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/seizeWithMemo.mdx @@ -18,23 +18,28 @@ function seizeWithMemo(address from, address to, uint256 amount, bytes32 memo) e ## Description -Seizes `amount` of `from`'s balance and reassigns it to `to` in a single admin operation. -Emits, in order, `Transfer(from, to, amount)`, `Memo(caller, memo)`, and -`Seized(caller, from, to, amount)`. A memo of `bytes32(0)` is permitted. -Dev: Admin operation: skips allowance and the transfer policies. The membership checks are that -`from` is blocked under `SEIZE_HOLDER_POLICY` and `to` is authorized under `SEIZE_RECEIVER_POLICY`. -Dev: `to` is gated by `SEIZE_RECEIVER_POLICY`, which defaults to always-allow when unset, so an -unconfigured token may seize to any destination (a treasury need not be allowlisted). -Dev: Reverts with `ContractPaused(SEIZE)` when `SEIZE` is paused. -Dev: Reverts with `AccessControlUnauthorizedAccount` when the caller does not hold `SEIZE_ROLE`. -Dev: Reverts with `InvalidReceiver` when `to == address(0)`. -Dev: Reverts with `AccountNotSeizable` when `from` is currently authorized under `SEIZE_HOLDER_POLICY`. -Dev: Reverts with `PolicyForbids(SEIZE_RECEIVER_POLICY, ...)` when `to` is not authorized under `SEIZE_RECEIVER_POLICY`. -Dev: Reverts with `InsufficientBalance` when `from`'s balance is below `amount`. -Param: from Account whose balance is being seized. -Param: to Destination address for the seized balance. -Param: amount Amount to seize. -Param: memo Memo payload. +Seizes `amount` of `from`'s balance and reassigns it to `to` in a single admin operation. Emits, in order, `Transfer(from, to, amount)`, `Memo(caller, memo)`, and `Seized(caller, from, to, amount)`. A memo of `bytes32(0)` is permitted. + +Admin operation: skips allowance and the transfer policies. The membership checks are that `from` is blocked under `SEIZE_HOLDER_POLICY` and `to` is authorized under `SEIZE_RECEIVER_POLICY`. +`to` is gated by `SEIZE_RECEIVER_POLICY`, which defaults to always-allow when unset, so an unconfigured token may seize to any destination (a treasury need not be allowlisted). + +## Parameters + +| Parameter | Description | +|---|---| +| `from` | Account whose balance is being seized. | +| `to` | Destination address for the seized balance. | +| `amount` | Amount to seize. | +| `memo` | Memo payload. | + +## Reverts + +- `ContractPaused(SEIZE)` when `SEIZE` is paused. +- `AccessControlUnauthorizedAccount` when the caller does not hold `SEIZE_ROLE`. +- `InvalidReceiver` when `to == address(0)`. +- `AccountNotSeizable` when `from` is currently authorized under `SEIZE_HOLDER_POLICY`. +- `PolicyForbids(SEIZE_RECEIVER_POLICY, ...)` when `to` is not authorized under `SEIZE_RECEIVER_POLICY`. +- `InsufficientBalance` when `from`'s balance is below `amount`. ## Access control @@ -49,8 +54,3 @@ Checks `SEIZE_HOLDER_POLICY` for the holder and `SEIZE_RECEIVER_POLICY` for the ```solidity IB20(token).seizeWithMemo(holder, destination, amount, memo); ``` - -## Related - -- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20/setRoleAdmin.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/setRoleAdmin.mdx index 15d08660c..6627f1e39 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20/setRoleAdmin.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/setRoleAdmin.mdx @@ -19,10 +19,17 @@ function setRoleAdmin(bytes32 role, bytes32 newAdminRole) external; ## Description Sets the admin role for `role`. Emits `RoleAdminChanged`. -Dev: Reverts with `AccessControlUnauthorizedAccount` when the caller does not hold the current admin role for `role`, -or when the token has been transitioned to admin-less via `renounceLastAdmin`. -Param: role Role whose admin is being updated. -Param: newAdminRole New admin role. + +## Parameters + +| Parameter | Description | +|---|---| +| `role` | Role whose admin is being updated. | +| `newAdminRole` | New admin role. | + +## Reverts + +- `AccessControlUnauthorizedAccount` when the caller does not hold the current admin role for `role`, or when the token has been transitioned to admin-less via `renounceLastAdmin`. ## Access control @@ -35,10 +42,5 @@ No direct policy interaction. ## Example ```solidity -IB20(target).setRoleAdmin(arg0, arg1); +IB20(target).setRoleAdmin(role, newAdminRole); ``` - -## Related - -- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20/supplyCap.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/supplyCap.mdx index 4f41a2879..35b18ffc6 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20/supplyCap.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/supplyCap.mdx @@ -4,7 +4,6 @@ description: "Generated B20 reference for supplyCap()." --- -[Related concept](/base-chain/specs/reference/b20) ## Signature @@ -19,10 +18,11 @@ function supplyCap() external view returns (uint256); ## Description -The maximum total supply enforced on `mint`. Capped at `type(uint128).max`, which -indicates no cap (the unbounded sentinel). `totalSupply` can therefore never exceed -`type(uint128).max`. -Return: Current supply cap. +The maximum total supply enforced on `mint`. Capped at `type(uint128).max`, which indicates no cap (the unbounded sentinel). `totalSupply` can therefore never exceed `type(uint128).max`. + +## Returns + +Current supply cap. ## Access control @@ -37,8 +37,3 @@ No direct policy interaction. ```solidity IB20(target).supplyCap(); ``` - -## Related - -- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20/symbol.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/symbol.mdx index 056faabf5..9a60811ba 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20/symbol.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/symbol.mdx @@ -4,7 +4,6 @@ description: "Generated B20 reference for symbol()." --- -[Related concept](/base-chain/specs/reference/b20) ## Signature @@ -20,7 +19,10 @@ function symbol() external view returns (string memory); ## Description Token symbol. Set at creation, mutable via `updateSymbol`. -Return: Current token symbol. + +## Returns + +Current token symbol. ## Access control @@ -35,8 +37,3 @@ No direct policy interaction. ```solidity IB20(target).symbol(); ``` - -## Related - -- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20/totalSupply.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/totalSupply.mdx index a8ff3395f..f88eb9338 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20/totalSupply.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/totalSupply.mdx @@ -4,7 +4,6 @@ description: "Generated B20 reference for totalSupply()." --- -[Related concept](/base-chain/specs/reference/b20) ## Signature @@ -20,7 +19,10 @@ function totalSupply() external view returns (uint256); ## Description Total token supply currently in circulation. -Return: Current total supply. + +## Returns + +Current total supply. ## Access control @@ -35,8 +37,3 @@ No direct policy interaction. ```solidity IB20(target).totalSupply(); ``` - -## Related - -- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20/transfer.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/transfer.mdx index 50e87526d..3b34e0cf3 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20/transfer.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/transfer.mdx @@ -19,15 +19,26 @@ function transfer(address to, uint256 amount) external returns (bool); ## Description Transfers `amount` from `msg.sender` to `to`. Emits `Transfer`. -Dev: Reverts with `ContractPaused(TRANSFER)` when `TRANSFER` is paused. -Dev: Reverts with `InvalidReceiver` when `to == address(0)`. -Dev: Reverts with `InvalidSender` when `msg.sender == address(0)`. -Dev: Reverts with `PolicyForbids(TRANSFER_SENDER_POLICY, ...)` when `msg.sender` is not authorized. -Dev: Reverts with `PolicyForbids(TRANSFER_RECEIVER_POLICY, ...)` when `to` is not authorized. -Dev: Reverts with `InsufficientBalance` when `msg.sender`'s balance is below `amount`. -Param: to Destination address. -Param: amount Amount to transfer. -Return: Always `true` on success. + +## Parameters + +| Parameter | Description | +|---|---| +| `to` | Destination address. | +| `amount` | Amount to transfer. | + +## Returns + +Always `true` on success. + +## Reverts + +- `ContractPaused(TRANSFER)` when `TRANSFER` is paused. +- `InvalidReceiver` when `to == address(0)`. +- `InvalidSender` when `msg.sender == address(0)`. +- `PolicyForbids(TRANSFER_SENDER_POLICY, ...)` when `msg.sender` is not authorized. +- `PolicyForbids(TRANSFER_RECEIVER_POLICY, ...)` when `to` is not authorized. +- `InsufficientBalance` when `msg.sender`'s balance is below `amount`. ## Access control @@ -40,10 +51,5 @@ Checks `TRANSFER_SENDER_POLICY` and `TRANSFER_RECEIVER_POLICY`; `approve` and `p ## Example ```solidity -IB20(target).transfer(arg0, arg1); +IB20(target).transfer(to, amount); ``` - -## Related - -- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20/transferFrom.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/transferFrom.mdx index 150258fed..e5cbe8904 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20/transferFrom.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/transferFrom.mdx @@ -19,18 +19,29 @@ function transferFrom(address from, address to, uint256 amount) external returns ## Description Transfers `amount` from `from` to `to` using `msg.sender`'s allowance. Emits `Transfer`. -Dev: Reverts with `ContractPaused(TRANSFER)` when `TRANSFER` is paused. -Dev: Reverts with `InvalidReceiver` when `to == address(0)`. -Dev: Reverts with `InvalidSender` when `from == address(0)`. -Dev: Reverts with `InsufficientAllowance` when the caller's allowance from `from` is below `amount`. -Dev: Reverts with `PolicyForbids(TRANSFER_EXECUTOR_POLICY, ...)` when `msg.sender != from` and `msg.sender` is not authorized. -Dev: Reverts with `PolicyForbids(TRANSFER_SENDER_POLICY, ...)` when `from` is not authorized. -Dev: Reverts with `PolicyForbids(TRANSFER_RECEIVER_POLICY, ...)` when `to` is not authorized. -Dev: Reverts with `InsufficientBalance` when `from`'s balance is below `amount`. -Param: from Source address. -Param: to Destination address. -Param: amount Amount to transfer. -Return: Always `true` on success. + +## Parameters + +| Parameter | Description | +|---|---| +| `from` | Source address. | +| `to` | Destination address. | +| `amount` | Amount to transfer. | + +## Returns + +Always `true` on success. + +## Reverts + +- `ContractPaused(TRANSFER)` when `TRANSFER` is paused. +- `InvalidReceiver` when `to == address(0)`. +- `InvalidSender` when `from == address(0)`. +- `InsufficientAllowance` when the caller's allowance from `from` is below `amount`. +- `PolicyForbids(TRANSFER_EXECUTOR_POLICY, ...)` when `msg.sender != from` and `msg.sender` is not authorized. +- `PolicyForbids(TRANSFER_SENDER_POLICY, ...)` when `from` is not authorized. +- `PolicyForbids(TRANSFER_RECEIVER_POLICY, ...)` when `to` is not authorized. +- `InsufficientBalance` when `from`'s balance is below `amount`. ## Access control @@ -43,10 +54,5 @@ Checks `TRANSFER_EXECUTOR_POLICY` when `msg.sender != from`, plus sender and rec ## Example ```solidity -IB20(target).transferFrom(arg0, arg1, arg2); +IB20(target).transferFrom(from, to, amount); ``` - -## Related - -- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20/transferFromWithMemo.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/transferFromWithMemo.mdx index d555f6a30..6e3d97019 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20/transferFromWithMemo.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/transferFromWithMemo.mdx @@ -18,13 +18,20 @@ function transferFromWithMemo(address from, address to, uint256 amount, bytes32 ## Description -Same as `transferFrom`, plus emits `Memo` immediately after the standard `Transfer` event. -A memo of `bytes32(0)` is permitted. -Param: from Source address. -Param: to Destination address. -Param: amount Amount to transfer. -Param: memo Off-chain memo payload. -Return: Always `true` on success. +Same as `transferFrom`, plus emits `Memo` immediately after the standard `Transfer` event. A memo of `bytes32(0)` is permitted. + +## Parameters + +| Parameter | Description | +|---|---| +| `from` | Source address. | +| `to` | Destination address. | +| `amount` | Amount to transfer. | +| `memo` | Off-chain memo payload. | + +## Returns + +Always `true` on success. ## Access control @@ -37,10 +44,5 @@ Checks `TRANSFER_EXECUTOR_POLICY` when `msg.sender != from`, plus sender and rec ## Example ```solidity -IB20(target).transferFromWithMemo(arg0, arg1, arg2, arg3); +IB20(target).transferFromWithMemo(from, to, amount, memo); ``` - -## Related - -- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20/transferWithMemo.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/transferWithMemo.mdx index 00562ebdb..00973abc1 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20/transferWithMemo.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/transferWithMemo.mdx @@ -18,12 +18,19 @@ function transferWithMemo(address to, uint256 amount, bytes32 memo) external ret ## Description -Same as `transfer`, plus emits `Memo` immediately after the standard `Transfer` event. -A memo of `bytes32(0)` is permitted. -Param: to Destination address. -Param: amount Amount to transfer. -Param: memo Off-chain memo payload. -Return: Always `true` on success. +Same as `transfer`, plus emits `Memo` immediately after the standard `Transfer` event. A memo of `bytes32(0)` is permitted. + +## Parameters + +| Parameter | Description | +|---|---| +| `to` | Destination address. | +| `amount` | Amount to transfer. | +| `memo` | Off-chain memo payload. | + +## Returns + +Always `true` on success. ## Access control @@ -36,10 +43,5 @@ Checks `TRANSFER_SENDER_POLICY` and `TRANSFER_RECEIVER_POLICY`; `approve` and `p ## Example ```solidity -IB20(target).transferWithMemo(arg0, arg1, arg2); +IB20(target).transferWithMemo(to, amount, memo); ``` - -## Related - -- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20/unpause.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/unpause.mdx index 038d36069..dd03c0869 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20/unpause.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/unpause.mdx @@ -18,11 +18,18 @@ function unpause(PausableFeature[] calldata features) external; ## Description -Unpauses each of `features`. Features not listed are unaffected; duplicates are idempotent. -Emits `Unpaused`. -Dev: Reverts with `AccessControlUnauthorizedAccount` when the caller does not hold `UNPAUSE_ROLE`. -Dev: Reverts with `EmptyFeatureSet` when `features.length == 0`. -Param: features Features to unpause. +Unpauses each of `features`. Features not listed are unaffected; duplicates are idempotent. Emits `Unpaused`. + +## Parameters + +| Parameter | Description | +|---|---| +| `features` | Features to unpause. | + +## Reverts + +- `AccessControlUnauthorizedAccount` when the caller does not hold `UNPAUSE_ROLE`. +- `EmptyFeatureSet` when `features.length == 0`. ## Access control @@ -35,10 +42,5 @@ No direct policy interaction. ## Example ```solidity -IB20(target).unpause(arg0); +IB20(target).unpause(features); ``` - -## Related - -- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20/updateContractURI.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/updateContractURI.mdx index 4597f3f71..59fd85800 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20/updateContractURI.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/updateContractURI.mdx @@ -4,7 +4,6 @@ description: "Generated B20 reference for updateContractURI(string)." --- -[Related concept](/base-chain/specs/reference/b20) ## Signature @@ -19,10 +18,17 @@ function updateContractURI(string calldata newURI) external; ## Description -Updates `contractURI`. Emits the parameterless `ContractURIUpdated` event per ERC-7572; -integrators re-fetch `contractURI()` after observing it. -Dev: Reverts with `AccessControlUnauthorizedAccount` when the caller does not hold `METADATA_ROLE`. -Param: newURI New contract URI. +Updates `contractURI`. Emits the parameterless `ContractURIUpdated` event per ERC-7572; integrators re-fetch `contractURI()` after observing it. + +## Parameters + +| Parameter | Description | +|---|---| +| `newURI` | New contract URI. | + +## Reverts + +- `AccessControlUnauthorizedAccount` when the caller does not hold `METADATA_ROLE`. ## Access control @@ -35,10 +41,5 @@ No direct policy interaction. ## Example ```solidity -IB20(target).updateContractURI(arg0); +IB20(target).updateContractURI(newURI); ``` - -## Related - -- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20/updateName.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/updateName.mdx index 7528a79ff..444b57690 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20/updateName.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/updateName.mdx @@ -4,7 +4,6 @@ description: "Generated B20 reference for updateName(string)." --- -[Related concept](/base-chain/specs/reference/b20) ## Signature @@ -20,8 +19,16 @@ function updateName(string calldata newName) external; ## Description Updates the token's `name`. Emits `NameUpdated` followed by `EIP712DomainChanged`. -Dev: Reverts with `AccessControlUnauthorizedAccount` when the caller does not hold `METADATA_ROLE`. -Param: newName New token name. + +## Parameters + +| Parameter | Description | +|---|---| +| `newName` | New token name. | + +## Reverts + +- `AccessControlUnauthorizedAccount` when the caller does not hold `METADATA_ROLE`. ## Access control @@ -34,10 +41,5 @@ No direct policy interaction. ## Example ```solidity -IB20(target).updateName(arg0); +IB20(target).updateName(newName); ``` - -## Related - -- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20/updatePolicy.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/updatePolicy.mdx index 5b950fac9..6d31d5103 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20/updatePolicy.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/updatePolicy.mdx @@ -18,13 +18,20 @@ function updatePolicy(bytes32 policyScope, uint64 newPolicyId) external; ## Description -Updates the policy ID assigned to `policyScope`. Takes effect immediately for the next -operation that consults this slot. Emits `PolicyUpdated`. -Dev: Reverts with `AccessControlUnauthorizedAccount` when the caller does not hold `DEFAULT_ADMIN_ROLE`. -Dev: Reverts with `UnsupportedPolicyType` when `policyScope` is not recognized by this token. -Dev: Reverts with `PolicyNotFound` when `newPolicyId` is not a built-in sentinel and does not exist in the registry. -Param: policyScope Policy slot scope. -Param: newPolicyId Policy ID to assign to the slot. +Updates the policy ID assigned to `policyScope`. Takes effect immediately for the next operation that consults this slot. Emits `PolicyUpdated`. + +## Parameters + +| Parameter | Description | +|---|---| +| `policyScope` | Policy slot scope. | +| `newPolicyId` | Policy ID to assign to the slot. | + +## Reverts + +- `AccessControlUnauthorizedAccount` when the caller does not hold `DEFAULT_ADMIN_ROLE`. +- `UnsupportedPolicyType` when `policyScope` is not recognized by this token. +- `PolicyNotFound` when `newPolicyId` is not a built-in sentinel and does not exist in the registry. ## Access control @@ -39,8 +46,3 @@ Reads or writes a token policy-scope pointer into the PolicyRegistry. ```solidity IB20(token).updatePolicy(B20Constants.MINT_RECEIVER_POLICY, policyId); ``` - -## Related - -- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20/updateSupplyCap.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/updateSupplyCap.mdx index 27b728c7f..11c506b70 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20/updateSupplyCap.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/updateSupplyCap.mdx @@ -4,7 +4,6 @@ description: "Generated B20 reference for updateSupplyCap(uint256)." --- -[Related concept](/base-chain/specs/reference/b20) ## Signature @@ -19,11 +18,18 @@ function updateSupplyCap(uint256 newSupplyCap) external; ## Description -Sets a new supply cap. May be raised or lowered freely, but never below current -`totalSupply` and never above `type(uint128).max`. Emits `SupplyCapUpdated`. -Dev: Reverts with `AccessControlUnauthorizedAccount` when the caller does not hold `DEFAULT_ADMIN_ROLE`. -Dev: Reverts with `InvalidSupplyCap` when `newSupplyCap < totalSupply()` or `newSupplyCap > type(uint128).max`. -Param: newSupplyCap New supply cap. Must not exceed `type(uint128).max`. +Sets a new supply cap. May be raised or lowered freely, but never below current `totalSupply` and never above `type(uint128).max`. Emits `SupplyCapUpdated`. + +## Parameters + +| Parameter | Description | +|---|---| +| `newSupplyCap` | New supply cap. Must not exceed `type(uint128).max`. | + +## Reverts + +- `AccessControlUnauthorizedAccount` when the caller does not hold `DEFAULT_ADMIN_ROLE`. +- `InvalidSupplyCap` when `newSupplyCap < totalSupply()` or `newSupplyCap > type(uint128).max`. ## Access control @@ -36,10 +42,5 @@ No direct policy interaction. ## Example ```solidity -IB20(target).updateSupplyCap(arg0); +IB20(target).updateSupplyCap(newSupplyCap); ``` - -## Related - -- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20/updateSymbol.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20/updateSymbol.mdx index d25beab3c..1ca0d3e22 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20/updateSymbol.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20/updateSymbol.mdx @@ -4,7 +4,6 @@ description: "Generated B20 reference for updateSymbol(string)." --- -[Related concept](/base-chain/specs/reference/b20) ## Signature @@ -20,8 +19,16 @@ function updateSymbol(string calldata newSymbol) external; ## Description Updates the token's `symbol`. Emits `SymbolUpdated`. -Dev: Reverts with `AccessControlUnauthorizedAccount` when the caller does not hold `METADATA_ROLE`. -Param: newSymbol New token symbol. + +## Parameters + +| Parameter | Description | +|---|---| +| `newSymbol` | New token symbol. | + +## Reverts + +- `AccessControlUnauthorizedAccount` when the caller does not hold `METADATA_ROLE`. ## Access control @@ -34,10 +41,5 @@ No direct policy interaction. ## Example ```solidity -IB20(target).updateSymbol(arg0); +IB20(target).updateSymbol(newSymbol); ``` - -## Related - -- [IB20 reference](/base-chain/specs/reference/b20/interfaces/IB20) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20Asset.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset.mdx index 91831ea9e..f48276cb0 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20Asset.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset.mdx @@ -58,8 +58,3 @@ description: "Generated B20 reference for IB20Asset functions, events, and error | `AnnouncementInProgress` | `0x5c5f0829` | An inner call dispatched by `announce` tried to re-invoke `announce`. | | `InternalCallMalformed` | `0x4e2f143e` | An inner call dispatched by `announce` was shorter than four bytes. | | `InternalCallFailed` | `0xb288a127` | An inner call dispatched by `announce` reverted with an ordinary revert; its reason is | - - - - - diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/MAX_UI_MULTIPLIER.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/MAX_UI_MULTIPLIER.mdx index f0b0e4598..84228fdd2 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/MAX_UI_MULTIPLIER.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/MAX_UI_MULTIPLIER.mdx @@ -23,7 +23,3 @@ Returns the maximum multiplier the setter functions accept: `type(uint128).max`. ```solidity IB20Asset(target).MAX_UI_MULTIPLIER(); ``` - -## Related - -- [IB20Asset reference](/base-chain/specs/reference/b20/interfaces/IB20Asset) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/OPERATOR_ROLE.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/OPERATOR_ROLE.mdx index 1fe91a19d..eaa362ea6 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/OPERATOR_ROLE.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/OPERATOR_ROLE.mdx @@ -36,8 +36,3 @@ No direct policy interaction. ```solidity IB20Asset(target).OPERATOR_ROLE(); ``` - -## Related - -- [IB20Asset reference](/base-chain/specs/reference/b20/interfaces/IB20Asset) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/WAD_PRECISION.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/WAD_PRECISION.mdx index b9585b2d0..cbb40f9be 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/WAD_PRECISION.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/WAD_PRECISION.mdx @@ -34,8 +34,3 @@ No direct policy interaction. ```solidity IB20Asset(target).WAD_PRECISION(); ``` - -## Related - -- [IB20Asset reference](/base-chain/specs/reference/b20/interfaces/IB20Asset) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/announce.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/announce.mdx index 4bd52fb61..d71ddbad3 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/announce.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/announce.mdx @@ -47,8 +47,3 @@ No direct policy interaction. ```solidity IB20Asset(target).announce(arg0, arg1, arg2, arg3); ``` - -## Related - -- [IB20Asset reference](/base-chain/specs/reference/b20/interfaces/IB20Asset) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/balanceOfUI.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/balanceOfUI.mdx index f69b789e9..35fa9cbba 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/balanceOfUI.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/balanceOfUI.mdx @@ -17,7 +17,3 @@ function balanceOfUI(address account) external view returns (uint256); ## Description Returns the UI-adjusted balance of `account`. - -## Related - -- [IB20Asset reference](/base-chain/specs/reference/b20/interfaces/IB20Asset) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/batchMint.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/batchMint.mdx index e588c2ca5..ba9a13eb8 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/batchMint.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/batchMint.mdx @@ -44,8 +44,3 @@ No direct policy interaction. ```solidity IB20Asset(target).batchMint(arg0, arg1); ``` - -## Related - -- [IB20Asset reference](/base-chain/specs/reference/b20/interfaces/IB20Asset) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/cancelUIMultiplierUpdate.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/cancelUIMultiplierUpdate.mdx index 8241e3e24..45a95c952 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/cancelUIMultiplierUpdate.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/cancelUIMultiplierUpdate.mdx @@ -36,8 +36,3 @@ No direct policy interaction. ```solidity IB20Asset(target).cancelUIMultiplierUpdate(); ``` - -## Related - -- [IB20Asset reference](/base-chain/specs/reference/b20/interfaces/IB20Asset) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/effectiveAt.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/effectiveAt.mdx index b947b450a..a84c8db1b 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/effectiveAt.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/effectiveAt.mdx @@ -17,7 +17,3 @@ function effectiveAt() external view returns (uint256); ## Description Returns the timestamp at which the pending UI multiplier becomes effective. - -## Related - -- [IB20Asset reference](/base-chain/specs/reference/b20/interfaces/IB20Asset) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/extraMetadata.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/extraMetadata.mdx index ad97e5193..e93438e93 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/extraMetadata.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/extraMetadata.mdx @@ -37,8 +37,3 @@ No direct policy interaction. ```solidity IB20Asset(target).extraMetadata(arg0); ``` - -## Related - -- [IB20Asset reference](/base-chain/specs/reference/b20/interfaces/IB20Asset) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/fromUIAmount.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/fromUIAmount.mdx index 6c3e088b7..4eccf97c5 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/fromUIAmount.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/fromUIAmount.mdx @@ -17,7 +17,3 @@ function fromUIAmount(uint256 uiAmount) external view returns (uint256); ## Description Converts `uiAmount` to its raw token representation at the effective multiplier. - -## Related - -- [IB20Asset reference](/base-chain/specs/reference/b20/interfaces/IB20Asset) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/isAnnouncementIdUsed.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/isAnnouncementIdUsed.mdx index 1f8e14484..ba73e4118 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/isAnnouncementIdUsed.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/isAnnouncementIdUsed.mdx @@ -35,8 +35,3 @@ No direct policy interaction. ```solidity IB20Asset(target).isAnnouncementIdUsed(arg0); ``` - -## Related - -- [IB20Asset reference](/base-chain/specs/reference/b20/interfaces/IB20Asset) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/multiplier.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/multiplier.mdx index 05a8bba09..0538fe95e 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/multiplier.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/multiplier.mdx @@ -37,8 +37,3 @@ No direct policy interaction. ```solidity IB20Asset(target).multiplier(); ``` - -## Related - -- [IB20Asset reference](/base-chain/specs/reference/b20/interfaces/IB20Asset) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/newUIMultiplier.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/newUIMultiplier.mdx index f5dacb935..bf80e7dff 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/newUIMultiplier.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/newUIMultiplier.mdx @@ -17,7 +17,3 @@ function newUIMultiplier() external view returns (uint256); ## Description Returns the pending UI multiplier scheduled to take effect at `effectiveAt`, represented with 18 decimals (`1e18 = 1.0`). - -## Related - -- [IB20Asset reference](/base-chain/specs/reference/b20/interfaces/IB20Asset) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/scaledBalanceOf.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/scaledBalanceOf.mdx index 5bf594a5b..33fbf0048 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/scaledBalanceOf.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/scaledBalanceOf.mdx @@ -35,8 +35,3 @@ No direct policy interaction. ```solidity IB20Asset(target).scaledBalanceOf(arg0); ``` - -## Related - -- [IB20Asset reference](/base-chain/specs/reference/b20/interfaces/IB20Asset) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/toRawBalance.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/toRawBalance.mdx index 2097f2c70..2453edc39 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/toRawBalance.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/toRawBalance.mdx @@ -39,8 +39,3 @@ No direct policy interaction. ```solidity IB20Asset(target).toRawBalance(arg0); ``` - -## Related - -- [IB20Asset reference](/base-chain/specs/reference/b20/interfaces/IB20Asset) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/toScaledBalance.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/toScaledBalance.mdx index 5c41991c8..31669f2c0 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/toScaledBalance.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/toScaledBalance.mdx @@ -35,8 +35,3 @@ No direct policy interaction. ```solidity IB20Asset(target).toScaledBalance(arg0); ``` - -## Related - -- [IB20Asset reference](/base-chain/specs/reference/b20/interfaces/IB20Asset) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/toUIAmount.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/toUIAmount.mdx index e3a62b098..1a5e323b0 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/toUIAmount.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/toUIAmount.mdx @@ -17,7 +17,3 @@ function toUIAmount(uint256 rawAmount) external view returns (uint256); ## Description Converts `rawAmount` to its UI representation at the effective multiplier. - -## Related - -- [IB20Asset reference](/base-chain/specs/reference/b20/interfaces/IB20Asset) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/totalSupplyUI.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/totalSupplyUI.mdx index 6639727ed..76e57949e 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/totalSupplyUI.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/totalSupplyUI.mdx @@ -17,7 +17,3 @@ function totalSupplyUI() external view returns (uint256); ## Description Returns the UI-adjusted total supply. - -## Related - -- [IB20Asset reference](/base-chain/specs/reference/b20/interfaces/IB20Asset) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/uiMultiplier.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/uiMultiplier.mdx index 00ff1bdd4..255ff9110 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/uiMultiplier.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/uiMultiplier.mdx @@ -17,7 +17,3 @@ function uiMultiplier() external view returns (uint256); ## Description Returns the current ERC-8056 UI multiplier, represented with 18 decimals (`1e18 = 1.0`). - -## Related - -- [IB20Asset reference](/base-chain/specs/reference/b20/interfaces/IB20Asset) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/updateExtraMetadata.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/updateExtraMetadata.mdx index 4c23ac9b8..cedf8bfe2 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/updateExtraMetadata.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/updateExtraMetadata.mdx @@ -38,8 +38,3 @@ No direct policy interaction. ```solidity IB20Asset(target).updateExtraMetadata(arg0, arg1); ``` - -## Related - -- [IB20Asset reference](/base-chain/specs/reference/b20/interfaces/IB20Asset) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/updateMultiplier.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/updateMultiplier.mdx index 388446f4f..f9eecb2ed 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/updateMultiplier.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/updateMultiplier.mdx @@ -38,8 +38,3 @@ No direct policy interaction. ```solidity IB20Asset(target).updateMultiplier(arg0); ``` - -## Related - -- [IB20Asset reference](/base-chain/specs/reference/b20/interfaces/IB20Asset) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/updateUIMultiplier.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/updateUIMultiplier.mdx index 2b50f0b2a..445f443ec 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/updateUIMultiplier.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20Asset/updateUIMultiplier.mdx @@ -41,8 +41,3 @@ No direct policy interaction. ```solidity IB20Asset(target).updateUIMultiplier(arg0, arg1); ``` - -## Related - -- [IB20Asset reference](/base-chain/specs/reference/b20/interfaces/IB20Asset) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20Factory.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20Factory.mdx index 177dd6f76..2b5a1d58d 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20Factory.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20Factory.mdx @@ -31,8 +31,3 @@ description: "Generated B20 reference for IB20Factory functions, events, and err | `InvalidCurrency` | `0x997c1de8` | The stablecoin `currency` was non-empty but contained a non-`A`-`Z` byte. | | `InvalidDecimals` | `0xca950391` | The asset `decimals` was outside the allowed inclusive range | | `InitCallFailed` | `0x4eae0860` | One of the `initCalls` reverted. The factory bubbles the underlying revert reason | - - - - - diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20Factory/createB20.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20Factory/createB20.mdx index fed5cceca..bd7d6199e 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20Factory/createB20.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20Factory/createB20.mdx @@ -62,8 +62,3 @@ No direct policy interaction. ```solidity address token = StdPrecompiles.B20_FACTORY.createB20(variant, salt, params, initCalls); ``` - -## Related - -- [IB20Factory reference](/base-chain/specs/reference/b20/interfaces/IB20Factory) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20Factory/getB20Address.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20Factory/getB20Address.mdx index 4e789a8f6..8aa7057d4 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20Factory/getB20Address.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20Factory/getB20Address.mdx @@ -37,8 +37,3 @@ No direct policy interaction. ```solidity IB20Factory(target).getB20Address(arg0, arg1, arg2); ``` - -## Related - -- [IB20Factory reference](/base-chain/specs/reference/b20/interfaces/IB20Factory) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20Factory/isB20.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20Factory/isB20.mdx index ae95e058a..cbeb492d5 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20Factory/isB20.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20Factory/isB20.mdx @@ -35,8 +35,3 @@ No direct policy interaction. ```solidity IB20Factory(target).isB20(arg0); ``` - -## Related - -- [IB20Factory reference](/base-chain/specs/reference/b20/interfaces/IB20Factory) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20Factory/isB20Initialized.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20Factory/isB20Initialized.mdx index 4d12b0627..3f93f7020 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20Factory/isB20Initialized.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20Factory/isB20Initialized.mdx @@ -36,8 +36,3 @@ No direct policy interaction. ```solidity IB20Factory(target).isB20Initialized(arg0); ``` - -## Related - -- [IB20Factory reference](/base-chain/specs/reference/b20/interfaces/IB20Factory) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20Stablecoin.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20Stablecoin.mdx index e98e05a01..11da8417c 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20Stablecoin.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20Stablecoin.mdx @@ -21,8 +21,3 @@ description: "Generated B20 reference for IB20Stablecoin functions, events, and | Error | Selector | Summary | |---|---|---| | — | — | — | - - - - - diff --git a/docs/base-chain/specs/reference/b20/interfaces/IB20Stablecoin/currency.mdx b/docs/base-chain/specs/reference/b20/interfaces/IB20Stablecoin/currency.mdx index 9608744ec..1834ece3b 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IB20Stablecoin/currency.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IB20Stablecoin/currency.mdx @@ -34,8 +34,3 @@ No direct policy interaction. ```solidity IB20Stablecoin(target).currency(); ``` - -## Related - -- [IB20Stablecoin reference](/base-chain/specs/reference/b20/interfaces/IB20Stablecoin) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry.mdx b/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry.mdx index 6af5c0a20..c8cddcc9b 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry.mdx @@ -49,8 +49,3 @@ description: "Generated B20 reference for IPolicyRegistry functions, events, and | `NoPendingAdmin` | `0xb4539afa` | `finalizeUpdateAdmin` was called with no pending admin staged. | | `ChildPoliciesOutsideOfRange` | `0x697ec868` | A composite policy was created or updated with a child-policy count outside the | | `InvalidChildPolicy` | `0x46508ef6` | Composite policies are not simple policies. Child policies must be existing | - - - - - diff --git a/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/MAX_COMPOSITE_CHILD_POLICIES.mdx b/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/MAX_COMPOSITE_CHILD_POLICIES.mdx index 39af98cdb..30284ab3e 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/MAX_COMPOSITE_CHILD_POLICIES.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/MAX_COMPOSITE_CHILD_POLICIES.mdx @@ -34,8 +34,3 @@ This is part of the singleton PolicyRegistry surface used by B20 policy scopes. ```solidity IPolicyRegistry(target).MAX_COMPOSITE_CHILD_POLICIES(); ``` - -## Related - -- [IPolicyRegistry reference](/base-chain/specs/reference/b20/interfaces/IPolicyRegistry) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/MIN_COMPOSITE_CHILD_POLICIES.mdx b/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/MIN_COMPOSITE_CHILD_POLICIES.mdx index 2cf272b3d..32fe2f064 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/MIN_COMPOSITE_CHILD_POLICIES.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/MIN_COMPOSITE_CHILD_POLICIES.mdx @@ -34,8 +34,3 @@ This is part of the singleton PolicyRegistry surface used by B20 policy scopes. ```solidity IPolicyRegistry(target).MIN_COMPOSITE_CHILD_POLICIES(); ``` - -## Related - -- [IPolicyRegistry reference](/base-chain/specs/reference/b20/interfaces/IPolicyRegistry) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/compositePolicyChildIds.mdx b/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/compositePolicyChildIds.mdx index e9ed1f273..33a83fc94 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/compositePolicyChildIds.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/compositePolicyChildIds.mdx @@ -41,8 +41,3 @@ This is part of the singleton PolicyRegistry surface used by B20 policy scopes. ```solidity IPolicyRegistry(target).compositePolicyChildIds(arg0); ``` - -## Related - -- [IPolicyRegistry reference](/base-chain/specs/reference/b20/interfaces/IPolicyRegistry) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/createCompositePolicy.mdx b/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/createCompositePolicy.mdx index 026422e5d..9a6ed58a9 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/createCompositePolicy.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/createCompositePolicy.mdx @@ -48,8 +48,3 @@ This is part of the singleton PolicyRegistry surface used by B20 policy scopes. ```solidity IPolicyRegistry(target).createCompositePolicy(arg0, arg1, arg2); ``` - -## Related - -- [IPolicyRegistry reference](/base-chain/specs/reference/b20/interfaces/IPolicyRegistry) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/createPolicy.mdx b/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/createPolicy.mdx index 0e031a916..6d6caf119 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/createPolicy.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/createPolicy.mdx @@ -38,8 +38,3 @@ This is part of the singleton PolicyRegistry surface used by B20 policy scopes. ```solidity uint64 policyId = StdPrecompiles.POLICY_REGISTRY.createPolicy(admin, IPolicyRegistry.PolicyType.ALLOWLIST); ``` - -## Related - -- [IPolicyRegistry reference](/base-chain/specs/reference/b20/interfaces/IPolicyRegistry) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/createPolicyWithAccounts.mdx b/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/createPolicyWithAccounts.mdx index accea7e5e..c7111ae28 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/createPolicyWithAccounts.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/createPolicyWithAccounts.mdx @@ -41,8 +41,3 @@ This is part of the singleton PolicyRegistry surface used by B20 policy scopes. ```solidity uint64 policyId = StdPrecompiles.POLICY_REGISTRY.createPolicyWithAccounts(admin, IPolicyRegistry.PolicyType.ALLOWLIST, accounts); ``` - -## Related - -- [IPolicyRegistry reference](/base-chain/specs/reference/b20/interfaces/IPolicyRegistry) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/finalizeUpdateAdmin.mdx b/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/finalizeUpdateAdmin.mdx index 8b13fb066..2ba476199 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/finalizeUpdateAdmin.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/finalizeUpdateAdmin.mdx @@ -37,8 +37,3 @@ This is part of the singleton PolicyRegistry surface used by B20 policy scopes. ```solidity IPolicyRegistry(target).finalizeUpdateAdmin(arg0); ``` - -## Related - -- [IPolicyRegistry reference](/base-chain/specs/reference/b20/interfaces/IPolicyRegistry) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/isAuthorized.mdx b/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/isAuthorized.mdx index c1026c60a..347aee02d 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/isAuthorized.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/isAuthorized.mdx @@ -39,8 +39,3 @@ This is part of the singleton PolicyRegistry surface used by B20 policy scopes. ```solidity bool ok = StdPrecompiles.POLICY_REGISTRY.isAuthorized(policyId, account); ``` - -## Related - -- [IPolicyRegistry reference](/base-chain/specs/reference/b20/interfaces/IPolicyRegistry) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/pendingPolicyAdmin.mdx b/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/pendingPolicyAdmin.mdx index 530de629f..a34e2e1a3 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/pendingPolicyAdmin.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/pendingPolicyAdmin.mdx @@ -37,8 +37,3 @@ This is part of the singleton PolicyRegistry surface used by B20 policy scopes. ```solidity IPolicyRegistry(target).pendingPolicyAdmin(arg0); ``` - -## Related - -- [IPolicyRegistry reference](/base-chain/specs/reference/b20/interfaces/IPolicyRegistry) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/policyAdmin.mdx b/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/policyAdmin.mdx index 3c97bd949..d4476e819 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/policyAdmin.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/policyAdmin.mdx @@ -36,8 +36,3 @@ This is part of the singleton PolicyRegistry surface used by B20 policy scopes. ```solidity IPolicyRegistry(target).policyAdmin(arg0); ``` - -## Related - -- [IPolicyRegistry reference](/base-chain/specs/reference/b20/interfaces/IPolicyRegistry) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/policyExists.mdx b/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/policyExists.mdx index d77074fe6..e7b698e50 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/policyExists.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/policyExists.mdx @@ -35,8 +35,3 @@ This is part of the singleton PolicyRegistry surface used by B20 policy scopes. ```solidity IPolicyRegistry(target).policyExists(arg0); ``` - -## Related - -- [IPolicyRegistry reference](/base-chain/specs/reference/b20/interfaces/IPolicyRegistry) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/renounceAdmin.mdx b/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/renounceAdmin.mdx index cc096cb0c..673ea0dbb 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/renounceAdmin.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/renounceAdmin.mdx @@ -37,8 +37,3 @@ This is part of the singleton PolicyRegistry surface used by B20 policy scopes. ```solidity IPolicyRegistry(target).renounceAdmin(arg0); ``` - -## Related - -- [IPolicyRegistry reference](/base-chain/specs/reference/b20/interfaces/IPolicyRegistry) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/stageUpdateAdmin.mdx b/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/stageUpdateAdmin.mdx index 7d6f43b62..8bc4c7ed4 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/stageUpdateAdmin.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/stageUpdateAdmin.mdx @@ -38,8 +38,3 @@ This is part of the singleton PolicyRegistry surface used by B20 policy scopes. ```solidity IPolicyRegistry(target).stageUpdateAdmin(arg0, arg1); ``` - -## Related - -- [IPolicyRegistry reference](/base-chain/specs/reference/b20/interfaces/IPolicyRegistry) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/updateAllowlist.mdx b/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/updateAllowlist.mdx index c57e344d3..b2b2df85e 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/updateAllowlist.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/updateAllowlist.mdx @@ -40,8 +40,3 @@ This is part of the singleton PolicyRegistry surface used by B20 policy scopes. ```solidity IPolicyRegistry(target).updateAllowlist(arg0, arg1, arg2); ``` - -## Related - -- [IPolicyRegistry reference](/base-chain/specs/reference/b20/interfaces/IPolicyRegistry) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/updateBlocklist.mdx b/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/updateBlocklist.mdx index e9dd70c62..578b0b3c1 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/updateBlocklist.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/updateBlocklist.mdx @@ -40,8 +40,3 @@ This is part of the singleton PolicyRegistry surface used by B20 policy scopes. ```solidity IPolicyRegistry(target).updateBlocklist(arg0, arg1, arg2); ``` - -## Related - -- [IPolicyRegistry reference](/base-chain/specs/reference/b20/interfaces/IPolicyRegistry) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses) diff --git a/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/updateComposite.mdx b/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/updateComposite.mdx index 861493f9f..42b10a73f 100644 --- a/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/updateComposite.mdx +++ b/docs/base-chain/specs/reference/b20/interfaces/IPolicyRegistry/updateComposite.mdx @@ -45,8 +45,3 @@ This is part of the singleton PolicyRegistry surface used by B20 policy scopes. ```solidity IPolicyRegistry(target).updateComposite(arg0, arg1); ``` - -## Related - -- [IPolicyRegistry reference](/base-chain/specs/reference/b20/interfaces/IPolicyRegistry) -- [Constants & addresses](/base-chain/specs/reference/b20/constants-and-addresses)