Bunny Notes - A Zero-Knowledge Proof based Gift Card and Cash Note Protocol

Project Name: Bunny Notes

Project Track: DeFi

Team Name: StrawberryChocolateFudge ( The name of the github user, the project is developed by a sole developer) ,

Github : GitHub - StrawberryChocolateFudge/Bunny-Notes: A Zero knowledge Proof Based Gift Card and Cash Note Implementation

Team Member(s): barfolomew

DevPost URL:

Project Goal:

The goal is to create an accessible and secure way to Gift or Spend USDT and USDD in-person or online and to spend crypto instantly with the same security as Single Use Virtual Credit Cards and with the same ease as Pay Pass credit card payments.

Create printable Gift Cards to gift crypto in person to anyone.

Just scan a QR code to pay and only one of the parties has to have internet connection during the payments. The Notes can be printed and stored offline and can be spent like cash and you can pay with just the fraction of the denomination and receive back change.

Make in-person crypto payments so easy even your grandma could use it!

Project Info:

As seen above, the application uses Zero-Knowledge Proofs to prove on-chain the ownership of crypto notes that have the value deposited into smart contracts.

Alice generates a note using cryptography and deposits the value. These notes can be used to withdraw the value later, as a form of a gift card( full withdraw) or a cash payment where alice can receive change and pay with just a fraction of the note denomination.

Project Website: bunnynotes.finance (Available now)

Project Test Instructions:

  1. go to the website bunnynotes.finance.
  2. You need metamask to try out the application
  3. You can see the help page for information about how the app works
  4. Switch to the correct testnet and mint some testnet tokens for yourself.
  5. Now you are ready to try the app and create gift cards or cash notes.
  6. Click purchase gift card or purchase cash note
  7. Download the note, approve spend and deposit the ERC20 to give the note Value
  8. You can verify the downloaded Notes
  9. Give the gift card to somebody!
  10. Cash out the gift cards or create payment links to spend the cash notes!
  11. Enjoy the instant gas free payments using the cash notes!

Project Details:

The project is developed using Circom, Hardhat, Solidity and React,Web3.js.

The project uses Circom circuits for zero-knowledge proofs and Solidity for payments and to interact with ERC-20 tokens.

The generated notes are rendered as PDF files and downloaded to the user’s pc.
The value must be deposited into the smart contract for the note to be valid and the notes are invalidated after the value has been withdrawn. They are single use only.

The plan is to support USDT and USDD notes initially, with the denomination 10 USD, 100 USD and more coming later.

The notes can be printed and later spent without internet connection. because while making payments only one of the parties (Alice or Bob) needs to have internet.

This allows us to create instant payments for point of sale systems where the seller transmits the transaction to the network while the buyer can just pay by scanning a QR code and be sure the seller don’t have access to her full balance.

Paying with a note is as secure as Single-Use Virtual Credit Cards where we can set the maximum limit to allow less trust between parties. Alice can be sure Bob cannot steal more than the denomination and pay securely (on the go) without exposing her full balance.

Making payments this way adds an extra layer of security over paying manually or via smart contract calls where an attacker could approve high spend allowances to steal funds.

Using the payment request feature, Bob can create a payment link to send to Alice and when Alice makes the payments the accounts are instantly credited, or Bob could show the payment request in person on his phone and scan the QR code of Alice’s note for instant payments. Alice don’t have to have internet connection to make the payment.

The withdraw fee is 1% but there are no additional costs.

Because of the security provided by zero-knowledge proofs, it is possible to create fully gas-less payments for both parties later. The zero-knowledge proof contains all the details of the transaction so a relaying third party cannot maliciously alter it. This way we can create crypto payments in the future without the direct use of crypto wallets.

Disclaimer: While the project might work similarly to Tornado Cash with the use of notes, it does not provide any anonymizing or mixing features. All transfers of funds are traceable.

Project Milestones:

Zero-Knowledge Proof Circuit development
Smart Contract Development
Front-End with React
Testnet deployment
Front-End deployment
Relaying server development (Gasless txs)
Smart Contract Code Review (After the Hackathon)
Mainnet Deployment

Contract Address:
The smart contracts are on BTTC testnet, I will list the links with the addresses with a link to the contract code

ZkSnark Verifier contract: (Auto generated from circom circuit!)

Bunny Notes Contract:

ERC20MOCK contract for testing:

11 Likes

ROADMAP Update

The First UI prototypes are ready for this project.
The release will be divided into phases.

The scope of this Hackathon is phase 1.

The plan is to support USDT and USDD from the start and you can partner with us to get your tokens listed!

Phase 1:

Paving the way for larger crypto adoption.

The decentralized protocol allows anyone to deposit stablecoins and transfer them offline and make secure payments on the go or from their home using zero-knowledge proof technology.

During this phase, the main focus is developing the UI and smart contracts and getting the UX right!
The use of the protocol will require a hot-wallet to sign and submit transactions to the network.

Phase 2:

Introducing relayers and off-chain payments.

By adding off-chain payments connected to relayers, users can purchase and transfer crypto without ever having to install a crypto wallet, while the ownership and decentralization is fully preserved!

How this is done? With a zero-knowledge proof that proves you have a wallet, without ever having to use it!

With relayers, you never need to use a hot wallet and you can keep your cold wallet at home, safe.

Staking!

By providing liquidity to our relayers you can stake your stablecoins. We sell them for fiat currencies and you can choose to receive your rewards as a fiat currency or as the stablecoin you just staked!

Phase 3:

Ecosystem integration.

Bringing wallet-less interactions to other DeFi Protocols.
That’s right. With this technology, you can use DeFi protocols like Aave and make deposits through the relayers, Pay with Mastercard, save the Note containing your proof on your PC and enjoy borrowing and lending without using a hot wallet and when you decide to withdraw, your funds go to your cold wallet straight!

Custodian wallet solutions.

A bespoke custodian solution using managed cold wallets will allow users who cannot have cold wallets to join the ecosystem.
Millions of people possess the majority of this planet’s wealth and they do not have crypto wallets, at all!

The purpose of this project is to create new tech, built on the achievements of the past.
Finally, everything is possible! Let’s buidl!

7 Likes

Me parece una gran idea, permitirĂ­a concebir otra percepciĂłn de la economĂ­a. Buena suerte.

2 Likes

Bunny notes is available online! https://bunnynotes.finance/.

You can find a tutorial at the help page: Bunny Notes

It’s using the BTTC Donau testnet.

I decided to make BTTC the home of bunny notes over the tron chain due to the smart contract time limitations of tron and using BTTC will allow this project to more easily support other chains.

Just to reiterate, this project is created to accelerate crypto adoption by slowly moving away from crypto wallets towards just using QR codes, while the ownership of assets is fully preserved.

The application allows you to create gift cards for offline crypto transfers and cash notes for fractional note payments!

The Tutorial video for the Hackathon submission is coming soon!

Project Test instructions:

  1. go to the website bunnynotes.finance.
  2. You need metamask to try out the application
  3. You can see the help page for information about how the app works
  4. Switch to the correct testnet and mint some testnet tokens for yourself.
  5. Now you are ready to try the app and create gift cards or cash notes.
  6. You can verify the downloaded Notes
  7. Cash out the gift cards or create payment links to spend the notes!

So the first version is available using Metamask for now, please give it a spin and let me know if you have any questions!

3 Likes

gm. Interesting idea. seems it could have a large impact! good luck.

4 Likes

nice milestones, hope u finished all of them successfully

2 Likes

Yes it’s nearly finished!

I’m just doing the final finishing touches and making the Video for the hackathon submission. Thank you for your comment :slight_smile:

1 Like

The time has come and I made my submission
You guys can see here the submission with the video demo:

I developed this solely for this hackathon. It’s been a great journey! Thank you all!

2 Likes

It’s time to MEME!

BunnyNoteMeme

1 Like

ezgif.com-gif-maker(1)

2 Likes

Greetings barfolomew! Your project seems to be missing details on the following. Please add them to your project. Thank you!

Please Include:
Project Test Instructions
Contract Address

2 Likes

Looks awesome! Always wanted to do circom circuits. I take you’re using the Rust library for circom, or is it Javascript? Do you guys have a social media or telegram by any chance I can follow?

2 Likes

The project is using the poseidon hash implementation from circomlibjs and snarkjs. The whole project is typescript.

I’m just setting up the social media profiles for this. Thank you for your interest, I’ll link it here later!

2 Likes

Great project! I hope this hackathon will bring visibility to the amazing work you’ve done!

4 Likes

great project, bunny note :blush:

3 Likes

Nice one hope you finish the milestone successful

1 Like

This is the telegram channel, I just created it.

I will post announcements here and you can ask me anything.

I will respond as fast as I can to all questions!

So the hackathon is coming to the end.

There will be no more updates to Bunny Notes webapp to avoid breaking changes till the hackathon judging period is finished.

However I am working on Note Based Smart Contract Wallets (instead of the custodian wallets I mentioned earlier due to the recent events in the markets) and a Gasless DEX (The Bunny Dex) is in draft as I just recently realized I can create a gasless DEX now with crypto notes.

It’s a lot of experimenting too but the buidling must go on. :slight_smile:

Nice milestone… Keep it up

1 Like