Repository navigation
docs(b20): align Tokenize Assets and Stablecoin guides with base-std guides - #1999
Conversation
…guides - Rewrite Recover Funds around seizeWithMemo; replace Cancel Blocked Units with Seize and Cancel Units (seize to treasury, then burnWithMemo) - Rename Announce a Distribution to Announce a Corporate Action and adopt the base-std four-scenario structure (issuance, multiplier, burn, notice) - Restructure Apply a Multiplier with Before You Start, schedule lifecycle, and integrator rules from base-std; keep multiplier framing per Legal - Add Restrict Who Can Initiate Transfers (TRANSFER_EXECUTOR_POLICY) - Block an Account: attach the blocklist to SEIZE_EXEMPT_POLICY - Fix stale SEIZE_HOLDER_POLICY references (renamed SEIZE_EXEMPT_POLICY) - Vibenet engine v4: seize helper, SEIZE scopes/role, new error names; Asset cancel and Stablecoin recover demo flows now use seize - Verified samples: new seize/executor fixtures, base-std pin -> 1505323 - Redirects, nav, base-std sync route table and tests updated
|
Preview deployment for your docs. Learn more about Mintlify Previews.
💡 Tip: Enable Automations to automatically generate PRs for you. |
✅ Heimdall Review Status
|
- Apply a Multiplier: instant override emits UIMultiplierUpdated with block.timestamp; list multiplier() and scaledBalanceOf() aliases - Announce a Corporate Action: scope intro to B20 Asset; note burnBlocked is deprecated for treasury burns - Seize and Cancel Units / Recover Funds: add InvalidSender, PolicyNotFound, Unauthorized errors; note seize is unaffected by other pauses; document seizing a balance held at the token's own address Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
… Change to Holders Keep the live URL so no redirect is needed, and use an asset-neutral title that covers all four announce scenarios (issuance, multiplier update, treasury burn, notice). Refresh agents.md and llms.txt. Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
…s, drop B20 title prefix
Co-authored-by: Toshi <toshi-noreply@coinbase.com> # Conflicts: # docs/llms-full.txt # docs/llms.txt
There was a problem hiding this comment.
i think we can drop this page entirely? someone who is interested in the details can look at the actual implementation in the base/base repo
There was a problem hiding this comment.
deleted specifications/b20/architecture.mdx
There was a problem hiding this comment.
would be curious if we could maybe just put this at the top of the overview page
There was a problem hiding this comment.
Moved index.mdx's Concepts / Build on Base / Reference / Changelog cards to the top
Addresses PR review feedback from @stephancill: - Drop specifications/b20/architecture.mdx entirely; implementation detail belongs in base/base, not the docs site. Fix inbound links from concepts/policies.mdx and concepts/token-types.mdx. - Merge specifications/b20/index.mdx into the top of specification-overview.mdx so B20 has one Overview page instead of a landing hub plus a separate overview article. - Add redirects for both removed page paths to specification-overview. - Regenerate docs/llms.txt, docs/llms-full.txt, docs/AGENTS.md.
specification-overview.mdx no longer has the old subsections these links targeted (#asset, #stablecoin, #factory, #policy-registry, #policy-integration, #seize, #memos, #pause, #supply-cap, #contract-uri-erc-7572, #roles-model, #burn). Retarget each to the concept or reference page that actually documents it now: - #asset, #stablecoin -> concepts/token-types.mdx - #roles-model, #pause -> concepts/roles-and-pause.mdx - #policy-registry, #policy-integration -> concepts/policies.mdx - #factory, #seize, #memos, #supply-cap, #contract-uri-erc-7572, #burn -> the matching reference/interfaces/ib20* page Affects changelog.mdx, RwaDisclaimer.mdx (rendered on 9 Tokenize Assets pages), and 8 Build on Base / Get Started guides. Verified with a one-off link/anchor checker (not committed) that every markdown and JSX href under the B20 surface resolves to a real page and a real heading slug.
|
Review Error for b40150650-design @ 2026-09-25 06:06:28 UTC |
Resolve conflicts with #2013 (B20 overview consolidated at /specifications/b20): - Keep master's canonical URL: overview lives at specifications/b20/index.mdx - Keep this PR's content: merged hub cards into the overview, Architecture page removed - Redirect /specifications/b20/specification-overview and /architecture to /specifications/b20 - Keep this PR's guide content, base-std@1505323 pins, and concept-page anchors - Regenerate AGENTS.md, llms.txt, llms-full.txt Co-authored-by: Toshi <toshi-noreply@coinbase.com>
What changed? Why?
Aligns the Build on Base B20 guides (Tokenize Assets, Issue Stablecoins) with the guides in
base/base-std/docs/guides. Principle: Build on Base keeps its page shape (intro, Vibenet demo, verified TS/Solidity/CLI code group, See Also); base-std supplies the content (Before You Start, steps, verify signal, check-order error tables). Language follows the Legal B20 guidance doc: asset-agnostic framing, stock token as one worked example, no "security"/"equity" phrasing, multiplier framing retained.Pages
seizeWithMemo(the base-std path) instead of deprecatedburnBlocked+mint.totalSupplyunchanged,Seizedevent, memo for case reference.burnWithMemo. Redirect added.effectiveAt() > block.timestamprule, pause guidance as a note.TRANSFER_EXECUTOR_POLICY), transfer agent as one example. No demo flow exists for it.SEIZE_EXEMPT_POLICYso a hold is also recoverable.Correctness
SEIZE_HOLDER_POLICY→SEIZE_EXEMPT_POLICY(post-Cobalt name) inconcepts/policies.mdx,reference/constants.mdx,reference/errors.mdx, with the correct hash. Note: the upstream base-std seize guide still uses the old name.Demos (only the two flows whose pages changed)
seizehelper,SEIZE_*scopes,SEIZE_ROLE,AccountNotSeizable/InvalidReceiver/InvalidSenderdecoding.cancelflow: Fund → Block → Seize → Cancel. Stablecoinrecoverflow: Setup → Seize → Reissue. Live and offline mock paths both updated. All other flows untouched.Samples and tooling
stock-seize-*,stock-executor-*;stablecoin-recover-*rewritten.stock-cancel-*removed.be6d045to1505323inverify-doc-samples.shand page notes (the old pin does not containseizeWithMemo; the previously vendored lib did not compile the existing multiplier sample either).route-table.json(renamed pages plus a rule forrestricting-transfer-initiators.md) and its test updated.Notes to reviewers
SEIZE_ROLE()andSEIZE_EXEMPT_POLICY().SEIZE_ROLEis now granted at demo token creation for all flows (one extra role grant); happy to narrow it to the two seize flows if preferred.verification-manifest.jsonstill reference the earlier Base Sepolia runs; regenerating needs a funded key.base-std-routing.test.mjs(errors.md→events.mdxexpectation) exists onmasterand is unrelated.How has it been tested?
node scripts/verify-doc-samples.js: 73 samples in sync.npx tsc --noEmit(typescript samples) andforge build(solidity samples, base-std@1505323): clean.node scripts/test-vibenet-engine.mjs: pass.npm test: 85 pass, 0 fail.Screenshots
Pending: preview build of the changed pages.
Generated with Toshi