EIP-3643 Compliance
Why EIP-3643
Component Overview
┌──────────────────────────────────────┐
│ KYCAggregator │
│ (one per deployment, multi-source) │
│ isVerified(addr) = OR of providers │
└─────────────────┬────────────────────┘
│
┌───────────────┼─────────────────┐
▼ ▼ ▼
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ SimpleKYC │ │ Future │ │ Future │
│ Provider │ │ Sumsub │ │ Onfido │
│ (whitelist) │ │ Provider │ │ Provider │
└──────────────┘ └──────────────┘ └──────────────┘
▲
│ isVerified() called on every
│ transfer of pSPCX / on every
│ TokenBridge.redeem()
│
┌───────────────────┬───────────┴────────┬────────────────────┐
│ │ │ │
▼ ▼ ▼ ▼
┌─────────────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ EIP3643Token │ │ TokenBridge │ │ EIP3643Token │ │ TokenBridge │
│ (pSPCX) │◄─┤ (1 hub, ├───►│ (future │◄───┤ (same) │
│ │ │ N pairs) │ │ pPNTC...) │ │ │
└─────────────────┘ └──────┬───────┘ └──────────────┘ └──────────────┘
│ │
│ mint/burn 1:ratio │ mint/burn 1:ratio
▼ ▼
┌──────────────┐ ┌──────────────┐
│ ShadowERC20 │ │ ShadowERC20 │
│ (xSPCX) │ │ (future...) │
└──────────────┘ └──────────────┘EIP3643Token Contract (pSPCX)
State
Variable
Type
Purpose
Roles
Role
Granted to
Purpose
Transfer Rules
Mint / Burn
ShadowERC20 Contract (xSPCX)
Behaviour
Implementation
TokenBridge Contract
Field
Purpose
deposit (security → shadow)
redeem (shadow → security)
Invariants
Invariant
How enforced
Operational Privileges and Their Limits
Power
Held by
Constrained by
Roadmap to Multi-Asset
Last updated