Relayer Friendly Contracts

Learn how to make a contract relayer friendly, which enables features like cross-chain execution

Some standard contracts are not relayer friendly out of the box, this can be a problem when executing cross-chain transactions. A contract is considered relayer friendly if at least one of the following requirements are met:

  • Open: The contract doesn't depend on msg.sender, in this case the contract is completely open to relayer execution and the relayer can execute any method on behalf of the user.
  • Signature/Permit: The contract explicitly supports signed messages to identify the actor in place of the msg.sender. A good example of this is ERC20 permit.