Skip to content

docs: trim the CELO token page to an intro and fix two dead anchors - #2358

Open
palango wants to merge 3 commits into
mainfrom
palango/token-duality-dedup
Open

palango wants to merge 3 commits into
mainfrom
palango/token-duality-dedup

Conversation

@palango

@palango palango commented Oct 2, 2026

Copy link
Copy Markdown
Contributor

The CELO token page restated the token duality spec in different words, minus the precompile details, and still opened with the "Celo is no longer a standalone Layer 1" warning from the L2 migration. This trims it to a short intro and a paragraph on how it works, linking /operate/specification/token-duality for the precompile and Core Contracts for the GoldToken address, as #2227 suggested. The spec page is untouched, so none of its heading fragments move. The page itself stays, because five redirects point at it.

It also fixes two links whose anchors never existed. home/index.mdx linked /home/protocol/celo-token#celo-token-duality, which now goes to the page itself. add-fee-currency.mdx linked overview#adapters-for-non-18-decimal-tokens, but that heading lives in using-fee-abstraction.mdx, which is where overview.mdx and fee-currencies.mdx already point.

The fee-abstraction half of #2227 waits on @karlb, so this refs the issue rather than closing it. Refs #2227, refs #2257.

mint broken-links: success no broken links found. Anchors checked on mint dev: using-fee-abstraction renders id="adapters-for-non-18-decimal-tokens", and the trimmed page renders what-is-token-duality and how-it-works.

@palango
palango requested review from a team as code owners October 2, 2026 09:27
@palango
palango requested review from GigaHierz, ezdac and karlb and removed request for a team and GigaHierz October 2, 2026 09:27

@GigaHierz GigaHierz left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

head 6af303e · gate matched API headRefOid (no STALE); 2 commits on merge-base b7cb920, 7 behind origin/main (none touch celo-token.mdx or home/index.mdx; git merge-tree clean); mint broken-links --check-redirects: no broken links; check-orphans: none; CI "Check for broken links" pass; mint dev (desktop 1440 and 412x915): zero console errors, no horizontal overflow, in-page anchors and inbound links clicked

Verdict: REQUEST-CHANGES

Findings (severity-ordered)

  1. MEDIUM · home/protocol/celo-token.mdx:6-15 · The trimmed page is a Concept page but ends after "How it works", with no "Why it matters on Celo", "Resources" or "Related" section (AGENTS.md section 3 Concept order; section 8 rule 7).
    Failure scenario: five redirects (/celo-codebase/protocol/transactions/native-currency, /protocol/transaction/native-currency, /learn/celo-economic-model, /learn/platform-native-stablecoins-summary, /legacy/protocol/transaction/native-currency) land readers and agents on this page. It is now two paragraphs whose only outgoing links are inline; there is no closing link list, so it is a dead end for an agent traversing the link graph, and a reader sent from "celo-economic-model" gets nothing on what to read next.
    Fix shape: add ## Why it matters on Celo (one or two sentences: no wrapping, one balance across native and ERC-20, apps and wallets use either interface), ## Resources (Resource | Link table: spec, Core Contracts, CELO on the explorer if desired) and ## Related (bullets with a dash and half-sentence: /operate/specification/token-duality, /tooling/contracts/core-contracts, /tooling/overview/migrate/from-ethereum for tracking balances).

  2. LOW · home/protocol/celo-token.mdx:6-8 · The page opens with ## What is Token Duality? directly after the frontmatter: no intro prose before the first ## (AGENTS.md section 3 Frontmatter), no statement of who the page is for (section 3 "first paragraph says who"), and the heading is a Title Case question (section 3 Headings: sentence case, no questions as headings; heading rewritten in this PR so the rule applies).
    Failure scenario: a developer or holder landing from a redirect cannot tell in one sentence whether the page is for them; the H1 "CELO Token Duality" is immediately repeated by an H2 "What is Token Duality?".
    Fix shape: replace the H2 with a one-to-two sentence intro that names the audience (app developers and holders using CELO as native currency or ERC-20) and drop the heading (or call it ## How CELO works as native and ERC-20). Note the in-page anchor #what-is-token-duality has no inbound links (checked), so renaming is safe; if you keep a heading, nothing else needs updating.

  3. LOW · home/protocol/celo-token.mdx:3 · sidebarTitle: "Celo Token" names the token with the chain casing; AGENTS.md section 7 Names: "Celo" is the chain, "CELO" the token. Rendered in the sidebar as "Celo Token" (confirmed under mint dev).
    Failure scenario: the nav label contradicts the page title and the casing rule the repo enforces on every other page.
    Fix shape: sidebarTitle: "CELO Token".

Verified good

Removed content (git diff b7cb920..HEAD) and where each fact lives now:

  • Stale L1 <Warning> (Layer 1 -> L2, block 31,056,500, link to /build#celo-l2-mainnet): intentionally dropped; no equivalent statement is needed, and grep finds no "Layer 1"/"standalone" left on the page. Matches #2227 "drop the stale L1 warning".
  • "Unique in being native and ERC-20" and "What is Token Duality" (native vs ERC-20 transfer, both balances reflect, no wrap/unwrap): kept in the new intro paragraph and on the spec page (token-duality.mdx "What is token duality?").
  • Implementation Details, native transfers/balances like Ethereum, ERC-20 reads native balance: spec "Implementation" and "Reading balances via ERC20"; new "How it works" also states it.
  • balanceOf passes through native balance; transfer/transferFrom do not touch storage and initiate a native transfer; transfer precompile callable only by the CELO token: spec "Transfers via ERC20" plus "The transfer precompile"; also stated in the new "How it works".
  • GoldToken lookup via Registry: kept in the new last paragraph; GoldToken rows exist for both mainnet and Celo Sepolia in /tooling/contracts/core-contracts (lines 29 and 62), so the "address on each network" claim is true.
  • Closing marketing sentence ("seamless interoperability ... highly flexible"): dropped; no fact in it.
    Result: no fact now exists nowhere. The PR also gains something: the precompile address/params/gas (0xff-2, 9000 gas, Jovian warming) were never on this page and are now one click away.

Inbound links and anchors (git grep over mdx, md, json, sh; docs.json redirects):

  • Links to /home/protocol/celo-token: home/index.mdx:30 (now without fragment) and 5 docs.json redirects (lines 1099, 2371, 3075, 3131, 3359) plus the nav entry (line 104). None carries a fragment. No redirect source has a fragment pointing at this page. Spec page untouched, so its fragments (#the-transfer-precompile used by operate/specification/index.mdx:23) are unchanged.
  • Remaining anchors on the page: #what-is-token-duality, #how-it-works; both render with ids under mint dev, and the TOC links to both work. No other page links to them.
  • Dead anchor 1: main's page heading was "What is Token Duality?" -> id what-is-token-duality; #celo-token-duality never existed. After the PR the link has no fragment and clicking it from /home/index lands on /home/protocol/celo-token (confirmed by click under mint dev).
  • Dead anchor 2: overview.mdx has no "Adapters for Non-18-Decimal Tokens" heading (headings: Why Fee Abstraction Matters, How It Works, Wallet support for CIP-64, Whitelisted Fee Currencies (Mainnet), Related). using-fee-abstraction.mdx:26 has it; under mint dev it renders id="adapters-for-non-18-decimal-tokens" and the new link scrolls to it (top 176px). Existing links from overview.mdx and fee-currencies.mdx already used this target.
  • Redirect nit, pre-existing and not a finding: /learn/celo-economic-model and /learn/platform-native-stablecoins-summary redirect here although the topics differ; the trim makes the mismatch more visible but it predates this PR.

#2227 alignment: the suggested direction was "cut celo-token down to a short conceptual introduction that links to /specs/token-duality for the precompile detail, drop the stale L1 warning". The PR does exactly that; the spec path is now /operate/specification/token-duality and the PR links that path (correct; the issue's /specs/ path is stale). The fee-abstraction half stays open, and the PR uses Refs rather than Closes, which is correct. The issue's "Also noticed" add-fee-currency anchor is fixed here.

PR body claims checked against the diff: "five redirects point at it" true (5); "still opened with the Layer 1 warning" true on main; "linking the spec and Core Contracts for the GoldToken address" true; "spec page untouched" true (3 files changed: add-fee-currency.mdx, home/index.mdx, celo-token.mdx); "fixes two links whose anchors never existed" true; mint broken-links success reproduced; rendered ids claim reproduced. No claim outran the diff.

AGENTS.md checks that pass: frontmatter has title and description, no og:description/id/icon/mode, description is one sentence with no trailing period and says the outcome; no H1 in body; no promotional adjectives; no competitor positioning (the ETH/WETH contrast is the same wording as the spec page and a technical contrast, not a Celo-vs-chain positioning; AGENTS.md section 4 and the canonical spec both use it, so I do not flag it); "CELO" for the token and "Celo" for the chain in body prose; "ERC-20" spelling consistent; no stale L1 statements; internal links root-relative, no extension; no emoji. Core Contracts link resolves.

Rendering: /home/protocol/celo-token at 1440x900 and 412x915, no horizontal overflow, zero console errors; /home/index link and add-fee-currency link click through correctly.

What the PR got right

  • Correct call to trim the guide and leave the spec page and its heading fragments alone (the constraint #2227 spells out), and to keep the page rather than delete it because five redirects land on it.
  • Every technical statement in the new text is traceable to the spec page; nothing invented, and the precompile detail is linked rather than restated (one fact, one page).
  • Fixed the second dead anchor to the heading's real home, consistent with the existing links in overview.mdx and fee-currencies.mdx, and used Refs, not Closes, for the half of #2227 that is still open.
  • Body states the verification actually run, and it reproduces.

Merge-order hazards

Open PRs touching shared files (gh pr list --json number,files):

  • #2363 (fee-abstraction restructure) also changes build-on-celo/fee-abstraction/add-fee-currency.mdx with the byte-identical edit to the same line (identical blob 96f41385 in both). Either order merges without conflict, the second becomes a no-op on that file. No other overlap with #2363 (it does not touch celo-token.mdx or home/index.mdx).
  • #2364 and #2346 and #2344 touch docs.json only; this PR does not edit docs.json, so no conflict. git merge-tree of the head against current origin/main is clean.
  • Findings 1 to 3 are all inside celo-token.mdx, which no other open PR touches, so fixing them adds no merge risk.

@palango

palango commented Oct 2, 2026

Copy link
Copy Markdown
Contributor Author

All three are in a62a643, rebased onto current main.

  1. Added "Why it matters on Celo" (one balance that both interfaces read and change, nothing to wrap, wallets and apps can use either interface), a Resources table (the token duality spec and Core Contracts) and a Related list (the spec, Core Contracts, and Celo for Ethereum developers for tracking balances). All three targets are in the nav, and the new section adds no fact that is not already on the spec page.
  2. The page now opens with a short intro naming app developers and CELO holders who use CELO as the native currency, as an ERC-20 token, or both. The "What is Token Duality?" heading is gone. I re-checked that nothing links to #what-is-token-duality, and the spec page is untouched.
  3. sidebarTitle is now "CELO Token".

I also dropped the trailing period from the description, per AGENTS.md section 3. mint broken-links and scripts/check-orphans.sh pass.

@palango
palango force-pushed the palango/token-duality-dedup branch from 6af303e to a62a643 Compare October 2, 2026 12:32
@palango
palango requested a review from GigaHierz October 2, 2026 12:32

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants