Marmo.io: introducing meta-transactions on Ethereum

RCN
Marmo.io
Published in
3 min readFeb 28, 2019
Say hello to Marmo!

What is Marmo?

Marmo is an open-source SDK that simplifies interactions with the Ethereum network by abstracting some of its core characteristics while maintaining trustlessness and security.

Why we need Marmo?

As of today, Ethereum wallets require ETH funds to pay for Gas every time they send a transaction through the network.

Moreover, as the Gas Price required to successfully complete a transaction varies constantly according to market laws, it is not possible to predefine it. This causes some transactions to be sent with insufficient Gas and not be able to access the Network.

Finally, transactions demand the definition of a nonce which (while is meant to be a feature) can sometimes increase the complexity of the process without adding real value.

How does Marmo solve this?

Marmo includes the following features that simplify interactions with the Ethereum network.

ETH-less Transactions

The SDK allows Ethereum addresses to execute transactions without requiring funds in Ether (ETH) or any token. This is possible thanks to the implementation of a Relayer, a service that broadcasts Intents to the Ethereum network and pays the required fees in the process.

Automatic Gas Calculations

The Marmo Relayer is also responsible for handling Gas Price and Gas Limits calculations, optimizing their values to respond to changes in Gas markets and making their execution more reliable and efficient.

Nonce-flexible Transactions

Creating multiple transactions using the same address on the Ethereum network requires their signer to specify the order in which they must be executed, using Nonces. This is not always relevant for the signer and may cause the process to be unnecessarily complex.

Marmo replaces the Ethereum nonce system by a dependencies scheme, in which any given Intent may be dependent on one or more other Intents, or have no dependencies at all. This makes it possible to execute them in any order or without any in particular.

Expirable Transactions

Marmo enables the creation of transactions with expirations dates, which will always get executed within a predefined time frame. This allows to sign intents while having the certainty that they will not be relayed once that time frame expires.

Why is Marmo a great solution?

Simplifying interactions with the Ethereum network requires a tool that is convenient as it is powerful. With that in mind, Marmo was designed to provide the following characteristics.

Full Compatibility

Since Marmo Wallets can perform the same interactions as standard Ethereum wallets, the SDK works with almost every existing type of Ethereum smart contract without requiring any ad-hoc adjustements. This enables developers to carry out a fast and seamless integration with any existing Ethereum project.

Modularity and Scalability

Marmo open-source Contracts and Wallets are designed to be alterable and upgradeable in an opt-in way, giving experienced developers the ability to create custom functionalities and modules for the SDK.

Multiple Libraries

The Marmo ecosystem includes libraries in Python, Java, and Javascript. While these libraries are not identical, they provide the same set of Contracts, Wallets and Relayers.

Want to know more?

Join our social media channels and become part of Marmo’s Community!

Marmo was made with ♥ by RCN.

--

--

RCN
Marmo.io

RCN (rcn.finance) is an open global credit network that connects lenders, borrowers and originators on the blockchain to create borderless loan markets.