Driving User Adoption With Meta Transactions

Nick Poulden
Jul 26, 2019 · 5 min read
Image for post
Image for post

Today, most decentralized applications (DApps) are more difficult to use than traditional web and mobile applications. Interacting with DApps can be hard work for users. For example, in order to transact on the Ethereum blockchain, you first need a wallet containing some Ether.

Creating a wallet for managing and storing your Ether is becoming easier for users as mobile apps like Coinbase Wallet and browser extensions like MetaMask continue to improve and gain traction. However, converting fiat currency such as USD into Ether is still a major hurdle for first-time users. Often, the process requires you to hand over your passport and bank account details. Worst, many services require you to wait up to a week before you finally receive some usable Ether in your wallet.

Although having Ether in your wallet makes sense if you want to buy a product or service, it should not be a requirement for many other user interactions. Should it be a requirement for sellers to create listings?Should it be a requirement for new users to create their profiles? Unfortunately, for most DApps, interacting with the Ethereum blockchain DOES require users to spend small amounts of Ether for even very basic actions. Typical interactions can cost anywhere from a few cents to multiple dollars worth depending on the transaction’s complexity and storage requirements. This is known as the Ethereum ‘gas fee’. Until recently, Origin’s marketplace was similarly required users to pay gas for every piece of data that was posted to the blockchain. Creating a listing or user profile on Origin required having some Ether in your wallet in order to pay for the transaction.

For new users, especially sellers, this can be a pain or even a complete showstopper. Users are not accustomed to paying to give valuable data (e.g. listing data) to applications.

A few months ago, we asked ourselves the question of how we would enable new users with a wallet but no Ether to quickly and seamlessly transact on our platform. The solution we came up with is…. 🥁🥁🥁…. Meta Transactions!

We are proud to have implemented this solution to subsidize gas fees for our users, effectively removing multiple points of user friction that would otherwise hinder adoption.

What are Meta Transactions?

To understand Meta Transactions, let’s look at what happens when we create a listing on the Origin Marketplace contract.

First, we send our listing data and images to IPFS and get back a unique hash which allows us to retrieve that data easily. This hash is then sent to the Origin Marketplace contract, which records it on the blockchain along with the account ID of the sender, resulting in a new listing. Buyers are now able to make offers on that listing, and only the seller has the power to act on those offers.

Control of the listing is important here. Only the seller should be able to update the listing, delete it, or act on offers from buyers. This control is given to the account of the user who created the listing. At the contract level, this is whoever sent the transaction. However, since sending a transaction requires gas, how can we ensure the seller maintains control without having to send a transaction?

The answer is by having an intermediary contract, called a proxy, which can execute transactions on behalf of its owner. Either the owner can call the proxy directly, or a third party can call it with transaction data that has been signed by the owner. In the latter case, the proxy will only execute the transaction if the signature comes from the proxy’s owner. Due to the magic of cryptography, it’s possible to recover the account ID that signed some given data within the contract.

For example, let’s say I have an account “0xABC” and I sign some data “createListing(0x123)”, resulting in a signature of “0x456DEF”. Now I can retrieve that data from the other direction; given the original data and signature, I can recover the original signing account “0xABC”. The proxy does this calculation in the contract and, if the signing account matches the owner, it will execute the transaction, regardless of who the sender is.

Since signing data is free, we now have a way for an account with no Ether to maintain control of a listing, as long as there’s a third party (relayer) willing to pay the gas to call the proxy contract on the user’s behalf.

Image for post
Image for post

To recap, let's walk through the whole process:

  1. A user creates a new wallet, which initially contains no Ether.

Who pays for the gas?

In order for this all to work, someone needs to run a relayer server and pay for gas. For now, Origin has set up such a server and will be paying gas for transactions directed at our Marketplace contract, though we have taken steps to limit abuse. Longer-term, we hope to incentivize others to setup relayer servers through the use of our token, OGN.

What’s next?

The entire Origin team is excited about how Meta Transactions are already making it easier for early users of our platform to transact with each other. However, our work is far from done. For one, we are working on many upgrades to our platform and DApp to decrease friction for new buyers as well. Secondly, and perhaps more importantly, we are looking forward to continued technical advancements that will make it easier for our partner DApps to similarly improve their user experiences and drive user adoption and retention.

Learn more about Origin:

Origin Protocol

Origin is building the sharing economy of tomorrow.

Nick Poulden

Written by

Senior Engineer at Origin Protocol

Origin Protocol

Origin is building the sharing economy of tomorrow. Buyers and sellers will be able to transact without rent-seeking middlemen. We believe in lowering transaction fees, promoting free and transparent commerce, and giving early participants in the community a stake in the network.

Nick Poulden

Written by

Senior Engineer at Origin Protocol

Origin Protocol

Origin is building the sharing economy of tomorrow. Buyers and sellers will be able to transact without rent-seeking middlemen. We believe in lowering transaction fees, promoting free and transparent commerce, and giving early participants in the community a stake in the network.

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store