Skip to content
This repository has been archived by the owner on Jun 12, 2022. It is now read-only.

3,000,000 HYDRO to Create a Utility Smart Contract that will Power Subscription Payments in Future Hydro dApps #248

Open
mitdralla opened this issue Jan 16, 2019 · 4 comments
Labels
🔥 In Development A task that is currently assigned and being worked on. Solidity

Comments

@mitdralla
Copy link
Contributor

mitdralla commented Jan 16, 2019

Project Details

3,000,000 HYDRO to create an Ethereum smart contract on top of Hydro Snowflake that allows a business to bill a consumer or other business entity via a recurring HYDRO subscription amount.
There will be Layer-3 dApps and Layer-4 APIs that hook into this utility smart contract function.

Background:

  • A very interesting feature of Snowflake is that Snowflake tokens can maintain balances with allowances that a user can set for different applications.
  • This means that once a user has tied their identity to a resolver, it creates a convenient structure for Hydro transfer between that user and the resolver; in particular, it streamlines billing systems.

Features:

  • Billing plans - allows users to subscribe to a billing plan. E.g. 1,000 HYDRO per month, 2,000 HYDRO per month, or 3,000 HYDRO per month, and the user can select one
    Cancellation and Modifying - cancelling or modifying, upgrading, downgrading subscription plans in the smart contract.
  • Prorated Billing - calculating the amount of HYDRO within a current billing cycle. E.g. if the user gets billed on the first of every month, this function would calculate the amount of HYDRO being used for X days / Y days of the month.
  • Tiered Pricing - This is best for non-linear pricing. E.g. up to 20 users is 1,000 HYDRO, up to 100 users is 2,000 HYDRO, and up to 1,000 users is 3,000 HYDRO
  • Quantities - Subscribing multiple people within a group to a plan. For example, say you run a hosting company through which customers host sites at a cost of $9.99 per site per month. Most customers host a single site, while some host many. You could create plans for one site ($9.99), two sites ($19.98), and so forth, but a better approach is to subscribe customers to a quantity of the base $9.99 plan.
  • Discounts - Apply to every invoice, just one invoice, or for a certain length of time, reduce invoices by a percentage or a flat amount. Apply to every subscription a customer has or only specific ones
  • Gift Cards - Subscription is adjusted by a gift card amount (also stored in the Hydro Snowflake). e.g. the subscription is normally 1,000 HYDRO but a 500 HYDRO gift card has been applied.
  • Trial Periods - Delay payments on active subscriptions using trial periods. e.g. payment will remain in a users’ Snowflake for 20 days, if they don’t cancel the subscription it gets released
  • Taxes - If you need to collect any type of tax on a subscription, such as VAT or sales tax, you can add a percentage in HYDRO that can be converted back into the base fiat currency.
  • Billing Cycles - create recurring billing cycles that end on any calendar year either monthly, quarterly, or yearly. e.g. 1,000 HYDRO will be withdrawn from the Snowflake balance on the 1st of every month until cancelled.
  • Multiple Subscriptions - Create multiple subscriptions for a single customer by subscribing them to more than one plan or different variations of the same plan. e.g. a single Snowflake address can be subscribed to a 1,000 HYDRO per month plan and a 5,000 HYDRO per month plan
  • Usage Transformation - here you can charge X HYDRO for every Y users. E.g. 1,000 HYDRO for every 10 users. In this example, users 1-10 all get charged only 1,000 HYDRO to the business.
  • Authenticate: To finalize any subscription payment, the Hydro Raindrop 2FA must be performed. Please see the Raindrop smart contract for details on how to put this into the workflow.

Other Notes:

  • Whenever the user performs the action, the dApp should withdraw Hydro corresponding to the fee from their Snowflake.
  • Once the Snowflake allowance is reached, the action should be restricted.
  • User will need to set the dApp as a resolver for their Snowflake
  • Setting allowance will require the user to transact with their Snowflake
  • User will need to load Hydro into their Snowflake - this can be done outside the dApp.

For comparative functionality, please see Stripe and Recurly and developer documentation.

Other Details

What is the development you want done?

Solidity code, in the form of an open-source smart contract, deployed to the Hydro Blockchain GitHub repository for public use.

What are the deliverables?

Solidity code, in the form of an open-source smart contract, deployed to the Hydro Blockchain GitHub repository for public use.

Timeframe?

We propose one month as the timeframe for completion of this task.

Submission process?

First, comment on this issue to declare your willingness to complete the task. Next, fill out the Subscription Smart Contract Claim Form. We will evaluate candidates factoring in their qualifications, Github activity, and the order in which they expressed interest.

Oversight Process

One of the DAs will be assigned to oversee the completion of this task once it’s awarded.

Reward Structure

Once you have been selected, you will have one month to complete the task. The time frame begins as soon as we award the task to the candidate by communication within this thread.
During this time we will be able to provide some support around questions about the workflow on Discord.

During this time the candidate needs to update the codebase regularly in a subrepo of our official Github. This will be setup and conveyed to the candidate by the assigned DA.

If the task is not completed within the timeframe we reserve the right to offer an extension, or transfer the task to another candidate. If no extension is granted, then we reserve the right to continue on the codebase committed. The fractional disbursement for it, if any, would be given at our discretion.
Once the task is completed we will test the plug-in for efficiency and whether or not it correctly incorporates the Hydro workflow. If we approve the plug-in, we will then send you 3,000,000 Hydro.

@mitdralla mitdralla added Open Request The bounty is available to be claimed Solidity 🔥 labels Jan 16, 2019
@mitdralla mitdralla changed the title 3,000,000 HYDRO to create a utility Smart Contract that will power subscription payments in future Hydro dApps 3,000,000 HYDRO to Create a Utility Smart Contract that will Power Subscription Payments in Future Hydro dApps Feb 1, 2019
@Luiserebii
Copy link

I'm interested!

@Red-Maximus
Copy link

I'm definitely interested!

I have submit my application.

@melnaquib
Copy link

Hello, this does look fun.
I'm submitting my request now

@mitdralla
Copy link
Contributor Author

This task will be assigned to @melnaquib. We will reach out with next steps.

@mitdralla mitdralla added In Development A task that is currently assigned and being worked on. and removed Open Request The bounty is available to be claimed labels Apr 23, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
🔥 In Development A task that is currently assigned and being worked on. Solidity
Projects
None yet
Development

No branches or pull requests

4 participants