Inspiration

Various projects aim to improve user experience by enabling recurring fee subscriptions, delegated conditional execution or sponsored gas. These second layer execution markets all share the need for a mechanism that submit signed user transactions to the network. We hope to implement a modular relayer that fulfills these requirements.

What it does

In the Minimal Viable Product we focused on creating a decentralized execution market for Gnosis Safe, which acts as an identity proxy for the user. In short, we have:

  • Created Hermes The Executor, which is a daemon, listening to a whisper channel, and after doing some verifications, submits the transaction to the network, and gets reimbursed and rewarded from the user's Safe. In order to prevent multiple executors from submitting the transaction and, all but one failing, we propose to add a Proof of Work mechanism. However because that required changes to the Gnosis Safe contracts, for now we simply do a Proof of Random Sleep!
  • Created a demo, with a SimpleStorage which the user wants to update via meta transactions. The demo embeds HermesJS for creating signed executable transactions and publishing them to the network via whisper.
  • Deployed our fork of Gnosis Safe to Ropsten, and the SimpleStorage, which can be interacted with via our demo.

How we built it

Come have a look

Challenges we ran into

  • Gnosis signature validation support for rpcsigned signatures
  • Conflicting dependencies on different web3 versions

Accomplishments that we're proud of

  • Whisper protocol integration
  • Gnosis safe fixes and integration
  • Ropsten network integration and working e2e mvp demo

What we learned

  • layer 2(dapps & daos) mining can work and should be worked on because:
    • ux improvement with less centralized services.
    • event driven dao without layer 1 change

What's next for Hermes Network

  • relay network: PoW or a bidding network with handshakes
  • sponsored safe scenario
  • whitelisting of supported safe/identity contracts in executor ( bytecodes or registry whitelisting)
  • other type of relay tx?

Built With

Share this project:
×

Updates