Skip to content

Conversation

@chadxeth
Copy link

@chadxeth chadxeth commented Jun 3, 2025

Introduced a new ERC standard that allows token transfers to be validated through an external "Transfer Oracle" using zero-knowledge proofs. This standard aims to enhance compliance and flexibility in institutional tokenization while maintaining ERC-20 compatibility. Included detailed specifications, interfaces, and events for implementation.

@eip-review-bot
Copy link
Collaborator

eip-review-bot commented Jun 3, 2025

File EIPS/eip-7963.md

Requires 1 more reviewers from @g11tech, @lightclient, @SamWilsn, @xinbenlv

File ERCS/erc-7963.md

Requires 1 more reviewers from @g11tech, @SamWilsn, @xinbenlv

@github-actions github-actions bot added the w-ci label Jun 3, 2025
@chadxeth chadxeth closed this Jun 5, 2025
@chadxeth chadxeth reopened this Jun 5, 2025
@github-actions github-actions bot added w-ci and removed w-ci labels Jun 5, 2025
@chadxeth chadxeth force-pushed the master branch 2 times, most recently from cdc1f35 to 6cb4710 Compare June 5, 2025 05:57
ERCS/erc-7963.md Outdated
@@ -0,0 +1,226 @@
---
eip: 7963
title: Oracle-Permissioned ERC-20 with ZK-Verified ISO 20022 Payment Instructions
Copy link
Contributor

Choose a reason for hiding this comment

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

Unfortunately ISO standards are not generally free (as in beer) to access. Unless this one is different, we do not permit links (even by name) to non-free resources. Doing so would place a burden on implementers that may be unfair to smaller organizations and individuals who might not be able to access the document.

Copy link
Author

Choose a reason for hiding this comment

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

Hey Sam, thanks for reviewing my PR. I have a couple of questions regarding this that I have compiled from the authors:

  1. Is it permissible to mention “ISO 20022 pain.001” by name if the implementation does not require access to the official ISO document? The spec is based on a public interpretation and open-source JSON abstraction.

  2. Would a clarification stating that “no ISO standard documents are required to implement this EIP” be sufficient to resolve the concern? I’m happy to include a Licensing & Accessibility section to that effect.

  3. Am I allowed to describe the schema as “pain.001-compatible” or “inspired by ISO 20022 pain.001” instead of naming the exact standard?

  4. Is referencing the publicly browsable message definitions on iso20022.org acceptable, or should I remove even those?

Copy link
Author

Choose a reason for hiding this comment

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

Hey Sam, do let me know so i can push this forward.

Copy link
Author

Choose a reason for hiding this comment

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

hey @SamWilsn , sorry to bother but do you mind responding to my questions so that i can push this PR forward.

Copy link
Contributor

Choose a reason for hiding this comment

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

Sorry for the wait!

Is it permissible to mention “ISO 20022 pain.001”

As long as it isn't required, and the reference is just for something like "compatible with ISO 20022" I'd be okay with it

Copy link
Contributor

Choose a reason for hiding this comment

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

Is referencing the publicly browsable message definitions on iso20022.org acceptable, or should I remove even those?

Please remove them.

Comment on lines +156 to +160
This standard is **proof-system-agnostic**. The reference implementation uses RISC Zero for:
+ **Transparent Setup**: No trusted ceremony required
+ **Developer Experience**: Write verification logic in Rust
+ **Performance**: Efficient proof generation and verification
+ **Auditability**: Clear, readable verification code
Copy link
Contributor

Choose a reason for hiding this comment

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

Text describing the reference implementation should be placed in that section.

Copy link
Author

Choose a reason for hiding this comment

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

Noted on this.

ERCS/erc-7963.md Outdated
+ **CLI Tools**: Host program for proof generation and verification
+ **Gas Optimization**: Efficient on-chain verification with detailed gas profiling

Repository: [chadxeth/eip-permissioned-erc20](https://github.com/chadxeth/eip-permissioned-erc20)
Copy link
Contributor

Choose a reason for hiding this comment

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

If the reference implementation is small, include it inline in this document. If it is larger, you should include it in the assets/... directory under a permissive license.

Copy link
Author

Choose a reason for hiding this comment

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

Understood on this as well. Will include in my next commit.

Copy link
Contributor

Choose a reason for hiding this comment

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

We prefer SVGs if you can, or PNGs failing that.

Copy link
Contributor

Choose a reason for hiding this comment

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

Also this doesn't seem to be used.

Copy link
Author

Choose a reason for hiding this comment

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

I will remove this logo.

…t Instructions

Introduced a new ERC standard that allows token transfers to be validated through an external "Transfer Oracle" using zero-knowledge proofs. This standard aims to enhance compliance and flexibility in institutional tokenization while maintaining ERC-20 compatibility. Included detailed specifications, interfaces, and events for implementation.
chadxeth and others added 5 commits November 3, 2025 14:05
…s and enhance validation requirements. Added details on approval consumption behavior, amount range design, and best-match selection for overlapping approvals.
chadxeth and others added 5 commits November 13, 2025 14:42
- Title: Oracle-Permissioned ERC-20 with ZK Proofs (43 chars)
- Add description field (116 chars, within 140 limit)
- Satisfies EIP-1 format requirements
Complete implementation with:
- Solidity contracts (PermissionedERC20, TransferOracle, RiscZeroVerifier)
- RISC Zero ZK programs for payment instruction validation
- Comprehensive test suite (80 Solidity + 45 Rust tests passing)
- CLI tools and deployment scripts
- Full documentation

Implementation uses generic payment instruction terminology
(refactored from pain.001-specific naming).

Size: 1.0 MB (cleaned of build artifacts and dependencies)
- Add required preamble fields: discussions-to, category, requires
- Fix preamble field order (author before status)
- Change section headers from # to ## (Abstract, Motivation, Specification)
- Link EIP-1967 reference
- Remove backticks from file path in Reference Implementation
- Restructure appendix content (remove section, integrate into spec)
- Fix Copyright section with CC0 link
- Change table headers to avoid ERC-7963 pattern matching issues
@github-actions github-actions bot added t-erc and removed w-ci labels Nov 13, 2025
@eip-review-bot eip-review-bot changed the title Add ERC: Oracle-Permissioned ERC-20 with ZK-Verified ISO 20022 Payment Instructions Add ERC: Oracle-Permissioned ERC-20 with ZK Proofs Nov 13, 2025
- Move 'requires' field after 'created' in preamble (correct order)
- Reorder sections: Security Considerations now after Reference Implementation
- Simplify reference implementation link to avoid erc-7963 pattern issue
@chadxeth
Copy link
Author

@SamWilsn @bomanaps updates have been made on this EIP taking into account all comments, please do review again thank you.

@github-actions github-actions bot added the w-ci label Nov 13, 2025
- Add index.md files for directory navigation in Jekyll build
- Fix LICENSE reference: change from missing file to CC0 statement
- Fix broken EIP-walkthrough.md link: replace with ERC-7963 spec URL
- Update resource links and capitalize Payment Instruction properly
@github-actions
Copy link

The commit b4d052a (as a parent of 1290dff) contains errors.
Please inspect the Run Summary for details.

- Rename assets/erc-7963/ to assets/eip-7963/ (matches Jekyll convention)
- Update ERC spec to reference ../assets/eip-7963/ paths
- Remove broken directory links from index files (contracts/, test/, etc.)
- Keep only valid links to README.md and zk/ subdirectory
@github-actions github-actions bot removed the w-ci label Nov 13, 2025
@chadxeth
Copy link
Author

chadxeth commented Dec 5, 2025

@SamWilsn @bomanaps @fjl gm to all, requesting a review for this, Ant international's team is happy to jump on a call anytime to clarify anything.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants