Submission: https://github.com/status-im/hackathon/issues/20
{
"whisper-identity": "20-coinpanion",
"name": "#20 CoinPanion",
"dapp-url": "http://coinpanion.surge.sh/"
}
CoinPanion is the ultimate blockchain subscription solution. The idea is that any user can go to CoinPanion, then they can choose to subscribe to any other CoinPanion user's Ethereum Address with a payment of X ETH per Y days/weeks/months.
CoinPanion users will have rich profiles which will tell potential coiners about themselves and what they create, work on, or are interested in. Coiners can "coin" friends, family members, or content creators whose work they want to support. With category-based discovery features, search, and a user dashboard CoinPanion is the best and easiest to use blockchain subscription service.
This project was started as a submission to the Status.IM Hackathon. https://github.com/status-im/hackathon/issues/20
Simple put: Any CoinPanion
can subscribe to any other CoinPanion
.
Rahul is a program. He creates Open Source DApps for free for a better blockchain tomorrow. Rahul however has a family to feed and a home to pay for. He needs a monthly income to be able to continue writing great DApps. He goes to CoinPanion, for the first time, and is presented with his dashboard. His Ethereum Address is already filled in as Rahul is using Status to browse the DApp. He decides to personalize his profile by uploading a profile picture and setting his name, email and profile description. He writes a meaningful description and mentions some of his current projects. This will later be used when his supporters go to visit his profile.
Alon loves DApps and the whole crypto community. He recently started using one of the Open Source DApps that Rahul made. He decides that he wants to support Rahul with 1 ETH a month.
Alon visits CoinVault . His CoinVault is currently empty. He clicks on Add to CoinVault and sends 2.1 ETH to the CoinVault, a smart contract which handles subscriptions for Alon. The reason for the extra .1 ETH is for Gas fees. This funding will allow Alon to support Rahul for two months.
The he clicks on the button Coin Someone. A modal pops up where Alon enters the ETH address of Rahul. He enters 1 ETH per month and clicks Send. 1 ETH is instantly sent from the CoinVault to Rahul. The CoinVault also schedules to send another 1 ETH in a month. Every time the CoinVault sends a subscription payment, it also schedules the next one.
When the CoinVault starts to get low on currency, will be empty before next payment, it sends an email notification to Alon.
When a CoinVault is empty it stops sending out coins until it is replenished.
Rahul gets an email that he has a new CoinPanion! He visits his CoinPanion Dashboard and sees his new subscriber Alon.
For more Use Cases look at USECASES.md
truffle compile
truffle migrate
Yarn start
or npm run start
http://localhost:3000
to checkout the DappCoin User
Initialize Vault
vault..deployed(userAddress, userAddress, 0, 0, userAddress, 0)
vaultInstance.authorizePayment
vaultInstance.authorizePayment( 'alon', coinSomeoneAddress, Number(coinSomeoneValue), Number(subscriptionDelay), { from: userAddress,gas: 500000 })
paymentId
. This needs to be saved into the DB of Tim along with the vaultAddress of Alon, payoutTimestamp (Timestamp when Tim can get Payment)xyz
. Receiving Ether is done with: alonVaultInstance.collectAuthorizedPayment(xyz, {from: timAddress})
Join us on the Status.IM Slack channel to chat with us!