GSN Provider is deprecated. We are no longer developing new features nor addressing issues. Read here for more info.

GSN Provider

A web3.js compatible provider for sending transactions via the Gas Station Network (GSN). This package wraps a modified version of the RelayClient from tabookey-gasless with a custom web3 Provider.



$ npm install @openzeppelin/gsn-provider


Create a GSNProvider and use it as the provider for your web3 instance:

const Web3 = require("web3");
const { GSNProvider } = require("@openzeppelin/gsn-provider");

const web3 = new Web3(new GSNProvider("http://localhost:8545"));

Transactions sent to contracts will then be automatically routed through the GSN:

const myContract = new web3.eth.Contract(abi, address);

// Sends the transaction via the GSN
await myContract.methods.myFunction().send({ from });

// Disable GSN for a specific transaction
await myContract.methods.myFunction().send({ from, useGSN: false });

Learn More