Status: Work In Progress
Magical Internet Money is here to help manage your crypto assets.
- Multiple addresses
- EVM chain crypto assets:
- ETH and ERC-20 Fungible Tokens
- ERC-721 and ERC-1155 Non-Fungible Tokens
- ENS Names (ERC-721 and ERC-1155)
- ERC-5564 Stealth Transfer support for ETH, ERC-20 and ERC-721 tokens (testing on Sepolia Testnet). Note that the ERC-1155 tokens are not supported under the current ERC-5564 Stealth Transfers
- All data is stored in your local browser storage
- Execute simply from GitHub Pages
- No additional backend servers required
- On-chain data is used where possible, supplemented with public data sources
- Source code can be downloaded and run using e.g. anywhere in the
./docs
folder
- Web3 browser, connected to Ethereum Mainnet or the Sepolia Testnet currently
https://bokkypoobah.github.io/MagicalInternetMoney/
This project is currently heavily under development. Clear your browser's LocalStorage and IndexedDB if this dapp is not operating as expected as the configuration data may have a new format.
- Base ERC-20/721/1155 event log scraping very slow - has a max number of blocks of ~10k
- Disable unhandled Fungibles e.g. CryptoPunks, MoonCats, CryptoCats
- Display total and individual Fungible balances
- ERC-5564: Stealth Addresses
- ERC-6538: Stealth Meta-Address Registry
- https://github.com/nerolation/stealth-wallet
- https://github.com/kassandraoftroy/erc5564-contracts
- An incomplete guide to stealth addresses
- ERC-5564 Stealth Addresses
- EIP-5564: Improving Privacy on Ethereum through Stealth Address Wallets
- Ethereum stealth addresses (ERC-5564) library
- https://github.com/paulmillr/noble-curves
We are using the contracts listed in Stealth Address - Deployments on the Sepolia network:
- ERC5564Announcer @ 0x55649E01B5Df198D18D95b5cc5051630cfD45564
- ERC6538Registry @ 0x6538E6bf4B0eBd30A8Ea093027Ac2422ce5d6538
Deployed on Sepolia:
An implementation of ERC-5564: Stealth Addresses and ERC-6538: Stealth Meta-Address Registry (using address
instead of bytes
).
Test it at https://bokkypoobah.github.io/MagicalInternetMoney/ (WIP) connected to the Ethereum Sepolia testnet.
- Alice wants to pay Bob in ETH/ERC-20/ERC-721 tokens
- Bob generates a Stealth Meta-Address and provides this to Alice
- Alice uses Bob's Stealth Meta-Address to compute a random Stealth Address that can be accessed only by Bob
- Alice transfers the tokens to this address and announces the transfers in the ERC-5564: Stealth Address Announcer contract
- Bob can access the private keys to their computed Stealth Addresses, using information included in the announcements
- The ERC-6538: Stealth Meta-Address Registry allows any account to publish their associated Stealth Meta-Addresses
This dapp:
- Allows Bob's web3 attached account to generate a unique Stealth Meta-Address for each unique associated phrase
- Allows Alice to compute a random Stealth Address using Bob's Stealth Meta-Address
- Allows Alice to then execute the transfer to Bob's Stealth Address and announce the transfer to the Announcer
- Retrieve all event logs published to the Announcer
- Retrieves all event logs published to the Registry
Click [+] from the Addresses menu to access the Stealth Meta-Address generation screen.
Click [Generate] to generate a new Stealth Meta-Address, then sign the phrase with your web3 attached account.
Click [Add] to add your newly generated Stealth Meta-Address to your addresses.
Click [Add/Update] to add your newly generated Stealth Meta-Address to the Stealth Address Registry, then sign and send the web3 transaction.
Click [Sync] to retrieve events from the blockchains.
The newly registered Stealth Meta-Address.
Click on the [>] button to send ETH/ERC-20/ERC-721 tokens to that Stealth Meta-Address.
0.000012345 ETH
rounded to 0 in the web3 wallet.
Enjoy!
(c) BokkyPooBah / Bok Consulting Pty Ltd 2024. The MIT Licence.