Skip to content

Trim the README and refresh the deployments list - #1430

Merged
ryanio merged 9 commits into
mainfrom
ryan/readme-deployments
Nov 10, 2026
Merged

ryanio merged 9 commits into
mainfrom
ryan/readme-deployments

Conversation

@ryanio

@ryanio ryanio commented Nov 9, 2026 •

Copy link
Copy Markdown
Collaborator

Stacked on #1429. It retargets to main once the earlier PRs merge.

The README goes from 946 lines to 77. It keeps what Seaport is, the canonical addresses, links, a quick start, audits, and contributing. The longer material moves to dedicated files, so the README has little that can go stale.

  • docs/Deployments.md has the canonical addresses for every version and helper, plus the chains with Seaport 1.6. Each chain was re-checked onchain: the runtime code matches Ethereum's apart from the chain ID, domain separator, and transient-storage flag that the constructor stores.
    • It adds about 45 chains the README was missing, including Unichain, Monad, Sonic, zkSync Era, Abstract, Linea, Scroll, ApeChain, Berachain, Ink, Soneium, Ronin, Arc, Elysium, Robinhood Chain, and their testnets.
    • Gnosis, Chiado, Celo, Moonbeam, Moonriver, and Fantom Opera only have Seaport 1.5, so they move out of the 1.6 list.
    • Klaytn and Baobab become Kaia and Kairos, and dead explorer links are gone.
    • The per-chain columns for 1.1, 1.5, the validator, and the navigator are dropped. Those contracts sit at their canonical addresses, and cast code checks any chain.
  • docs/Development.md holds the build, test, coverage, and lint instructions.
  • docs/Deploying.md is the existing deployment guide, renamed from Deployment.md so it doesn't collide with Deployments.md.
  • diagrams/README.md now holds the Mermaid flowchart.

Docs only.

🤖 Generated with Claude Code

The README now covers what Seaport is, the canonical addresses, links,
a quick start, audits, and contributing. Longer material moves to
dedicated files:

- docs/Deployments.md: canonical addresses for every version and the
  chains with Seaport 1.6, re-checked onchain. It adds about 40 chains
  the README was missing, and moves Gnosis, Chiado, Celo, Moonbeam,
  Moonriver, and Fantom, which only have 1.5, out of the 1.6 list.
- docs/Development.md: build, test, coverage, and lint instructions.
- docs/Deploying.md: the existing deployment guide, renamed from
  Deployment.md to sit beside Deployments.md.
- diagrams/README.md: the Mermaid flowchart.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🟡 Changes recommended

The deployment documentation conflates Fantom Opera with Sonic, incorrectly implying that Sonic lacks Seaport 1.6 and contradicting the mainnet table.

1 open issue
What changed in this PR

This documentation-only PR makes the README a concise entry point for Seaport, moving detailed guidance into dedicated files without changing contracts or deployed bytecode.

Changes:

  • Shortens the README while retaining canonical addresses, key links, quick-start commands, and contribution guidance.
  • Expands the deployment reference and separates Seaport 1.6 networks from 1.5-only networks.
  • Consolidates development instructions, renames the deployment guide, and relocates the Mermaid flowchart.
File Description
README.md Replaces lengthy sections with concise guidance and links.
docs/​Development.md Collects setup, testing, coverage, and linting instructions.
docs/​Deployments.md Lists canonical addresses and refreshed network deployments.
docs/​Deploying.md Renames the existing deployment guide to distinguish it from the deployment list.
diagrams/​README.md Houses the Mermaid flowchart alongside the full diagram.

Review effort: Balanced

Comment thread docs/Deployments.md Resolved
Sonic is a separate chain with Seaport 1.6, so "Fantom (now Sonic)"
read as if Sonic lacked it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🔵 Needs a closer look

The deployment equivalence caveat omits _tstoreInitialSupport, whose deployment-time EIP-1153 probe can cause legitimate runtime-bytecode differences and lead readers to misidentify valid canonical deployments as mismatches.

No open issues 🎉

1 previously missed issue

In code that hasn't changed since last review

Low severity Include TLOAD support immutable in bytecode equivalence caveat

docs/​Deployments.md:3

The 1.6 release's ReentrancyGuard constructor also embeds _tstoreInitialSupport, whose value comes from probing TLOAD support at deployment. Chains with different EIP-1153 support at deployment can therefore have another legitimate runtime-bytecode difference, even with identical init code. Please include this immutable in the equivalence caveat so readers do not mistake a valid canonical deployment for a bytecode mismatch.

1 resolved since last review

Review effort: Balanced

Seaport 1.6's ReentrancyGuard records at deployment whether TSTORE
works, so chains without EIP-1153 at the time have a third legitimate
difference from Ethereum's runtime code.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@ryanio

ryanio commented Nov 9, 2026

Copy link
Copy Markdown
Collaborator Author

Copilot's body-only finding about _tstoreInitialSupport is fixed in c9ced0a. docs/Deployments.md now lists all three constructor-stored values that legitimately differ per chain: the chain ID, the domain separator, and whether the chain supported transient storage (EIP-1153) at deployment. The onchain check behind the chain list already allowed for all three.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🔵 Needs a closer look

The expanded deployment list and cross-chain runtime-bytecode equivalence claims require independent on-chain verification, but no RPC results are provided and this review environment cannot validate them.

No open issues 🎉

Review effort: Balanced

@ryanio

ryanio commented Nov 9, 2026

Copy link
Copy Markdown
Collaborator Author

On Copilot's note that it couldn't verify the chain list itself: here's how each entry was checked, for reviewers.

For every chain in docs/Deployments.md, eth_getCode on 0x0000000000000068F116a894984e2DB1123eB395 returned code. That code was compared byte for byte with Ethereum's after substituting the three constructor-stored values (the chain ID, the domain separator computed from that ID, and the transient-storage flag), and every listed chain matched. The ConduitController was compared directly. Any chain that returned no code was retried on a second RPC before being called "not deployed". That second check is how Gnosis, Chiado, Celo, Moonbeam, Moonriver, and Fantom Opera ended up 1.5-only.

To spot-check a chain: cast code 0x0000000000000068F116a894984e2DB1123eB395 --rpc-url <rpc>.

All three mainnets, plus the Arc and Robinhood Chain testnets, have the
canonical Seaport 1.6 deployment, checked onchain the same way as the
other chains.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🔵 Needs a closer look

The expanded deployment list and cross-chain runtime-bytecode equivalence claims require independent onchain validation, as no supporting RPC verification results are available.

No open issues 🎉

Review effort: Balanced

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🔵 Needs a closer look

The expanded cross-chain deployment inventory and runtime-bytecode equivalence claims require independent onchain verification, but no independently checkable per-chain results or validated RPC access were available.

No open issues 🎉

Review effort: Balanced

@tomhirst

Copy link
Copy Markdown

Review: safe to merge, 9/10. This PR changes docs only. All 9 canonical addresses are checksummed, match the old README and have code on Ethereum. I spot-checked about 35 of the listed chains with cast against public RPCs. On every one the chain ID matched, and Seaport 1.6 (23981 bytes) and the ConduitController were deployed. Gnosis, Chiado, Celo and Fantom have 1.5 deployed but not 1.6, so moving them to the 1.5-only list is correct. Bugcrowd, the audit link, the license and the #deployments anchor are all kept.

P0: none
P1: none
P2:

  • docs/Deployments.md:58: the opBNB explorer link is dead because opbnb.bscscan.com doesn't resolve. Suggest https://opbnbscan.com/address/0x0000000000000068F116a894984e2DB1123eB395.
  • docs/Deployments.md:73: the zkSync Era link to era.zksync.network/address/... returns a 301 to the explorer.zksync.io home page, so the address is lost. Suggest https://explorer.zksync.io/address/0x0000000000000068F116a894984e2DB1123eB395, which also matches the zkSync Sepolia row.
  • Canto (1.6, 1.5, 1.1 and ConduitController in the old README) is now missing from both the 1.6 tables and the 1.5-only list, and the PR description doesn't mention it. Suggest adding a one-line note saying why it was dropped, e.g. that its RPCs are no longer reachable.

Optional:

  • Leave a one-line stub at the old docs/Deployment.md path so external links don't 404.
  • Note the date and the RPCs used for the onchain check, so the deployments list can be audited.
  • I couldn't reach Moonbeam, Moonriver, Arc mainnet, Animechain, Shape or Zora over public RPCs, so I haven't verified those rows independently.

ryanio and others added 2 commits November 10, 2026 02:12
…cked

Leave a stub at docs/Deployment.md so old links still resolve.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@ryanio

ryanio commented Nov 10, 2026

Copy link
Copy Markdown
Collaborator Author

Thanks @tomhirst. Fixed in 433c66e:

  • The opBNB link is now opbnbscan.com, and zkSync Era uses explorer.zksync.io. Both return 200 with the address page.
  • Canto: none of its chainlist RPCs answer today, so I couldn't verify it. A new "Unverified" section says it was listed before and why it's left out.
  • docs/Deployment.md is back as a stub pointing to Deploying.md and Deployments.md.
  • The doc now gives the check dates and method (cast chain-id plus cast codesize against public RPCs).

I checked the rows you couldn't reach. Arc mainnet (rpc.mainnet.arc.io), Animechain, Shape, and Zora all return chain IDs 5042, 69000, 360, and 7777777, with Seaport 1.6 at 23981 bytes and the ConduitController present. Moonbeam and Moonriver (via dRPC, since the official endpoint fails its TLS handshake from here) have Seaport 1.5 and the ConduitController but no 1.6 code, which matches the 1.5-only list.

@ryanio
ryanio changed the base branch from ryan/biome-forge-lint to main November 10, 2026 18:13
@ryanio
ryanio merged commit a96cf02 into main Nov 10, 2026
12 of 22 checks passed
@ryanio
ryanio deleted the ryan/readme-deployments branch November 10, 2026 18: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.

4 participants