Skip to main content

Overview

Sablier V2 uses a forwarding proxy architecture designed to make the protocol more modular and extensible without introducing upgradeability. The particular forwarding proxy contract that we are using is PRBProxy. You can think of this as an extension of externally-owned accounts (EOAs in short).

When using the Sablier Interface, senders are required to deploy a proxy before being able to interact with the Sablier Protocol. However, deploying the proxy is a one-time event.

note

Do not confuse this approach with upgradable proxies. Despite having a similar name, these are two different concepts. PRBProxy is not upgradeable.

Proxy is Sender

When creating streams via the proxy contract, the Sablier Protocol will record the proxy as the stream's sender:

Permit2

In the ProxyTarget, we use Permit2 for all interactions that involve transfers of ERC-20 tokens from the proxy owner to the proxy contract. To be more specific, we are using the AllowanceTransfer contract instead of SignatureTransfer because it offers a more user-friendly nonce schema.