Francisco Giordano 8e980480aa Fix broken crossreference links (#2005) 5 years ago
..
Context.sol 52dc14c368 Make _msgSender() payable (#1913) 6 years ago
GSNRecipient.sol 8e980480aa Fix broken crossreference links (#2005) 5 years ago
GSNRecipientERC20Fee.sol aae95db4e0 GSN renaming (#1963) 6 years ago
GSNRecipientSignature.sol aae95db4e0 GSN renaming (#1963) 6 years ago
IRelayHub.sol d864228624 Improve GSN documentation (#1900) 6 years ago
IRelayRecipient.sol e855ca450a Improve IRelayRecipient no-impl note 6 years ago
README.adoc c4bb7b7bb9 remove beta notice 6 years ago

README.adoc

= Gas Station Network (GSN)

_Available since v2.4.0._

This set of contracts provide all the tools required to make a contract callable via the https://gsn.openzeppelin.com[Gas Station Network].

TIP: If you're new to the GSN, head over to our xref:openzeppelin::gsn/what-is-the-gsn.adoc[overview of the system] and basic guide to xref:ROOT:gsn.adoc[creating a GSN-capable contract].

The core contract a recipient must inherit from is {GSNRecipient}: it includes all necessary interfaces, as well as some helper methods to make interacting with the GSN easier.

Utilities to make writing xref:ROOT:gsn-strategies.adoc[GSN strategies] easy are available in {GSNRecipient}, or you can simply use one of our pre-made strategies:

* {GSNRecipientERC20Fee} charges the end user for gas costs in an application-specific xref:ROOT:tokens.adoc#ERC20[ERC20 token]
* {GSNRecipientSignature} accepts all relayed calls that have been signed by a trusted third party (e.g. a private key in a backend)

You can also take a look at the two contract interfaces that make up the GSN protocol: {IRelayRecipient} and {IRelayHub}, but you won't need to use those directly.

== Recipient

{{GSNRecipient}}

== Strategies

{{GSNRecipientSignature}}
{{GSNRecipientERC20Fee}}

== Protocol

{{IRelayRecipient}}
{{IRelayHub}}