Skip to content

chore(contracts): drop local ERC-8004 registries, use the canonical deployments - #144

Open
JulioMCruz wants to merge 1 commit into
mainfrom
chore/drop-local-erc8004-registries
Open

chore(contracts): drop local ERC-8004 registries, use the canonical deployments#144
JulioMCruz wants to merge 1 commit into
mainfrom
chore/drop-local-erc8004-registries

Conversation

@JulioMCruz

Copy link
Copy Markdown
Contributor

Follow-up to #143. Removes the local Solidity copies of the ERC-8004 registries so forge build and forge test finally run clean with no --skip flags.

Why remove instead of fix

Nothing consumed them. The app talks to the canonical ERC-8004 v2 registries at their CREATE2-deterministic addresses:

Registry Mainnet Testnet
Identity 0x8004A169FB4a3325136EB29fA0ceB6D2e539a432 0x8004A818BFB912233c491871b3d84c89A494BD9e
Reputation 0x8004BAa17C55a88189AE136b182e5fdA19dE9b63 0x8004B663056A597Dffe9eCcC1965A193B7388713
Validation not officially deployed yet not officially deployed yet

Those come from StackApp/lib/utils/config.ts, with ABIs hand-maintained in StackApp/lib/contracts/erc8004/abis.ts (that file's own header explains why: @perkos/contracts-erc8004@1.0.1 still describes the pre-v2 contracts).

Checked before deleting:

  • No Foundry script or test references them.
  • No broadcast/ record — they were never deployed from this repo.
  • scripts/deploy-erc8004.ts is a Hardhat script and SmartContracts/ has no Hardhat config, so it could not run.
  • StackApp/ imports nothing from SmartContracts/.

They had not compiled since March. Docs/ERC-8004-UPGRADE-PLAN.md (2026-03-08, branch upgrade-erc8004-v2, status "In Progress") rewrote the three interfaces to v2 and left every Solidity checkbox unticked. The implementations still referenced the deleted ValidationRequest struct and ValidationStatus enum, were missing three interface functions, and had three changed return types. The --skip lists documented in SmartContracts/README.md and Docs/SIWA-ERC8183.md existed to build around exactly this.

Finishing that migration would mean maintaining a private reimplementation of a standard that publishes canonical deployments, for no consumer.

Changes

Removed:

  • SmartContracts/src/erc8004/ — 3 implementations + 3 interfaces
  • SmartContracts/scripts/deploy-erc8004.ts

Docs realigned:

  • CLAUDE.md — documents the canonical addresses and the NEXT_PUBLIC_<NETWORK>_{IDENTITY,REPUTATION,VALIDATION}_REGISTRY overrides; the "Deployment" section no longer tells you to deploy registries that do not exist here.
  • SmartContracts/README.md, Docs/SIWA-ERC8183.md--skip workarounds dropped.
  • Docs/ERC-8004-UPGRADE-PLAN.md — marked closed, with the reasoning.

The /api/erc8004/* routes, the ABIs and the TypeScript types are untouched.

Verification

$ forge build
Compiling 77 files with Solc 0.8.28
Compiler run successful!

$ forge test
Suite result: ok. 2 passed; 0 failed; 0 skipped

Note

NEXT_PUBLIC_<NETWORK>_VALIDATION_REGISTRY still lets you point at a self-hosted Validation Registry while the official one is not deployed. If we ever want to run one, the right move is deploying the reference implementation from the spec, not reviving these files.

…eployments

Stack does not deploy its own ERC-8004 registries. The app reads and writes
the canonical v2 registries at their CREATE2-deterministic addresses
(StackApp/lib/utils/config.ts) using hand-maintained ABIs
(StackApp/lib/contracts/erc8004/abis.ts). Nothing consumed the Solidity
copies: no Foundry script or test referenced them, no broadcast record
exists, and deploy-erc8004.ts was a Hardhat script in a directory with no
Hardhat config.

They had also been uncompilable since 2026-03-08, when
Docs/ERC-8004-UPGRADE-PLAN.md rewrote the three interfaces to v2 and left
the implementations on the January shape (deleted ValidationRequest struct
and ValidationStatus enum, three unimplemented functions, changed return
types). Maintaining a private reimplementation of a standard that publishes
canonical deployments has no consumer, so remove them instead of finishing
the migration.

Removed:
- src/erc8004/ (3 implementations + 3 interfaces)
- scripts/deploy-erc8004.ts

Docs updated to match: CLAUDE.md now documents the canonical addresses and
the NEXT_PUBLIC_<NETWORK>_*_REGISTRY overrides instead of a deploy flow, and
the --skip workarounds in SmartContracts/README.md and Docs/SIWA-ERC8183.md
are gone. ERC-8004-UPGRADE-PLAN.md is marked closed.

`forge build` and `forge test` now run clean with no --skip flags for the
first time; tests 2/2 passing.
@vercel

vercel Bot commented Jul 29, 2026

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
stack Ready Ready Preview, Comment Jul 29, 2026 1:38am

Request Review

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