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.
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:
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