The Interceptor - A transaction simulator extension

The Interceptor is an open source browser extension for a browser that simulates your transactions.

The Interceptor is used alongside your wallet
The Interceptor is used alongside your wallet
Uniswap transaction simulation
Uniswap transaction simulation
A malicious application is attempting to defraud you. Do not sign this kind of a transaction!
A malicious application is attempting to defraud you. Do not sign this kind of a transaction!

The Interceptor's core features

In this blog post, we delve into four key features of the Interceptor:

  1. Transaction simulation: The Interceptor simulates your transactions and explains to you what the transactions and messages are going to do before you sign them.

  2. Account spoofing: The Interceptor allows anyone to be Vitalik, no social engineering of Vitalik to get his private key is needed.

  3. Simulation stack: You are not only able to simulate the next transaction you are going to send, but you can simulate multiple transactions in row as if they were on a chain!

  4. Open source, censorship resistant and privacy protective: The Interceptor is developed how every crypto application should be developed: out in the open (join our discord), open source, with permissive licensing, in a censorship resistant way, and with a strong focus on user privacy. Not just in the future, but also in the present.

1) Transaction simulation

The Interceptor simulates every transaction that you do. No more blind transaction signing! When using a web3 application that prompts you to sign a transaction or off chain message, we simulate it and provide a clear explanation of what the application is requesting. This enhanced visibility instills confidence in exploring various applications, allowing you to understand and review the actions they ask you to authorize.

Minting 5000 RAI with 1000 ETH using reflexer.finance
Minting 5000 RAI with 1000 ETH using reflexer.finance

2) Account spoofing

The Interceptor empowers users to assume the identity of any Ethereum address, experiencing the world through the perspective of another Ethereum account. Notably, the default account for The Interceptor is set to Vitalik's account (0xd8da6bf26964af9d7eed9e03e53415d37aa96045). It's important to clarify that The Interceptor neither utilizes nor stores users' private keys.

When adding an account, we only need account's address.
When adding an account, we only need account's address.
Uniswap shows how we are logged in as vitalik.eth
Uniswap shows how we are logged in as vitalik.eth

3) Simulation Stack

The Interceptor not only presents visually appealing representations of your transactions before you decide to send them, whether actively considering or experimenting with the dapp's potential actions, but also allows you to execute the transaction within a simulation. The simulation stack empowers you to observe the impact on the blockchain state when multiple transactions are sent.

Here's an illustrative case featuring four transactions within The Interceptor's simulation stack, with an additional one pending user approval for inclusion in the stack.
Here's an illustrative case featuring four transactions within The Interceptor's simulation stack, with an additional one pending user approval for inclusion in the stack.

Next, we will explore two examples illustrating the application of the simulation stack on Uniswap, as well as a case demonstrating its use in rescuing assets from a compromised account.

3.1) Using Uniswap in Simulation Mode

When using Uniswap, initiating a swap involves sending multiple transactions. The standard process begins with performing an ERC20 approval transaction followed by the actual swap transaction. This pattern of token approval and transfer is commonplace in Ethereum applications.

However, this sequence can hinder users from smoothly navigating the application. In order to comprehend the application's functionality, users often find themselves sending numerous transactions, akin to filling out a lengthy web form without knowing the required documents or information needed to complete it. Sometimes, the cost of submitting the form is unknown until all details are filled.

Let's navigate through Uniswap's flow to see what it does!

We'll be using Uniswap Uncensored, which is an uncensored and privacy preserving version of Uniswap. First we'll select the preferred trade from the UI: In our case, we'll be swapping all Vitalik's USDT to RAI:

Then we initiate the swap itself and Interceptor's simulation views pops, showing that we need to allow Uniswap's contract to spend all Vitalik's Tether:

After we approve the transaction, the transaction is pushed into The Interceptor's simulation stack (we do not need to sign anything). Now all the applications viewing the blockchain via The Interceptor's RPC node see that Vitalik has approved Uniswap's contract to spend his USDT tokens.

Then Uniswap will prompt us to perform the swap:

After approving it, we'll see that the transaction has gone through in Uniswaps UI.

Yay, we were able to swap Vitalik's USDT to RAI, without his private keys!

The Interceptor also shows the summary of all the results of the transactions we just did
The Interceptor also shows the summary of all the results of the transactions we just did

You might notice that in Uniswap's view and in the summary view we have ETH balance of over 200 000 ETH. This is one of the cool features that The Interceptors has. Make me Rich Mode transfers you 200 000 ETH in the simulation. This ETH comes handy when experimenting with different applications.

Now as we have freshly bought RAI, we can use it in other applications. For example we can use Lunaria (a simple tool to send ETH or tokens) to send the RAI to some other account.

The Interceptor's simulation stack is not bound to one application, but can be used to interact with multiple applications at once.

3.2) Using simulation stack to rescue funds

Many users leverage The Interceptor's simulation capabilities to recover compromised funds. In the unfortunate event that y private key is compromised, resulting in a theft of funds from your account, there may be an opportunity to rescue remaining assets. To successfully execute a rescue operation, it is necessary to cover the gas fees for rescue transactions by paying them directly from the compromised Ethereum account. It's crucial to note that merely transferring ETH to a compromised account is not a viable option, as the hacker can swiftly move the funds into their own pocket before you have a chance to use the ETH for gas to rescue your assets.

To address this challenge, we construct a simulation stack with The Interceptor: we transfer ETH to the compromised account, recover the assets, and subsequently forward the entire stack to an Ethereum relay. The relay incorporates the simulation stack into a comprehensive bundle, which is then recorded on-chain. Our tool, Bouquet, in conjunction with The Interceptor, is designed to seamlessly execute this process.

Utilizing Bouquet is simple to use and it provides an alternative rescue service to Flashbots white hat service. While white hats can complete more complex rescue attempts, it comes with a cost and can be slow. Bouquet is a free service and can be used at any time.

Please check How to securely transfer unclaimed tokens from a compromised wallet on instructions on how to use bouquet, you can also watch Scott's video about the same topic).

If you need assistance with recovering assets with The Interceptor, please reach out to our 24/7 support team at Discord.

4) The Interceptors core values

We develop censorship resistant software. Even if the team behind the Interceptor vanishes, the extension should work as it is. Even if the team becomes malicious, the older versions of the software should always remain functional and immutable. The extension should not depend on anything that when vanishing would prevent the usage of the extension.

To make The Interceptor even more censorship resistant, The Interceptor is licensed with a very permissive license: the unlicense. Also all the other peripheral software that we develop also comes up with the same license. Anyone is able to fork The Interceptor and use it as they like. We'll appreciate a mention that you use our code, but neither we nor the license requires it.

User's privacy is very important to us. We develop software that aims to maintain users privacy and does not leak any unnecessary information about the user to outside observers. We are also not collecting usage statistics from the users of our products. While such information would be valuable for development of our products, we feel that the user's privacy is more valuable than that.

Preserving users' sovereignty over their funds is a paramount concern for us. The Interceptor provides users with advice and guidance on transactions, and at times, may recommend against certain transactions. It's important to note, however, that The Interceptor will never restrict or prevent users from executing any transactions.

We also believe that it's good to develop out in the open. We develop publicly on Discord and in Github.

Go ahead and install The Interceptor and try it with these apps!

You can also join us in The Interceptor Discord to if you have any questions or just want to hang around with us!

Subscribe to Killari - Dark.florist
Receive the latest updates directly to your inbox.
Mint this entry as an NFT to add it to your collection.
Verification
This entry has been permanently stored onchain and signed by its creator.