March 05, 2022 | By Jonathan Becker
Revoke.finance is a simple DApp which allows users to see all open token approvals on their Ethereum account and manage them in an elegant React UI. I made this project after witnessing the DDoSing of revoke.cash as well as etherscan.io during the February 19 OpenSea phishing attack.
This project will be deployed to IPFS and will be DDoS proof as long as one node is hosting the file. All valid IPFS CIDs can be found on Revoke.finance, which will be updated as the project recieves further updates.
IPFS Mirror: ipfs://bafybeifvkg4o5b7vxitg46xevmgmza7rkjjhc6fd2dx6spl5rnrkfxgiru
The main feature of this project is the approval list, which will show all active approvals from supported ERC-20 tokens. This allows users to view the Token
, Contract Address
, Spender Address
, and Allowance Amount
for each approval, and give them the option to edit or revoke this approval.
Another valuable feature of this DApp is the incident feed, which will allow users to see in real-time incidents that are ongoing within the cryptospace. This includes hacks, exploits, or bugs, and will allow users on the application to see which approvals may be risked due to an ongoing incident.
This entire project is open-source and crowdsourced. If you have an ERC-20 token you want supported, or want to report an incident, all you have to do is open a pull-request and it will be added to the DApp. For more information on contributing, see the next section.
If you want to add support for a token or change token information, follow these steps:
-
- Fork this repository
-
- Add or edit the token within public/assets/json/erc20.json.
- In order to be accepted, follow the JSON format below:
{ chainId: number, // Chain ID address: string, // Contract address name: string, // Name of token, 40 chars max symbol: string, // Symbol of token, 20 chars max decimals: number, // Number of decimals token uses logoURI: string | null, // URI / URL for token logo extensions: { link: string | null, // URL of token's website description: string | null, // Short description of token (1000 chars max) ogImage: string | null // URL of Open Graph image of token website } }
- Fields that do not exist should be marked
null
.
-
- Open a pull request to the main branch.
- If you are updating a token, explain why within your PR.
If you are reporting an incident that is ongoing or has happened in the past, follow these steps:
-
- Fork this repository
-
- Add or edit the incident within public/assets/json/incidents.json.
- In order to be accepted, follow the JSON format below:
{ severity: string , // high, medium, or low platform: { name: string, // Name of platform address: string | null, // Contract address of platform logoURI: string | null, // Link to platform Logo }, description: string, // Detailed description of incident (50 char min, 1000 max) source: string | null, // Valid source regarding incident date: string, // Date of incident, YYYY-MM-DD HH24:MM:SS (2022-03-05 23:59:59) }
- Fields that do not exist should be marked
null
.
-
- Open a pull request to the main branch.
- If you are updating an incident, explain why within your PR.
- ERC20 token directory: 0xSequence/token-directory