Cardano Gift Card Standard
I believe a gift card standard could be a great addition to Cardano. I posted a feature request on the Yoroi Wallet repository. The devs agreed it was doable; however, they advised me to create a CIP so that all wallets could follow the same protocol. I initially tried to describe a standard with cryptocurrency-specific specifications. However, for this CIP, I’ll try to merge everything into one Cardano proposal.
This is my first time doing a CIP; please let me know if there is an issue.
Abstract
Gift cards are paper wallets intended to be gifted; they are fancy documents bundled with mnemonic words and instructions. It is a fun way to gift Cardano to someone who doesn’t know about crypto. It includes explicit directives that can teach anyone to retrieve its funds and introduce them to the blockchain concepts. A standard protocol for generating and restoring the cards could make gifting Cardano more secure.
Motivation
Gift cards are potentially beneficial for the ecosystem since they allow to easily gift Cardano to people who don’t own a wallet or an exchange account (thus suitable for adoption).
Specification
Concerning the gift card:
-
Document must include a code that can be derived into and private key allowing access to a wallet on the blockchain.
-
Document code must be a 24 word mnemonic corresponding to a standard Cardano wallet.
-
Document must include information to determine which cryptocurrency it is holding.
-
Document must indicate that it is a Gift Card.
-
Document must include a warning stating that it should not be used as a regular crypto wallet and must be emptied upon reception.
-
Document must include basic instructions to retrieve funds.
-
Document must include a deposit address.
Optional:
-
Document can include a QR code for quick access; its data must be a JSON object with the following members:
-
‘code’: the code stated in (1.) as it would be entered by the user
-
‘abbr’: cryptocurrency abbreviation, ex: BTC
-
Here are three Gift Card features that could be integrated into software wallets:
-
Gift Card Generation: A menu to generate a paper wallet bundled with instructions.
-
Gift Card Restoration: A menu to automatically restore and empty a gift card to a secure wallet.
-
Gift Card Detection: This feature detects when a gift card is restored (in the classic wallet restore menu) and proposes a Gift Card restoration (2.) instead.
Rationale
The main risk with Gift Cards is that the person receiving the funds could use the restored wallet as its own (thus putting more funds on an insecure wallet). The above specifications were made to reduce that risk to a minimum.
Concerning (3.): one way to detect if a restored wallet is a Gift Card would be to generate every Gift Card with ‘gift’ as their first word.
However, it would reduce the wallet possibilities from 2048^24 to 2048^23 (a potential security risk).
Reference implementation
Live example of a gift card generator.
Copyright
Creative Commons Attribution 4.0 International Public License