Testnet demo. Runs on Sepolia and Solana devnet with test tokens only. No real assets or money. Known limitations
Compliance

Rules enforced on-chain

Only verified investors can hold BharatRWA tokens. The check happens inside the token on every transfer, on both chains, so it can't be bypassed by using another app.

Ethereum ERC-7943

  1. ZK proof

    Backend proves age 18+, KYC and sanctions status with Noir. Tied to the wallet.

  2. ComplianceManagerV2

    Verifies the proof on-chain, checks it's for msg.sender, records approval with expiry.

  3. BharatRWATokenV2

    ERC-7943: canSend / canReceive / canTransfer on every transfer, mint and burn.

The ZK proof is verified by the contract itself. The V2 contracts are built and tested but not yet deployed on Sepolia; current demo tokens use ComplianceManager V1.

Solana Token-2022

  1. ZK proof

    Same proof, verified off-chain by the backend.

  2. Attester → allowlist

    approve_investor writes an entry PDA (approved, jurisdiction, expiry) and thaws the account.

  3. Transfer hook

    Token-2022 calls the hook on every transfer; it rejects unless both owners are allowlisted.

The chain trusts the attester's off-chain check. Live on devnet: BMOT mint.

Would this transfer be allowed?

Reads the live compliance state from Sepolia or Solana devnet. Nothing is signed or sent.

Try:

ERC-7943 on Token-2022

ERC-7943Token-2022 equivalentLimitation
canSend / canReceive / canTransferTransfer hook reads both allowlist entriesNot a view function; the hook ignores amounts
setFrozenTokens / getFrozenTokensFreeze authority + accounts frozen by defaultWhole accounts only, no partial amounts
forcedTransferPermanent delegateFrozen source must be thawed and re-frozen in the same transaction
ERC-165 0x3edbb4c4NoneClients inspect the mint's extensions instead
Metadata (ERC-20 name/symbol)Metadata pointer + on-mint metadataNo ERC-7943 equivalent needed

Full table and trade-offs in the README · ERC-7943 spec

Solana devnet transactions

Programs: compliance · transfer hook