RWA Tokenization Explorer

A live demo of an ERC-3643-inspired real-world-asset token on Base Sepolia. Fractions of a real-world asset trade as an ERC-20 whose every mint and transfer is gated on an on-chain KYC whitelist — a transfer to an unverified address is refused by the token itself.

BaseBase Sepolia · testnet only

Everything below is live and readable without a wallet — connect one only to send a transaction, and see the KYC hook decide whether it goes through.

Token 0xf6d3…Ce32 · Identity 0x8FD9…9b82 · Assets 0x4bB2…D024 · Oracle 0x5f30…15Aa · Redemption 0xcC74…a822 · Source on GitHub


Live on chain

  • Token supply8000 ACME
  • Backing assets12
  • Redemptions1
  • Oracle price$1.05
  • Block44526184

The token (Acme Tower Fractions, ACME) has 18 decimals. Supply moves only by compliant mint and by redemption burns. The oracle price is a mock push feed with an on-chain staleness stamp.


The compliance story

Four transactions, already on chain, tell the whole story. The third is the point of the whole demo: an ordinary, correctly-formed ERC-20 transfer that the token itself refuses, because the recipient was never KYC-verified.


Backing assets

Every off-chain asset attested in the registry, oldest first. The document hash and URI are recorded on chain; the URI is operator-supplied metadata, rendered as plain text.
#StatusDocument hashMetadata URI
0 Active 0x8ced…33bc ipfs://bafy-acme-tower-manhattan-office-deed
1 Active 0x00c2…4e12 ipfs://bafy-lakeside-logistics-warehouse-title
2 Active 0xf59b…94bb ipfs://bafy-solar-farm-nevada-ppa-bundle
3 Active 0x2aa4…4990 ipfs://bafy-vineyard-estate-napa-land-grant
4 Active 0xe0ef…9a30 ipfs://bafy-marina-berths-portfolio-lease
5 Active 0xdb75…4b50 ipfs://bafy-datacenter-ashburn-colocation-note
6 Active 0x788e…0b89 ipfs://bafy-timberland-oregon-parcel-registry
7 Active 0xf25f…4e4d ipfs://bafy-hotel-riverfront-revenue-share
8 Active 0xcde5…245c ipfs://bafy-wind-portfolio-texas-turbine-set
9 Active 0xabb8…b5c1 ipfs://bafy-student-housing-austin-reit-slice

Interact

Everything above is readable without a wallet. To send a transaction, connect one — it signs and broadcasts on your machine. Pigfox never holds, receives, or proxies a private key.

Not connected.

Check your compliance status

Reads whether your connected address is on the KYC whitelist and how many ACME it holds. A public visitor is not whitelisted — which is exactly why the transfer below will be refused.

Connect a wallet to check.

Transfer tokens

Both you and the recipient must be KYC-verified, or the token reverts the transfer. If you are a public visitor, expect it to be refused — that refusal is the compliance hook doing its job.

Redeem tokens against an asset

Burns your own tokens against an active asset and records a redemption request an admin later settles off-chain. Requires you to hold the tokens; the asset must be active.

Every check on this panel is UX only — the contract enforces all of it regardless of what this page allows. Whitelisting an identity and minting tokens are agent-only actions performed by the deployer during setup; there is deliberately no whitelist or mint affordance here, because a public visitor cannot (and should not) call them.


About this demo

Testnet only. The token holds no value; the assets, the oracle price, and the KYC whitelist are all seeded for the demo. The contracts are hand-rolled (the ERC-3643 T-REX suite is not vendored), 100% covered, and checked by Slither and Echidna.

Pigfox never holds, receives, or proxies a private key. This page reads the chain and nothing more; anything that changes state is signed by your own wallet.

The full threat model, invariants, and tooling results are in the security notes, and the contracts + deploy provenance are in the source repository.