Skip to content

Docs refresh + dedicated Wormhole section for EVM developers - #60

Open
vriveraPeersyst wants to merge 14 commits into
ripple:mainfrom
vriveraPeersyst:refresh-docs-wormhole-section
Open

Docs refresh + dedicated Wormhole section for EVM developers#60
vriveraPeersyst wants to merge 14 commits into
ripple:mainfrom
vriveraPeersyst:refresh-docs-wormhole-section

Conversation

@vriveraPeersyst

Copy link
Copy Markdown
Contributor

Summary

This PR refreshes stale content across the portal, adds a dedicated Wormhole section, and applies a sitewide style cleanup. Every Wormhole guide was verified end-to-end on-chain before documenting it.

New Wormhole section

Reference (Bridge section, mirroring the Axelar layout):

  • Overview (pages/bridge/wormhole/): architecture (Guardians, VAAs, Executor), Wormhole chain ID 57 vs EVM chain IDs, supported products matrix, XRPL (chain 66) status
  • Deployed Contracts: Core, WTT, Executor, Guardian Governance addresses for Mainnet/Testnet, with the testnet-only legacy relayer warning
  • Supported Tokens: tokens verified live on each network (XRP via the native ERC20 sentinel, RLUSD and USDC.e via NTT, WETH via WTT)

Hands-on guides (Developers > Advanced Guides > Cross-Chain Transactions > Wormhole):

  • Send Cross-Chain Messages (Solidity, Core Contract + Executor delivery)
  • Transfer Tokens (TypeScript SDK + Portal Bridge)
  • Native Token Transfers (NTT CLI deployment flow)
  • Connect Widget (React integration)

On-chain verification behind the guides

  • Deployed the messaging contracts on Testnet, published a message, retrieved the guardian-signed VAA from WormholeScan, verified it in the receiver (replay protection included)
  • Ran the TS SDK transfer flow (approve + transfer + attestation); confirmed tokenId("XRPLEVM", "native") reverts (WTT WETH() unset) and that XRP bridges through its sentinel ERC20 instead
  • Deployed an NTT manager on Testnet with the NTT CLI (chain name XRPLEVM)
  • Confirmed the wormhole-solidity-sdk v1.0.0 interface is ICoreBridge (no IWormhole.sol), and that RLUSD/USDC.e NTT managers are mutually peered with their canonical Ethereum counterparts
  • Read-only checks on Mainnet: all contract addresses, chain IDs, guardian sets, and the absence of an official legacy relayer

Docs refresh

  • EVM compatibility notice updated: Cosmos EVM migration shipped (Prague, solc up to 0.8.30) — verified via Pectra BLS precompiles on both networks
  • Node versions v10.0.2/v10.0.1 -> v10.1.0 (live network version)
  • Fixed Mainnet MetaMask tab showing the Testnet RPC URL in the deploy guide
  • Replaced dead hosts (cosmos.xrplevm.org:1317/26657, bridge*.xrplevm.org) with live endpoints
  • Deduplicated the IBC channel tables into shared snippets; fixed copy-pasted frontmatter blurbs; flagged the manual-relay guides as devnet-amplifier examples

Style cleanup

  • All emojis removed (support tables now use Yes/No/In progress)
  • Em/en dash punctuation rewritten as standard punctuation; unicode hyphens normalized
  • Users section opening lines rewritten
  • Full-branch review pass fixing rendering breakers (Markdoc tags swallowed into tables, tab renumbering, indentation damage) and content bugs (wrong RPC host, anchor links, frontmatter slug collision)

🤖 Generated with Claude Code

vriveraPeersyst and others added 11 commits August 5, 2026 16:36
… developers

New Wormhole section (pages/bridge/wormhole/):
- Overview: architecture (Guardians, VAAs, Executor), chain IDs (Wormhole 57),
  supported products matrix, XRPL (chain 66) status
- Deployed contracts: Core, WTT, Executor, Guardian Governance addresses for
  mainnet/testnet, incl. testnet-only legacy Wormhole Relayer warning
- Send cross-chain messages: Solidity publishMessage/parseAndVerifyVM guide
  with Executor-based delivery guidance for mainnet
- Transfer tokens: WTT via TypeScript SDK (chain name XRPLEVM) + Portal Bridge
- Native Token Transfers: modes, NTT vs WTT, CLI deployment flow
- Connect widget: React integration configured for XRPL EVM mainnet

Wormhole integration across existing sections:
- Bridge index: Wormhole marked live with links to new section
- Developers index + cross-chain introduction: Wormhole guides added
- Users sidebar tools: Portal Bridge and WormholeScan links
- what-is-the-xrplevm: Wormhole listed as live interoperability option

Docs refresh:
- EVM compatibility notice: Cosmos EVM migration shipped (Prague, solc 0.8.30)
  — verified on-chain via Pectra BLS precompiles on mainnet and testnet
- Node versions v10.0.2/v10.0.1 -> v10.1.0 (live network version)
- Fix Mainnet MetaMask tab showing testnet RPC URL in deploy guide
- Replace dead cosmos.xrplevm.org:1317/26657 hosts with live
  cosmos-api/cosmos-rpc/cosmos-grpc endpoints; http -> https for testnet API
- Remove dead bridge.xrplevm.org / bridge.devnet.xrplevm.org links from faucet
- Deduplicate IBC channel tables into shared snippets
- Add devnet-amplifier warnings to manual relay guides (mainnet chain names
  are xrpl / xrpl-evm)
- Fix copy-pasted frontmatter blurbs; remove orphaned Axelar snippet

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…tros

- Remove every emoji across the docs; support tables now use Yes / No /
  In progress instead of check marks, CLI examples and UI references
  reworded where an emoji carried meaning
- Rewrite all em/en dash punctuation as commas, colons, semicolons,
  periods, or parentheses; normalize unicode hyphens (U+2010/U+2011)
  inside compound words to ASCII; ranges now use "to"
- Rewrite the opening lines of every users page (landing, getting
  started, wallets, bridge guides, IBC, faucet) with a cleaner hook
- Remove leftover AI-generated sentence in setup-indexer.md
- Fix trailing broken sentence in node CLI next-steps list

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Verified on XRPL EVM testnet by following each guide step by step:
deployed the messaging contracts, published a message, retrieved the
guardian-signed VAA from WormholeScan, verified it in the receiver
contract (replay protection included), ran the TS SDK token transfer
(approve + transfer + attestation), and deployed an NTT manager with
the NTT CLI. Read-only checks on mainnet confirmed all contract
addresses, chain ID 57, guardian sets, and the absence of the legacy
relayer.

Fixes from verification:
- send-messages: wormhole-solidity-sdk v1.0.0 exposes ICoreBridge
  (interfaces/ICoreBridge.sol) with a file-level CoreBridgeVM struct;
  IWormhole.sol does not exist in that release. Code samples updated
  and a note added. Documented the exact signed-VAA API endpoint.
- transfer-tokens: WTT on XRPL EVM has no native-token wrapping
  (WETH() is unset), so tokenId("XRPLEVM", "native") reverts; example
  now uses an ERC20 address and a warning explains the limitation.
- native-token-transfers: documented the benign deploy-simulation
  warning (OwnableUnauthorizedAccount / EVM version) seen on XRPL EVM.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Researched supported tokens across the Connect config, the Wormhole SDK,
WormholeScan VAA history, and direct on-chain queries on both networks:

- XRP bridges through WTT via its native ERC20 sentinel address
  (verified with a live testnet transfer + signed VAA); only the
  "native" token ID reverts. Guidance corrected accordingly.
- RLUSD is live on Mainnet via NTT (burn and mint), mutually peered
  with the canonical RLUSD manager on Ethereum, Base, Optimism, and
  Unichain.
- Wormhole-Bridged USDC (USDC.e) is live on Mainnet via NTT with an
  Ethereum hub locking canonical Circle USDC.
- WETH (from Ethereum) is the only WTT wrapped asset on Mainnet;
  Testnet has WETH from Sepolia and Base Sepolia plus RLUSD test
  deployments.
- Softened the legacy-relayer claim: an unofficial proxy exists on
  Mainnet but is absent from the SDK registry and unserviced.

Added a Tokens Available on XRPL EVM section (Mainnet/Testnet tabs)
to the transfer guide and linked it from the section index.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
A full review of the branch diff surfaced 24 findings, mostly collateral
damage from the automated emoji/dash/prettier sweeps. Fixes:

Rendering breakers:
- Markdoc {% /tab %}/{% /tabs %} tags swallowed into markdown tables in
  block-explorers, snapshots, and sync-from-genesis (tabs never closed)
- connect-to-the-xrpl-evm: Testnet tab steps renumbered 6/7/8 and tags
  indented into a list item; restored from main and reapplied the new
  opening only
- sending-through-ibc: mixed indentation turned the Testnet channel
  list into a code block; restored from main and reapplied intended
  edits with clean spacing
- verify/interact smart-contract pages, upgrading-your-node,
  maintaining-the-validator, monitoring-the-node: restored original
  structure (tag indentation, nested bullets, TOML banner in a yaml
  fence) and reapplied only the intended prose fixes

Content fixes:
- Wrong RPC host rpc.testnet.xrpl.org -> rpc.testnet.xrplevm.org in
  using-xrp-as-wrapped-erc20
- WTT chain count qualified (30+ chains where WTT is deployed) to stop
  contradicting the 40+ network total elsewhere
- WTT flow steps renamed (Token registration / Observe and sign) to
  stop using "attest" for two different operations
- Sentinel-address usage-limit caveat cross-referenced in the Wormhole
  transfer guide; burn-and-mint hyphenation unified
- html frontmatter slug collision fixed in transfer-iou-with-axelar
- Broken #adding-xrpl-evm-to-metamask anchors corrected
- WormholeScan testnet link added to users Tools sidebar
- gRPC endpoint rows unified as host:port (not https URLs)
- Restored compound-word hyphens lost to the dash sweep
  (high-performance, Ethereum-compatible, Cosmos-native, human-readable,
  fine-tuning), orphan spaces in link texts, faucet overpromise trimmed

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…pers)

The bridge section now mirrors the Axelar layout: theory and reference
live under Bridge, practical guides live under Developers.

- Move send-messages, transfer-tokens, native-token-transfers, and
  connect-widget to developers/interacting-with-evm/advanced-guides/
  cross-chain-transactions/wormhole/ (git mv, frontmatter dropped to
  match the developers-section convention)
- Extract the token tables from the transfer guide into a new
  bridge/wormhole/supported-tokens.md reference page
- Bridge Wormhole group now holds overview, deployed contracts, and
  supported tokens; the developers Cross-Chain Transactions group gains
  a Wormhole subgroup with the four guides
- All cross-links rewired (bridge index, wormhole overview, developers
  index, cross-chain introduction, moved-guide internals)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Rebuilt the upgrade tables in networks.md and sync-from-genesis.md from
the public APIs (gov proposals for plan names/heights, block headers for
dates, plan info for binary tags, Docker Hub for image digests):

- Mainnet: add v10.1 upgrade (height 6856000, 2026-07-20, v10.1.0)
- Testnet: add v10.1 upgrade (height 7725000, 2026-07-15, v10.1.0)
- Devnet: add v10 (height 1198644, 2026-05-05, binary v10.0.3) and
  v11 (height 2089191, 2026-06-29, binary v11.0.0-rc.1); current
  version updated from v9.0.3 to v11.0.0-rc.1 (matches live node_info)

Testnet's v11.1.0 proposal is still in voting and is intentionally not
listed until it passes.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Name Axelar and Wormhole (with links) in the interoperability bullet
  of the What is the XRPL EVM Sidechain intro
- Link the Bridge-section reference material (Wormhole overview,
  deployed contracts, supported tokens, and Axelar contracts) from the
  Cross-Chain Transactions block

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
All five endpoints verified live before documenting: JSON-RPC answers
eth_chainId (1449900), the WebSocket completes the upgrade handshake,
Tendermint RPC reports xrplevm_1449900-1, the REST API serves node_info,
and the gRPC host negotiates HTTP/2 over TLS on 443. gRPC rows unified
as host:port in backticks across the three tabs.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Added a Devnet tab after checking every provider: Peersyst's devnet S3
bucket still serves an October 2025 archive that predates the January
2026 devnet reset (incompatible), Polkachu and Cumulo have no devnet
offering, and ITRocket's devnet page is a placeholder that actually
points at testnet with a null snapshot. The tab states that no public
devnet snapshots exist and routes operators to sync-from-genesis (with
the devnet upgrade path) or state sync instead.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Verified the Axelar testnet constants with real bridge transactions in
both directions:

- XRPL -> XRPL EVM: Payment with the documented memo format to gateway
  rNrjh1KGZk2jBR3wPfAQnoidtFFYQKbQn2 delivered 5 XRP to the EVM side
  (tx 2A047D65...F749 on XRPL, ~1 min)
- XRPL EVM -> XRPL: ITS interchainTransfer with the XRP token ID
  delivered 2 XRP back (tx 0x8d355598...d618)
- All 7 EVM contract addresses match axelar-contract-deployments and
  cross-reference each other on-chain (ITS <-> Factory <-> Gateway);
  the XRP token ID resolves to the native XRP ERC20 sentinel

The round trip exposed three bugs in the send-tokens guide, now fixed:

- destinationAddress must be the ASCII bytes of the classic r-address;
  the guide's decoded 20-byte account ID fails at the Axelar hub with
  "invalid destination address" (reproduced on-chain, funds stranded)
- The deployed ITS only exposes the six-argument interchainTransfer
  overload with an explicit gasValue; the guide's five-argument call
  reverts
- The example r-address had an invalid checksum, and the ethers calls
  used v5 syntax (ethers.utils.parseEther) in a guide that targets v6

Also reframed the r-address/account-ID conversion appendix as
background material (it is not used for ITS transfers) and dropped a
line-anchored GitHub link.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

@oeggert oeggert left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Mostly looks good, but there are broken links to address, as well as some minor front matter issues.

@@ -0,0 +1,56 @@
---
blurb: Wormhole contract addresses on the XRPL EVM Sidechain.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Suggested change
blurb: Wormhole contract addresses on the XRPL EVM Sidechain.
seo:
description: Wormhole contract addresses on the XRPL EVM Sidechain.

blurb isn't a valid frontmatter used by redocly.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Good catch, and blurb turned out to be worse than invalid — it is inert. The live pages carry no <meta name="description"> at all and the blurb string appears nowhere in the rendered HTML; nothing in redocly.yaml, theme.ts or @theme reads it.

labels, html and status are dead in exactly the same way, so I removed all four across the 15 files that had them rather than leave the same dead keys in pages this review did not happen to open.

One deviation from your suggestion: I kept the field you asked for but not the text. Since these become real meta descriptions, I wrote each one against the page content instead of reusing the blurb — 141-151 chars, unique across the set. Here it is:

seo:
  description: "Wormhole contract addresses on the XRPL EVM Sidechain: Core Contract, Wrapped Token Transfers, Executor and Guardian Governance, per network."

Note the quotes. Six of the new descriptions contain a colon-space, which YAML parses as a nested mapping and which broke the frontmatter until quoted — probably worth keeping quoted as a convention for this field.

Fixed in 7829d03.

Comment thread pages/bridge/wormhole/index.md Outdated
@@ -0,0 +1,60 @@
---
blurb: Wormhole interoperability on the XRPL EVM Sidechain.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Suggested change
blurb: Wormhole interoperability on the XRPL EVM Sidechain.
seo:
description: Wormhole interoperability on the XRPL EVM Sidechain.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Applied, with the same deviation as on deployed-contracts.md: correct field, rewritten text.

seo:
  description: "Wormhole on the XRPL EVM Sidechain: how Guardians, VAAs and the Executor connect XRPL EVM to 40+ chains for cross-chain messaging and transfers."

Fixed in 7829d03.

@@ -0,0 +1,36 @@
---
blurb: Tokens supported by Wormhole on the XRPL EVM Sidechain.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Suggested change
blurb: Tokens supported by Wormhole on the XRPL EVM Sidechain.
seo:
description: Tokens supported by Wormhole on the XRPL EVM Sidechain.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Applied, same as the other two.

seo:
  description: "Tokens Wormhole supports on the XRPL EVM Sidechain, including XRP, RLUSD, USDC.e and WETH, with addresses, transfer mechanism and connected chains."

Fixed in 7829d03.

Comment thread pages/users/sending-through-ibc.md Outdated

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Suggested change
{% partial file="/snippets/_ibc-channels-mainnet.md" /%}

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Done, and I did the Testnet table below it too — both were inline copies of snippets this branch had already created.

One thing worth flagging for whoever touches this file next: I left the partial tags at the tab's 6-space indentation rather than moving them to column 0 like the other call sites. Realm dedents a tag body by its common indent, so a single line at column 0 would drop the common indent to zero and turn the rest of the tab into an indented code block.

Fixed in a2fe7c6.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

This links 404s

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Confirmed 404. docs.cosmos.network moved its SDK docs under a /sdk/ prefix, so every /v0.50/... path on the old host is gone. Six links in this file were affected, not just this one.

All rewritten to /sdk/v0.50/learn/advanced/grpc_rest, and I checked that the #grpc-server, #rest-server and #cometbft-rpc anchors still exist in the new page rather than assuming they carried over.

The same move had broken two more links on the branch that were outside your review: the cosmovisor link in upgrading-your-node.md and two /v0.52/learn/intro/ links in interacting-with-cosmos/introduction.md. Fixed in the same commit.

Fixed in a2fe7c6.

Comment thread pages/users/faucet.md Outdated
- **XRPL → EVM:** No signature required on XRPL side.
- **EVM → XRPL:** You’ll sign in MetaMask.
- Track status on the [Axelar Devnet Amplifier Explorer](https://devnet-amplifier.axelarscan.io/gmp/search).
- **[XRPL EVM Devnet Faucet @ Chains.tools](https://chains.tools/faucet/xrplevm)**

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Link is broken

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Worse than broken — chains.tools no longer resolves at all (NXDOMAIN), so there is no replacement URL to point at. I removed the entry rather than leave a dead faucet listed.

The Devnet tab still has the faucet.xrplevm.org entry above it, which covers Devnet via the network selector, so the tab is not left empty.

Fixed in a2fe7c6.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

This link 404s

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Thanks for catching this — chasing the 404 turned up a bigger problem. The URL was not stale, the whole recipe was fictional: there is no SquidWidget.init() global and no script-tag distribution in any release of the widget. Anyone following this page would never have gotten it working.

Rewritten against the real integration: npm install @0xsquid/widget and the <SquidWidget config={...} /> React component, with the Integrator ID prerequisite called out (Squid issues it per project and it gates which chains you can route), a note on the native-token sentinel address, and pointers to the Next.js/Vite setup guides.

Also added a no-code section linking the hosted bridge with XRPL EVM preselected, for readers who do not need it embedded.

Fixed in a2fe7c6.

Comment thread pages/operators/resources/snapshots.md Outdated

| Provider | URL |
| ------------ | ---------------------------------------------------------------------------------------------------- |
| **Peersyst** | [Download Testnet](https://evm-sidechain-snapshots-testnet.s3.us-east-1.amazonaws.com/exrpd.tar.lz4) |

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Getting a specified key doesn't exist error

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Same fix as the Mainnet row — exrpd_latest.tar.lz4. This one is a real 9.9 GB archive, though it was last regenerated on 2026-05-06, so it is about three months stale. Same conversation with the bucket owners as in the thread above.

Fixed in a2fe7c6.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Correction to my earlier comment, and an update.

The bucket moved: the archives are now published at xrpl-evm-snapshots.s3.us-east-1.amazonaws.com/{mainnet,testnet,devnet}.tar.lz4, all three live and current. Both files are updated, and Devnet now has a real snapshot row instead of the "none available" note.

I also need to walk back what I said about the old Mainnet archive. I claimed 79 MB could not be a usable snapshot for a chain at that height. That was an inference from file size and it was wrong — I downloaded the current one and inspected it: 170 MB uncompressed, of which 168.6 MB is application.db and 0.3 MB is blockstore.db, with a .state_sync_done marker. It is generated from a state-synced node, so it carries full state and no block history, which is exactly why it is small. The old archive was almost certainly the same thing.

What was actually wrong stands: the documented URL 404'd and the file was four months stale. Sorry for the noise on the diagnosis.

Updated in 0a18d23.

Comment thread pages/operators/resources/snapshots.md Outdated

| Provider | URL |
| ------------ | ---------------------------------------------------------------------------------------------------- |
| **Peersyst** | [Download Mainnet](https://evm-sidechain-snapshots-mainnet.s3.us-east-1.amazonaws.com/exrpd.tar.lz4) |

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Getting a specified key doesn't exist error

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Confirmed — the archives are published as exrpd_latest.tar.lz4; the exrpd.tar.lz4 key you hit returns NoSuchKey. Both rows updated, and installing-the-node.md carried the same dead URL inside its wget commands, so that is fixed in the same commit.

Flagging one thing this does not fix, so the green link does not read as all-clear: the Mainnet bucket holds a single object, 79 MB, last modified 2026-04-22. For a chain around block 7.37M that cannot be a usable snapshot — Testnet's equivalent is 9.9 GB. So the 404 is gone but an operator following this row would still fail, just later and less obviously.

I have raised it with the team that owns the bucket. If the generation job is dead and not coming back, the honest fix is to drop the Peersyst row and leave Polkachu/Cumulo/ITRocket. Happy to do that in this PR if you would rather not merge a row that is broken in substance.

Fixed in a2fe7c6.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Correction to my earlier comment, and an update.

The bucket moved: the archives are now published at xrpl-evm-snapshots.s3.us-east-1.amazonaws.com/{mainnet,testnet,devnet}.tar.lz4, all three live and current. Both files are updated, and Devnet now has a real snapshot row instead of the "none available" note.

I also need to walk back what I said about the old Mainnet archive. I claimed 79 MB could not be a usable snapshot for a chain at that height. That was an inference from file size and it was wrong — I downloaded the current one and inspected it: 170 MB uncompressed, of which 168.6 MB is application.db and 0.3 MB is blockstore.db, with a .state_sync_done marker. It is generated from a state-synced node, so it carries full state and no block history, which is exactly why it is small. The old archive was almost certainly the same thing.

What was actually wrong stands: the documented URL 404'd and the file was four months stale. Sorry for the noise on the diagnosis.

Updated in 0a18d23.

vriveraPeersyst and others added 2 commits August 26, 2026 11:12
Addresses the link findings from review, plus three more dead links found
while sweeping every external URL on the branch (283 checked).

Reported in review:
- using-the-api.md: docs.cosmos.network moved its SDK docs under /sdk/, so
  the six v0.50 grpc_rest links 404'd. Anchors re-verified on the new page.
- faucet.md: chains.tools no longer resolves (NXDOMAIN). Entry removed;
  there is no replacement host.
- swap-with-squid-widget.md: the guide documented a script tag plus a
  SquidWidget.init() global that does not exist in any widget release.
  Rewritten against the real @0xsquid/widget React component, with the
  Integrator ID prerequisite and a no-code link to the hosted XRPL bridge.
- snapshots.md: the Peersyst archives are published as exrpd_latest.tar.lz4;
  the old exrpd.tar.lz4 key returns NoSuchKey. installing-the-node.md
  carried the same dead URL in its wget commands.

Also found on the branch:
- upgrading-your-node.md: cosmovisor link moved under /sdk/v0.50/.
- interacting-with-cosmos/introduction.md: two v0.52 links moved likewise.
- join-the-proof-of-authority.md: the governance explorer serves proposals
  at /proposals, not /xrp/proposals.

sending-through-ibc.md kept inline copies of the IBC channel tables that
the branch had already extracted into snippets. Both now use the partials.
The partial tags stay at the tab's indentation on purpose: Realm dedents a
tag body by its common indent, so moving one line to column 0 would turn
the rest of the tab into an indented code block.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Review flagged that `blurb` is not valid Redocly frontmatter. It is worse
than invalid: it is inert. The rendered pages carry no <meta name=
"description"> at all and the blurb string appears nowhere in the HTML,
and nothing in redocly.yaml, theme.ts or @theme reads the field.

`labels`, `html` and `status` are inert in exactly the same way, so all
four are removed together rather than leaving the same class of dead key
behind in the files the review did not happen to open. Realm's supported
frontmatter is seo/slug/sidebar/template/navigation and the config
overrides; none of the four appear in it.

Each page now carries a single seo.description written against its own
content rather than the blurb it replaces, 141-151 characters, unique
across the set. This gives the portal meta descriptions it never had. The
two manual-relay guides in particular were near-indistinguishable before
and now name their direction and their actual steps.

transfer-iou-with-axelar.md had inherited its blurb verbatim from
interchain-evm-sidechain-xrpl.md ("Axelar interchain transfer to XRPL"),
which is not what the page documents. Rewritten for IOUs.

Descriptions are quoted: six of them contain a colon-space, which YAML
parses as a nested mapping and which broke the frontmatter until quoted.
Worth keeping as a convention for this field.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@vriveraPeersyst

Copy link
Copy Markdown
Contributor Author

@oeggert all nine threads are addressed — replies inline on each. Two commits, and since the diff grew past what you reviewed, here is the scope:

a2fe7c6 — links and the IBC partials

Your four link findings, plus three more of the same kind found by checking every external URL on the branch (283 of them):

File Problem
interacting-with-cosmos/using-the-api.md 6 links, docs.cosmos.network moved its SDK docs under /sdk/
users/faucet.md chains.tools no longer resolves (NXDOMAIN), entry removed
swap-with-squid-widget.md rewritten, see below
operators/resources/snapshots.md exrpd.tar.lz4 -> exrpd_latest.tar.lz4
operators/getting-started/installing-the-node.md same dead S3 URL in its wget commands
operators/guides/upgrading-your-node.md cosmovisor link, same /sdk/ move
interacting-with-cosmos/introduction.md two more links, same move
operators/validators/join-the-proof-of-authority.md governance explorer serves /proposals, not /xrp/proposals

The remaining sweep hits are false positives I deliberately left alone: 405 on JSON-RPC endpoints (POST only), 400 on WebSocket endpoints, 403 anti-bot from Medium/npm/Grafana, and placeholder URLs inside code snippets.

The Squid one was not a stale URL. The page documented a <script> tag and a SquidWidget.init() global that have never existed in any release of the widget, so the guide was unusable as written. Rewritten against the real @0xsquid/widget React component.

Also folded in the IBC table dedupe you asked for, on both the Mainnet and Testnet tabs.

7829d03 — frontmatter

blurb is not just invalid, it is inert: the live pages emit no <meta name="description"> at all and the blurb text appears nowhere in the rendered HTML. labels, html and status are dead the same way, so all four are gone across the 15 files that carried them — otherwise this PR fixes three files and leaves the identical dead keys in twelve others.

Each page now has a seo.description written against its own content rather than the old blurb, 141-151 chars and unique across the set, which gives the portal meta descriptions it has never had. Deviation from your suggestions noted in each thread.

One thing not fixed, flagged so it does not slip through

The Mainnet snapshot link no longer 404s, but the bucket holds a single 79 MB object last modified 2026-04-22. For a chain around block 7.37M that is not a usable snapshot — Testnet's is 9.9 GB. The row will look fine to a link checker and still fail an operator. Raised with the team that owns the bucket; if the job is not coming back I would rather drop the Peersyst row than ship it. Your call whether that belongs in this PR.

Left all nine threads open for you to resolve.

The archives moved to xrpl-evm-snapshots.s3.us-east-1.amazonaws.com, keyed
by network name rather than exrpd_latest.tar.lz4. All three verified live.

Devnet now has a published snapshot, so the "no public Devnet snapshots are
currently available" note is replaced with a real provider row, and the
Devnet tab in installing-the-node.md gets its own restore commands instead
of redirecting to state sync.

Note on sizes for whoever checks these next: the Mainnet and Devnet
archives are small (170 MB and 12 MB uncompressed) because they are
generated from state-synced nodes — full application.db, ~0 blockstore.db,
with a .state_sync_done marker. That is a pruned snapshot, not a broken
one. Testnet is ~10 GB because it retains block history.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
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