Relaying transactions on behalf of our users

Going Live With Meta-Transactions

Mark Beylin
Bounties Network
Published in
3 min readNov 1, 2019

--

We’re excited to announce that we’ve deployed meta-transactions for users who don’t have the ETH necessary to pay for gas. Initially, this will only be available for users while they are fulfilling bounties, which we see as an extremely important on-boarding moment for brand new users. It will also be available only on new bounties, and is not backwards compatible with existing bounties.

Nonetheless, this removes one of the biggest hurdles we’ve seen with user on-boarding to date, and makes it even easier for new members of the Ethereum community to earn their first crypto, rather than having to buy it.

What Are Meta-Transactions?

When a user creates a new transaction in their wallet, they sign a message which is sent directly to the Ethereum network. When a user creates a meta-transaction, a user signs a similar message (but one which is not a valid Ethereum transaction), and sends it to a 3rd party, who then submits the message on their behalf, within a transaction of their own. This is possible because the message that the user signs contains all of the same information that they would otherwise pass while creating the transaction — the address contract they’re interacted with, the function being called, and the parameters that the user is supplying for the function.

This means that while the signed message doesn’t conform to the standard which is required for signed messages to be valid Ethereum transactions, we can still write smart contracts which decode these messages (verifying their veracity on-chain), and then call those functions on behalf of other users. In this way, anyone can sponsor the gas that’s needed to initiate the transaction on the network, rather than having it come out of that user’s account.

Why Do Meta Transactions Matter?

For our purposes, we expect that this will help us continue our efforts to broaden the access our platform provides, making it even easier for people within the many communities that we serve to use our product without entirely understanding what’s going on under the hood. While it’s still early, we see meta-transactions as a critical element of an Ethereum user experience that closely mirrors the one which users might expect from existing Web2.0 platforms. This will create an important additional benefit for bounty issuers whose main goals are to access new markets, with individuals who might not have the means, education, or regulatory environment necessary to purchase ETH.

While many teams are doing great work to push meta-transactions forward in their own ways (people building transaction relayer networks, MetaCartel, and teams like Gnosis Safe using them as part of novel contract wallets), we decided that it would still be worthwhile to create a customized relayer contract specifically for StandardBounties, which made it even easier for us to deploy our own relayer, and begin enabling the feature immediately. Nonetheless, meta-transactions submitted via proxy contracts (ie by contract wallets) are still possible simply by having users interact with the original contract, and ignoring the surplus relayer that we’ve deployed.

Finally, this will help us continue exploring how bounties can be used for rapid organization within any community, with an intentional focus on those which are unrelated to Ethereum or cryptocurrency.

If you’re a community organizer who might benefit from using a tokenized marketplace to get members to collaborate, we’d love to talk to you.

Have some thoughts on meta transactions? Drop us a line. In the mean time, subscribe to our updates, follow us on Twitter and join our community.

--

--