ERC / EIP ↔ Neo Standards Mirror
Most application-level Ethereum standards have a Neo N3 counterpart — sometimes a one-to-one NEP, sometimes a stronger native primitive that makes the EIP unnecessary, and sometimes a migration pattern with known semantic differences. This module catalogs the checked-in mirror set: pick a category below, then flip between the ERC/EIP detail, the Solidity implementation, and the equivalent Neo C# implementation.
Use the mirror as a migration map, then validate production behavior against the deployment results and the Solidity support matrix.
Categories
Live on TestNet
The frontend catalog currently exposes 129 ERC/EIP mapping pages across the five categories above. Forty-seven standards in this mirror have Solidity and Neo C# contract pairs deployed on Neo N3 TestNet (network magic 894710606). The same invocation matrix runs against the Solidity (compiled with neo-solc) and the Neo C# (compiled with nccs) versions, recording pass/fail assertion results for both implementations.
Snapshot status
The checked-in TestNet snapshot is a validation matrix, not an all-green parity certification. The latest checked-in result records 147 / 183 assertions passing; failures and repro details are listed in deployments/RESULTS.md.
Checked-in TestNet snapshot: 147 / 183 assertions pass across 47 deployed pairs. The full pass/fail matrix is in results.json and RESULTS.md. The deploy runner now exits non-zero when any compile, deploy, liveness, or assertion check fails.
What about the other catalog entries?
The checked-in catalog includes deployable demos for most entries. A small set remains outside the live TestNet pair matrix because the Ethereum mechanism is either protocol-specific, superseded by another EIP, or not yet part of the deployment snapshot.
Eighty-two catalog entries are not in the live TestNet pair matrix:
- EIP-1559 (fee-market base-fee auction) — Neo doesn't auction fees.
- EIP-4844 (blob transactions) — Neo doesn't have blobs.
- EIP-3074 (AUTH/AUTHCALL) — superseded by EIP-7702 and covered by Neo witness scopes.
- ERC-6909 (minimal multi-token) — documented as a direct Neo C# port but not part of the checked-in deployment snapshot.
- ERC-1363 (payable token) — built into NEP-17's
onNEP17Paymentcallback; no standalone deploy needed. - ERC-3009 (transfer with authorization) — subsumed by Neo's witness scopes; no separate contract required.
- ERC-6551 (token bound accounts) — registry-pattern catalog entry; deploy targets a per-collection setup rather than a single fixture.
- ERC-1167 (minimal proxy clones) — registry-pattern catalog entry; cloning is a deploy-time operation rather than a single fixture.
- ERC-4361 (Sign-In with Ethereum) — primarily an off-chain server convention; on-chain verifier is application-specific.
- ERC-3668 (CCIP Read) — subsumed by Neo's native Oracle service; no on-chain mirror contract needed.
- ERC-7528 (native asset address) — Neo native assets (NEO, GAS) already have well-known contract hashes; nothing to deploy.
- ERC-7656 (generalised contract-linked services) — registry-pattern catalog entry, like ERC-6551.
- ERC-3448 (MetaProxy Standard) — registry-pattern catalog entry; same deploy-time shape as ERC-1167.
- ERC-7535 (native asset vault) — collapses to ERC-4626 with
asset = NEO/GAS; covered by the existing ERC-4626 deployment. - ERC-4907 (rental NFT) — NEP-11 storage extension; no separate fixture needed beyond a port-side example.
- ERC-6093 (custom token errors) — vocabulary convention; no contract to deploy.
- ERC-7786 (cross-chain messaging gateway) — bridge-adapter pattern; per-bridge deploy depends on the chosen transport.
- ERC-5313 (light contract ownership) — view-only convention; satisfied by every existing contract that exposes
getOwner. - ERC-5564 (stealth addresses) — announcer contract is small; deploy depends on a wallet-SDK rollout to be useful.
- ERC-6066 (NFT signature validation) — NEP-11 storage extension scoped per tokenId; no separate fixture beyond an example NFT.
- ERC-3643 (T-REX regulated token) — multi-contract framework (token + identity registry + compliance modules); per-deployment shape rather than a single fixture.
- ERC-5202 (blueprint contract format) — Neo's deploy primitive already separates blob storage from execution; no magic-prefix container needed.
- ERC-7944 (async cancellation for ERC-7540) — extension of ERC-7540's request queue; covered by the existing ERC-7540 deployment plus the additional cancel flow.
- ERC-8042 (diamond storage) — storage convention for ERC-2535; covered by the existing ERC-2535 deployment plus storage-prefix discipline.
- ERC-5679 (token mint/burn) — selector convention; satisfied by every NEP-17 / NEP-11 contract that exposes a
Mintwrapper. - ERC-2135 (consumable interface) — NEP-11 storage extension; no separate fixture needed.
- ERC-7160 (multi-metadata NFT) — NEP-11 storage extension; no separate fixture needed.
- ERC-3475 (abstract storage bonds) — port-side primitive; deploy is per-issuance configuration.
- ERC-7092 (financial bonds) — port-side primitive; deploy is per-bond configuration.
- ERC-6982 (default lockable tokens) — NEP-11 storage extension; covered by per-collection deploy.
- ERC-7677 (paymaster web service) — off-chain JSON-RPC convention; on-chain footprint is optional escrow contract.
- ERC-7144 (ERC-20 with transaction validation) — NEP-17 transfer override + per-policy validator; per-deployment shape.
- ERC-7943 (Universal RWA Interface) — capability-flag + compliance umbrella; per-deployment shape rather than a single fixture.
- ERC-5006 (Rental NFT user extension for ERC-1155) — NEP-11 divisible + record storage; per-collection shape.
- ERC-2767 (contract ownership governance) — interface convention; satisfied whenever a governance contract owns the governed contract.
- ERC-7758 (modern transfer-with-authorization) — same Neo answer as ERC-3009; covered by witness scopes.
- ERC-5169 (client script URI) — token-metadata extension; one method addition to any NEP-11 / NEP-17 contract.
- ERC-5375 (NFT author and consent) — NEP-11 metadata extension; per-collection configuration shape.
- ERC-5023 (shareable NFT) — NEP-11 multi-holder extension; per-collection shape.
- ERC-7066 (lockable extension) — NEP-11 storage extension; covered by per-collection deploy.
- ERC-7432 (NFT roles) — NEP-11 storage extension; per-collection role conventions.
- ERC-6105 (no-intermediary trading) — NEP-11 listing/swap extension; per-collection shape.
- ERC-5615 (ERC-1155 supply extension) — NEP-11 divisible storage extension; covered by per-collection deploy.
- ERC-5773 (multi-asset tokens) — NEP-11 storage extension; per-collection shape.
- ERC-6059 (nestable NFTs) — NEP-11 parent-child storage extension; per-collection shape.
- ERC-4519 (physical-asset NFTs) — NEP-11 + device-pubkey extension; per-device deploy depending on physical batch.
- ERC-5570 (digital receipt NFT) — NEP-11 metadata extension; per-merchant deploy shape.
- ERC-6150 (hierarchical NFTs) — NEP-11 storage extension; per-collection shape.
- ERC-6220 (composable equippable parts) — NEP-11 + catalog extension; per-collection shape.
- ERC-5380 (entitlement extension) — NEP-11 storage extension; per-collection shape.
- ERC-5489 (NFT hyperlink) — NEP-11 storage extension; per-collection shape.
- ERC-6672 (multi-redeemable NFTs) — NEP-11 storage extension; per-collection / per-operator shape.
- ERC-7634 (limited transfer count) — NEP-11 storage extension; per-collection shape.
- ERC-7007 (AI-generated content) — NEP-11 attestation extension; per-collection / per-model shape.
- ERC-5725 (vesting NFT) — NEP-11 + NEP-17 underlying-token mechanics; per-deployment configuration.
- ERC-6454 (transferable detection) — NEP-11 view extension; satisfied by every contract that exposes IsTransferable.
- ERC-7715 (AA permission grants) — Witness-scope-based authorisation; per-account permission module deploy.
- ERC-5507 (refundable NFTs) — per-token escrow + refund window; per-collection deploy.
- ERC-5528 (refundable ERC-20) — per-buyer escrow + refund window; per-deployment shape.
- ERC-5521 (referable NFT) — citation-graph extension; per-collection shape.
- ERC-5646 (state fingerprint) — view extension; satisfied by every contract that hashes its mutable state.
- ERC-5585 (NFT authorization rights) — per-(tokenId, rights) storage extension; per-collection shape.
- ERC-6239 (semantic SBT) — NEP-11 + RDF claims storage; per-collection shape.
- ERC-7053 (digital media indexing) — event-emission convention; no per-fixture deploy needed.
- ERC-7405 (modular wallet) — per-account module dispatch; per-wallet deploy.
- ERC-7585 (cross-chain SIWE) — off-chain library convention; on-chain verifier is application-specific.
- ERC-6381 (NFT emote repository) — standalone singleton; one global deploy serves all NEP-11s.
- ERC-7857 (AI agent NFT) — NEP-11 + encrypted-metadata extension; per-collection / per-service deploy.
- ERC-7231 (identity-aggregated NFT) — NEP-11 + Merkle-root extension; per-collection shape.
- ERC-7531 (staked NFT recognition) — staking-contract view; per-staking-contract deploy.
- ERC-5216 (ERC-1155 allowance) — NEP-11 divisible storage extension; per-collection shape.
- ERC-5008 (NFT nonce) — NEP-11 storage extension; per-collection shape.
- ERC-4910 (royalty-bearing NFTs) — NEP-11 + NEP-24 escrow extension; per-collection shape.
- ERC-5732 (commit interface) — standalone commit-reveal contract; one global deploy serves any consumer.
- ERC-4400 (NFT consumable, lite) — NEP-11 storage extension; per-collection shape.
- ERC-5750 (method extensibility) — convention satisfied by every NEP-17 / NEP-11 (already four-parameter shape).
- ERC-5269 (ERC detection) — manifest
supportedstandardsalready provides this natively. - ERC-5453 (endorsement / generalised permit) — native witness scopes already provide per-call signature auth.
- ERC-5496 (multi-privilege NFT) — NEP-11 storage extension; per-collection shape.
- ERC-6357 (multi-delegatecall) — Neo's transaction script natively supports multi-invoke without contract changes.
- ERC-1046 (fungible tokenURI) — NEP-17 view convention; per-deployment metadata pointer.
- ERC-7746 (security middleware hooks) — pre/post hook chain pattern; per-deployment shape.
The other protocol entries in the table have live demos exposing their Neo counterparts, such as transaction version, witness scopes, PUSH0, NEF size, ContractManagement.Destroy, and NEP-30 verify.
Source pairs, deploy script, full results JSON, and instructions to reproduce live under docs/standards-mirror/deployments/.
How to Read This
Each entry shows three views in a tabbed nav bar:
| Tab | What it shows |
|---|---|
| ERC / EIP Detail | The standard's purpose, interface, motivation, and the corresponding Neo mechanism. |
| Solidity Implementation | A reference Solidity implementation as deployed on Ethereum. |
| Neo C# Implementation | The idiomatic Neo equivalent — either a direct NEP, a composition pattern, or an explanation of why the EIP is a no-op on Neo because the protocol already covers it. |
How To Read The Pills
Each entry carries a parity pill that summarizes the mirror relationship:
| Pill | Meaning |
|---|---|
| NEP-XX (green) | Direct NEP equivalent. Same interface shape, sometimes simpler. |
| Native (blue) | Subsumed by Neo's protocol primitives. No NEP or contract needed. |
| Pattern (orange) | Composition pattern in the Neo devpack — no dedicated NEP, but a clear recipe. |
Module Internals
Each category page registers its entries with a shared <StandardsMirror> Vue component that drives the master/detail UI. All content is plain Markdown — VitePress's bundled Shiki highlights every Solidity and C# block, and the search index covers everything.
To add another standard, append a <StandardEntry> block to the appropriate category page. The page automatically picks it up.
For deeper reference on the Neo standards behind the mirrors, see Standards and Contracts and devpack/standards/STANDARDS_MAPPING.md.
