MetaCredits is a product designed to allow developers and end users with a 0 balance of any crypto currency to participate in the growing ethereum ecosystem.
- MetaCredits Smart Contracts - Core Solidity smart contracts of the MetaCred product
- MiniDAO Example Smart Contracts - an example dapp to demostrate how a Dapp developer team would interact with the system
- Relayer Service - AWS lambda microservice for representing a relay pool in our use case
- MetaTransaction Approver Service - AWS lambda microservice for Dapp Developers to sign their approval of a metatransacaction for their dapp
- Example Dapp: MiniDAO - Simplistic Example Dapp featuring seemless metacredit metatransactions
We want to create meaningful "on-ramps" into the ethereum ecosystem for developers with limited or no access to cryptocurrency. Our system is designed to allow these developers and their potential end users to be able to interact with the ethereum blockchain in a real and meaningful way (layer 1 transactions) without ever needing to own a single wei. The gas for their transactions will be payed by beneficiaries who are interested in growing the ecosystem and being charitable while feeling secure in (coded) guarentees as to how their funds would be spent by the benefactor.
- End User (with 0 eth balance) performs an action via the developer's front end Dapp
- Dapp front end uses the abi of the deployed contract to create a metatransaction object
- User signs a message through the Dapp's web3 provider
- The signed message (metatransaction) is sent to the developer's approver microservice where the transaction is parsed and the parameters are used to determine if the dapp developer would like to use his metacredit funding to pay for the transaction
- Dapp developer sends his signature of approval as well as the signed metatransaction to a relay service
- The relayer pays the gas fee to execute the metatransaction via the metacredits contract, this ensures that he is payed back in full by the contract before the transaction ends.
- After validating that the signature submitted alongside the metatransaction matches the dapp developer, the contract forwards the metatransaction to the actual processor contract to execute the metatransaction normally
https://docs.google.com/presentation/d/1j3yCWUTdNgZTGvF94Jbjndc7oqDN5890fnBZU_Ol2zc/edit?usp=sharing
