Skip to content

docs(minipay): collapse the section to one Celo-specific overview that routes to docs.minipay.xyz - #2271

Open
GigaHierz wants to merge 3 commits into
mainfrom
GigaHierz/2264-minipay-overview
Open

docs(minipay): collapse the section to one Celo-specific overview that routes to docs.minipay.xyz#2271
GigaHierz wants to merge 3 commits into
mainfrom
GigaHierz/2264-minipay-overview

Conversation

@GigaHierz

@GigaHierz GigaHierz commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

The hole, and the fix

build-on-celo/build-on-minipay/ had five pages (overview, quickstart, code-library, deeplinks, ngrok-setup) that duplicated — and lagged — the MiniPay team's own docs, and none of the five linked to docs.minipay.xyz. Two copies of the mini-app lifecycle is two copies to keep fresh.

This PR collapses the section to one page, build-on-celo/build-on-minipay/overview.mdx, that keeps only what is Celo-specific and routes everything else out:

  • stablecoins-only (USDm / USDC / USDT with mainnet addresses and decimals; the 6-vs-18-decimals warning and a transfer snippet)
  • gas paid in the user's stablecoin via fee abstraction, with the eth_estimateGas/eth_gasPrice + feeCurrency snippet
  • window.ethereum.isMiniPay detection and auto-connect
  • phone-number → address lookup (ODIS) — kept under the same heading text as before because docs.minipay.xyz deep-links to code-library#resolve-minipay-phone-numbers-to-addresses; the redirect plus the identical heading keeps that anchor working
  • the deeplink table (MiniPay's own deeplinks page is marked "available soon")
  • a 3-step "test inside MiniPay" summary
  • an index of all 29 pages on docs.minipay.xyz, grouped, so a reader or an agent can see what is available from here
  • funding pointers (the Proof-of-Ship URL on the old page returned 404; replaced by celopg.eco, which returns 200)

Deleted: the other 4 pages and the 26 screenshots only they referenced. Redirects: the 4 deleted paths, plus the 6 legacy /developer/build-on-minipay/* entries that pointed at /build/build-on-minipay/* (paths that have no page and relied on the /build/:slug* catch-all), now all point directly at the overview; 6 /build/build-on-minipay/* sources added for the same reason. 3 inbound links (composer-kit.mdx, quickstart.mdx, wallets/index.mdx) updated from the stale /build/... paths to the real one.

What this does NOT do / residual risk

  • Does not move the page into a "Mini Apps" group — that is the Build-tab PR (story: Build tab — merge "Build on Celo" and Tooling into build/*, with Agents and Mini Apps leading #2259). The nav entry stays under Use Cases.
  • External links to docs.minipay.xyz are to the .html URLs their site serves (VitePress); if they turn on clean URLs those still resolve, but the links are outside our mint broken-links gate — 29 of them were curled today, all 200.
  • The ODIS snippet was rewritten (see evidence) and typechecks, but was not executed — it needs a registered DEK and paid ODIS quota. @celo/identity has no Celo Sepolia context, so the page says mainnet only; whether ODIS is deployed on Celo Sepolia is OPEN.
  • Old external links that pointed at specific sections of quickstart or code-library (other than the phone-lookup anchor) now land on the overview top.

Judgement calls

  • Kept the deeplink table although it is not Celo-specific, because the MiniPay page for it is still "available soon". Delete the section once theirs is live — one hunk.
  • Kept the ODIS lookup section on our side rather than linking out, because the MiniPay docs link to us for it. Reversible once they publish their own method (their page says one is coming).
  • Redirect deleted pages to the overview (internal) rather than to the matching docs.minipay.xyz page (external) — the issue left this OPEN; internal keeps users on a page that explains what changed. One-line change per redirect.
  • Replaced the dead Proof-of-Ship link with the celopg.eco root rather than dropping the funding section.

Issues

Refs #2264 — closes: one overview page; 4 pages deleted with redirects; docs.json:1795–1816 redirects re-pointed; Celo-specific troubleshooting snippets kept; in place (no directory move); broken-links green. Still open: the ops box (inform the MiniPay docs owners which slugs we deep-link to); "written to AGENTS.md" is met in substance (sentence-case headings, Prerequisites → task sections → Related, bare fence tags) but AGENTS.md itself is in #2269, unmerged.

Stacking / conflicts

Branched off main, independent of my other open PRs. Shares docs.json with #2267 (top-level integrations block) and #2270 (Build with AI sub-groups) — different hunks, no conflict; merge in any order.

Verification evidence

$ mint broken-links      # on ad165adf, clean worktree
success no broken links found
$ python3 -c "import json;d=json.load(open('docs.json'));print(len(d['redirects']),'redirects; unique sources:',len({r['source'] for r in d['redirects']})==len(d['redirects']))"
645 redirects; unique sources: True
$ grep -rn --include='*.mdx' 'build-on-minipay/' . | grep -v _deprecated | grep -v legacy/ | grep -v overview.mdx   # no stale inbound links
(empty)

TypeScript (tsc --noEmit --strict):

snippets.tsx  # second run: ODIS section as carried over from the old page(34,107): error TS2353: Object literal may only specify known properties, and 'sign191' does not exist in type 'WalletKeySigner'.
snippets.tsx  # second run: ODIS section as carried over from the old page(34,119): error TS7031: Binding element 'message' implicitly has an 'any' type.
snippets.tsx  # second run: ODIS section as carried over from the old page(34,128): error TS7031: Binding element 'account' implicitly has an 'any' type.
snippets.tsx  # second run: ODIS section as carried over from the old page(35,76): error TS2339: Property 'CELO_SEPOLIA' does not exist on type 'typeof OdisContextName'.

First run failed: Module '"@celo/abis"' has no exported member 'stableTokenABI' — carried over from the deleted code-library page; fixed by using viem's erc20Abi.
Second run: the ODIS snippet typechecksit did not: sign191 is not a member of WalletKeySigner and OdisContextName.CELO_SEPOLIA does not exist in @celo/identity 5.1.2 (the old page's snippet never matched the released API). Rewritten in 9d62403f to use the DEK ENCRYPTION_KEY signer, the mainnet ODIS context, and readContract with federatedAttestationsABI from @celo/abis. Third run, snippet extracted verbatim from the page:

tsc: ODIS snippet (verbatim from the page) typechecks OK against @celo/identity 5.1.2, viem 2.55.19

Contract addresses in that snippet were resolved from the on-chain registry (0x…ce10 getAddressForString): FederatedAttestations 0x0aD5…aff2, OdisPayments 0xAE6B…D0CB, matching tooling/contracts/core-contracts.mdx.
External: all 29 docs.minipay.xyz URLs, the MiniPay template repo, the faucet, the Mento app and celopg.eco returned 200 on 2026-08-21; celopg.eco/programs/proof-of-ship-s1 (old link) returned 404.

Remaining ops steps

  • Tell the MiniPay docs owners which of their slugs we deep-link to (29 listed on the page) and that docs.celo.org/developer/build-on-minipay/code-library#resolve-minipay-phone-numbers-to-addresses now redirects to the overview with the same anchor

Checklist

  • Title is the commit message I want on main
  • mint broken-links passes; redirects added for every deleted path (listed above)
  • Judgement calls flagged above
  • No secrets in the diff
  • Questions for the maintainer: drop the deeplink table now, or wait for MiniPay's page?

…t routes to docs.minipay.xyz

Refs #2264

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
GigaHierz and others added 2 commits August 21, 2026 15:54
…has no stableTokenABI export)

Refs #2264

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ished @celo/identity API

The carried-over snippet used a viem sign191 signer and a CELO_SEPOLIA context that do not exist in @celo/identity 5.x. Use the DEK (ENCRYPTION_KEY) signer, the mainnet context, and a viem readContract call with the FederatedAttestations ABI from @celo/abis.

Refs #2264

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@GigaHierz
GigaHierz marked this pull request as ready for review August 22, 2026 10:28
@GigaHierz
GigaHierz requested review from a team as code owners August 22, 2026 10:28
@GigaHierz
GigaHierz requested review from palango and removed request for a team August 22, 2026 10:28
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.

1 participant