Overview
Trusted forwarders allow creators and marketplaces the ability to establish channels that become part of the order routing through Payment Processor. Channels allow for more granular trade attribution and metrics as well as the ability to block hostile apps from piggy-backing on the open Payment Processor protocol to vampire attack creators and marketplaces.
There are two modes that a trusted forwarder can operate in - open or permissioned. In open mode the forwarder will relay all transactions with the caller's address appended to the transaction calldata. In permissioned mode the forwarder will require the transaction data be signed by an address set by the forwarder's owner in order to be relayed.
Creators may configure Payment Processor to only allow transactions that originate through specific channels (see add trusted channel) which, combined with a permissioned forwarder, allows creators to enforce their sales to be routed through specific frontend interfaces.
How They Work
Trusted forwarders work by receiving a function call from a user that contains the destination target and calldata to be relayed by the forwarder, appending the caller's address to the calldata and executing the call to the destination. Contracts that receive calls from the trusted forwarder check that the caller is a valid trusted forwarder and extract the original caller's address from the end of the calldata to use in place of the trusted forwarder's address as the caller of the function. See the diagram below for a visual representation of this process.
For more information about deploying a trusted forwarder, continue to the deployment page.
