RIF Enveloping allows users to transact in a blockchain without the need to pay for the gas costs using native cryptocurrency. They can use any token as a method of payment, or even submit transactions for free, if they use a Relay Provider that subsidizes the transaction cost.
A DApp that integrates RIF Enveloping is needed. The design is open, but it should at least allow the following:
Generate new Smart Wallet accounts (this is off-chain)
The user should be able to configure token addresses, so any new token balance received to these accounts should be properly displayed
Deploy the Smart Wallet account(s). This is an on-chain procedure and can also be paid using tokens. It is a prerequisite if the user wants to call other contracts using the Smart Wallet.
Display the user’s Smart Wallet accounts
Create a new transaction request, and the Signing process, which supports EIP712, must display the structure being signed correctly.
Submit new transaction requests and display the status/result of such transactions. A plus would be having a history view with past transactions.
SmartWallets can be (optionally) directly called (using directExecute() method) when the user’s EOA (the account that owns the SmartWallets) has acquired native crypto. This alternative method of submitting transactions is not relaying them through a Relay Server. The Dapp should detect whether the user’s EOA has balance, and, in that scenario, ask the user if she would like to submit the transaction using a token as a method of payment or native crypto currency. If the latter is selected, then the transaction is directly called using the directExecute() method of the SmartWallet
Transaction submission: There is no restriction on the destination contracts that can be called using RIF Enveloping, so it is expected that the UI does not limit what the user can call (she should be able to create requests to call any destination contract’s method)
The sample dapp should also show, when creating a transaction request, the estimated amount of gas that users would have to pay if we did not have enveloping. The estimated gas to be consumed by the call through Enveloping should be also displayed, as well as the price in tokens to be charged (the gas-to-token ratio can be hardcoded). Any additional information that you think would create a better experience may also be added.
You may use any framework when designing the DApp, as long as the Submission Requirements are met.
Optional Features
A QR Generator feature for when the user wants to receive a payment
Implement the features as described in the challenge description
Add tests that provide coverage for the new features added
No license changes must be made (MIT)
Note that if you assess that modifications to the RIF Enveloping code or contracts are needed (for example, a bug fix or adding a new feature), please submit it as a GitHub issue or discuss it with us beforehand.
Judging Criteria
Only one submission allowed per participant. Where a participant wishes to resubmit, update the original submission instead of submitting a separate entry.
If the submission involves a graphical user interface of any variety, please include a video recording of it in action.
If the submission involves a command line interface of any variety, please include a text file of it in action (including outputs).
Test coverage for any implementation is viewed favourably: More test coverage is better.
In cases where the bounty requires a Github PR on an existing repo, and that repo has continuous integration (CI) set up, the PR should not fail on the CI steps.
Documentation is viewed favourably: Include specific instructions on how to set up and use your submission. Optionally, include any explanations of architectural/ design choices that went into the submission.
The easier it is for the reviewer to run and understand the submission, the better, so be sure to consider this in your submissions!
Winner Announcement Date
This bounty is part of a hackathon, and there are three significant dates:
Start date: 15/04/2021
End date: 14/05/2021
Results date: 15/06/2021
Submissions are welcome between the start date and the end date.
Reviews will be conducted between the end date and the results date.
All submissions must be submitted prior to the end date in order to be eligible for a bounty award.
Submissions submitted or resubmitted after the end date may not be awarded any bounty.
All submissions must be reviewed and accepted (successfully pass the review) prior to the results date in order to be eligible for a bounty award.
The bounty will be awarded on the Gitcoin platform to the best submission among all eligible submissions for this bounty.
More information
For questions related to this bounty, and other bounties in this hackathon, please join the
RSK Slack,
and check out the #gitcoin2021 channel.
To learn more about RSK and RIF technologies, check out our
Developer Portal.
RIF Enveloping Sample DApp
Prize Bounty
0.02570 RBTC
(approximately 1600 USD at time of posting)
Challenge Description
RIF Enveloping allows users to transact in a blockchain without the need to pay for the gas costs using native cryptocurrency. They can use any token as a method of payment, or even submit transactions for free, if they use a Relay Provider that subsidizes the transaction cost.
A DApp that integrates RIF Enveloping is needed. The design is open, but it should at least allow the following:
You may use any framework when designing the DApp, as long as the Submission Requirements are met.
Optional Features
All the code and documentation can be found in the master branch of the RIF Enveloping repo. You may find general documentation about RIF Enveloping, as well as a getting started guide on our Developer Portal.
Submission Requirements
Judging Criteria
Winner Announcement Date
More information
#gitcoin2021
channel.