Simple smart contract / DApp ideas that you would like to see

I would like to collect some simple smart contract ideas (by simple I mean not Uber or Twitter :rofl:) in this thread that you would like to see and maybe someone will build it or will share an example like @bobert did with the Naive Lottery Contract.

It would be nice if you could provide a small use case as well, but this is not needed.

Following are all the suggestions collected in this thread:


The Tip-Contract / ADAtainment
Sending some amount to an address and it will be split (equally or by some sort of distribution key) to other addresses that are locked into the contract.

If the tip is very small it should keep the balance in the contract and distribute it later.

Use Case
Let’s say something like the Cardano Effect has an address and if you send a tip to it, the contract automatically splits the tip to @philpa , @rickymac and Sebastien.


The Testament / ADAtainment
You could lock an amount into a contract and need to “ping” from time to time (for example every 3 months) to keep the amount locked. This works basically like a dead-man’s button. Once you stop pinging for a defined period the amount will be send to an address.

Use Case
If something bad happens to you and you are not able to ping for example one year then your funds will be send to your wifes / childs / friends address.


The Subscription / HisMajesty
You lock up P * A in a contract. The counterparty is able to withdraw A amount, P times at predefined intervals. You can cancel and get back remainder (less a penalty - optional)

Use Case
Repeat payments for service or content. Nice because vendor has known financial commitment providing service is good. Also with penalty, vendor can offer graduating pricing based on duration of commitment.

Example
Subscribe for access to game for 52 weeks. 10 ADA per week. Deposit 520 ADA. Vendor takes 10 ADA per week as they deliver the service. I cancel after 22 weeks, get 250 back, vendor gets 50.


Coupons / Rickymac
A coupon is a smart contract already - if you purchase X product by Y date, we give you $Z discount. Coupons are still on paper, where as most payments people do in the USA at retail outlets are electronic credit or debit.

The retail outlet issuing coupons can issue a limited number of coupon tokens on the blockchain. The retail outlet can better track how many coupons have been used and how many are still out there.

Often when my wife and I are at the store (Bed Bath and Beyond, Groceries) she says “Oh I left my coupons at home” which would not be a problem on the cell phone.
Shoppers can trade coupons from cell phone to cell phone.


The Allowance Contract. / Eystein_Hansen
Feed a contract with an amount that can be distributed X each time unit Y to wallets Z(n) (for example weekly).

The More Advance Allowance Contract
Allow wallet owner to also issue tasks on sidechain with IELE and when wallet owner is satisfied with task completion unlocks distribution of amount X by time unit Y to wallets Z(n).

Why on blockchain instead of just good old money? Because it can be automated. Because you can set it off on your mobile and check in real time who in family has done what task. Because…because if it makes your kids do the chores its awesome.


The Simple Ticket Store / ADAtainment
Pay a certain amount to get a ticket. Amount of tickets are limited.

The Advanced Ticket Store
Like the simple ticket store, but this time there are ticket numbers (seats). Of course every seat can be sold once. It would be nice to have control over the amount of seats and the number when buying tickets.

Use Case
Ticket Store :face_with_raised_eyebrow:


Bonus Pizza / ADAtainment
Every order increments a counter, when the counter hits 10 you will get a “Free Pizza”-Coupon.

Sounds pretty easy but wait - you can not simply just track the same addresses in the contract.

When ordering something the payment system will create a new payment address for this customer and monitors this address for the payment. Otherwise it’s not possible to assign payments to customers. (There are no messages in the transactions)

This means every time you order a pizza the payment address will be different. Therefore you need to assign some sort of other key to the customer in the contract, to implement this.

Use Case
Customer Loyalty


Peer to peer betting / Daely14
Ability to send bet someone, have it accepted, wallet engages both parties to fund, event concludes, smart contract matches bet w sportsfeed for verification of winning party, smart contract settles account.

Use case
Users can bet each other on any event, including and especially non traditional sports (battlebots) and esports (madden tourney), which is not currently being addressed by traditional sportsbooks and vendors, in the current market in the United States.


Simple Resource Allocation Voting Contract: / JBlock

  1. funds are locked in the SC,
  2. users offer various options,
  3. users vote on the various options,
  4. votes are tallied, and
  5. funds go to the address that offered the winning option.

Decentralised charity / Matthis.Last
Where 85% of funds go directly to the recipients, as voted by the community from a group of vetted recipient local organisation

10% go to operations and 5% go to promoting Cardano / Cryptocurrency

Donators pay in cash as they are used to, blockchain works behind the scenes to ensure that funds are not mishandled or paid to executives


Ambassadors List. / Andrew_Voron
Dapp supports current list of Cardano ambassadors. We can store ambassador’s activity(history, list of it’s docfiles, presentation links…), its status(active/inactive/candidate…). Ambassador can be included/excluded via democratic voting(by other ambassadors, or community members), or by some automation(number of published docs/per some period, which is refleced in the list.)

Use cases

  1. Motivate newcomers towards ambassador’s membership, where ambassadors are high-status bringers of knowledge.
  2. Encourage the ambassasor to be more productive and responsible.
  3. Demo, showing that Cardano(IOHK) uses it’s own technology for it’s own needs.

Riddle Guesser / xxrsee
I have an idea. It would be a riddle guesser. One person puts up a riddle with a small bounty and whoever guesses it gets the bounty.

Another one would be to attach a small bounty on having your kids learn the multiplication tables. Like a little game where you answer 6x2 8x7 etc. Once you pass them all a few times you get some monies.


Time Gamble / xxrsee

  1. Assign a countdown timer with a random duration (can range from hours to days) to a smart contract.
  2. Load the smart contract wallet with a small amount of funds, about 10 ADA.
  3. Participants send only 1 ADA to the smart contract to join but can do so multiple times
  4. The last person to send a transaction to the smart contract before the timer goes to 0 wins and gets all ADA from the wallet.

Credit Defaut Swap (CDS) / hugodeanda
a financial contract whereby a buyer of corporate or sovereign debt in the form of bonds attempts to eliminate possible loss arising from default by the issuer of the bonds. This is achieved by the issuer of the bonds insuring the buyer’s potential losses as part of the agreement.
I picture it as an ICO where, at least part of it, is collateralized or backed by the issuers assets or third parties.

Use Case
Even if capital in the the form of money would be available worldwide, the risk of investing on something someone is doing far away from you will make Interest Rates so high that such money availability can turn to be very limited. (I am picturing here a “currency crisis”, a shortage of money, a free-for-all scenario). So I would want to see this CDS as a way of really unlocking the potential of finance for everyone and his/her/their investment project. Currently I think we can make this through banks and stockmarkets, but in the era of cryptocurrencies where legislation lags behind it, I feel we are missing something in order to be able to trust on an ICO only with a compelling project and no further backing.
As a side note, I also feel that it will be good to be able to put “Staking ADA” as collateral, so if a project goes bust, suppliers and employees can claim what’s owe to them directly from the node.

27 Likes

I imagine something where you can store crypto on cardano blockchain .For example you could create an bitcoin wallet on this dap, the secret key is stored on cardano blockchain and then you can spend btc (for example)with your cardano dap.

I also like the idea of infiniverse eos dap.Something like this but dfferent in the way that if you buy something it belongs to the buyer and not only for one year.There could be a small maintainance fee.

The Testament
You could lock an amount into a contract and need to “ping” from time to time (for example every 3 months) to keep the amount locked. This works basically like a dead-man’s button. Once you stop pinging for a defined period the amount will be send to an address.

Use Case
If something bad happens to you and you are not able to ping for example one year then your funds will be send to your wifes / childs / friends address.

15 Likes

The Subscription
You lock up P * A in a contract. The counterparty is able to withdraw A amount, P times at predefined intervals. You can cancel and get back remainder (less a penalty - optional)

Use Case
Repeat payments for service or content. Nice because vendor has known financial commitment providing service is good. Also with penalty, vendor can offer graduating pricing based on duration of commitment.

Example
Subscribe for access to game for 52 weeks. 10 ADA per week. Deposit 520 ADA. Vendor takes 10 ADA per week as they deliver the service. I cancel after 22 weeks, get 250 back, vendor gets 50.

5 Likes

This is a great idea for a thread. When I get more time to write some more examples I’ll check back here and see if there’s any good ideas to show off a new concept or two and kill two birds with one stone.

5 Likes

Hi @adatainment
Something I think has a great use case on a block chain - because it solves a problem - is coupons. I have been laughed at before for this :grin:

Coupons are a good use case for a couple reasons:

  1. A coupon is a smart contract already - if you purchase X product by Y date, we give you $Z discount.
  2. Coupons are still on paper, where as most payments people do in the USA at retail outlets are electronic credit or debit.
  3. The retail outlet issuing coupons can issue a limited number of coupon tokens on the blockchain.
  4. The retail outlet can better track how many coupons have been used and how many are still out there.
  5. Often when my wife and I are at the store (Bed Bath and Beyond, Groceries) she says “Oh I left my coupons at home” which would not be a problem on the cell phone.
  6. Shoppers can trade coupons from cell phone to cell phone. Yay!

Any other inputs on the coupons thingy?

~Rick

12 Likes

I like the coupon idea. I think it is approaching slightly more complex contract as you could potentially need to verify a few things like (1) previous coupon usage (2) valid combination of coupons (3) time period of coupon validity and perhaps introduce new like (4) Limit by X amount of coupons usage.

2 Likes

Example use case Amazon - real guarantee issue

I recently bought a product on Amazon. After more than a month of use, I no longer needed it and decided to put it on sale as a second-hand product. I contacted Amazon customer service to get more information about the guarantee of the product. Legally it still has 22 months guarantee. My question to the Amazon services was the following:
Me: What happens to the guarantee if the product changes ownership?
Amazon: “The guarantee is canceled, it is no longer valid”,

So, for the fact that a product changes ownership, it does not matter the status of the guarantee, automatically this is no longer valid.

This operation of change of owner could be transcribed through smart contracts. Amazon could check and verify the authentic owner and manage the guarantee.

In addition, thieves will have a hard time explaining that the purchase they made was legitimate when the determined entity verifies that this product has only had and has one owner.

3 Likes

Good inputs, thanks. My first 6 points already address your points (1) (3) and (4) but I don’t know what you mean by (2) valid combination of coupons. I thought I addressed that when purchasing X product.

Anyway, I thought of another point… my original points 1-6 now +7

  1. It will bring more women into the blockchain system without having to understand Ouroboros, NiPoPos, side chains, or consensus algorithms. But “Buy one get one free” heck yeah! :wink:
2 Likes

Again love the idea Coupons smart contract as yeah it does definitively bring other interests into blockchain :slightly_smiling_face:

No because none of those points track personal usage of a coupon so you do not know previous coupon usage and cant limit any given person x to scoop up everything etc. You would need an ID layer for that. But of course coupons does not have to behave like that either.

Not a problem right now but just thinking in the future if there where many different coupons from different companies and when combined on a specific product it could give it free or money back + product. So could be useful to have some rules on maximum possible discount combination etc. (Yes I admit I watched one episode of coupon hunters with my wife :P)

But again great idea Rick to bring coupons to the blockchain just trying to think to flesh it out more . But for sure as a simple contract accepting a single coupon X for given time Y on product Z (as you propose) it should be neat.

1 Like

The Allowance Contract.
Feed a contract with an amount that can be distributed X each time unit Y to wallets Z(n) (for example weekly).

The More Advance Allowance Contract
Allow wallet owner to also issue tasks on sidechain with IELE and when wallet owner is satisfied with task completion unlocks distribution of amount X by time unit Y to wallets Z(n).

Why on blockchain instead of just good old money? Because it can be automated. Because you can set it off on your mobile and check in real time who in family has done what task. Because…because if it makes your kids do the chores its awesome.

3 Likes

It’s very good idea.

1 Like

I also like the coupon idea. Because of the transactions fees, I don’t think I will be good for every coupon but for “high quality ones” like the “buy 10 pizzas and get one for free”-coupon it would be too cool. Same applies movie, theatre and musical tickets.

Like @Eystein_Hansen already wrote, it’s not a simple example and needs to be broken down into smaller once.

1 Like

The Simple Ticket Store
Pay a certain amount to get a ticket. Amount of tickets are limited.

The Advanced Ticket Store
Like the simple ticket store, but this time there are ticket numbers (seats). Of course every seat can be sold once. It would be nice to have control over the amount of seats and the number when buying tickets.

Use Case
Ticket Store :face_with_raised_eyebrow:

3 Likes

You just helped me think of another detail… The transaction fees can be pre-paid by the sellers in the coupon smart contract, just like the sellers are the ones who pay to have their coupons listed in the newspaper. Many thanks to you and @Eystein_Hansen

1 Like

I like this idea for Movie Tickets, Sports Tickets, Concert Tickets… any ticket that represents an exchange of value. The ticket can even have an expiration date (same as in a smart contract) based on the presentations given at Plutusfest.

I am glad you brought up this coupon suggestion Rick, I once managed a restaurant where I always had issues with coupons, I would like to see this coupon example, I look forward to it!

2 Likes

This leads me to another one:

Bonus Pizza
Every order increments a counter, when the counter hits 10 you will get a “Free Pizza”-Coupon.

Sounds pretty easy but wait - you can not simply just track the same addresses in the contract.

When ordering something the payment system will create a new payment address for this customer and monitors this address for the payment. Otherwise it’s not possible to assign payments to customers. (There are no messages in the transactions)

This means every time you order a pizza the payment address will be different. Therefore you need to assign some sort of other key to the customer in the contract, to implement this.

Use Case
Customer Loyalty

3 Likes

I like this idea because I always lose those stupid little punch cards. I get to like 7 of 10 holes punched and lose it. Store that stuff on a blockchain, app on the phone thingy.

3 Likes