From 83587a9d28d920e039b381536a3971cd4d244ff6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20M=C3=BCndler?= Date: Wed, 15 Mar 2023 19:02:46 +0100 Subject: [PATCH] CIP-0100? | Supercharged Native Scripts This is a proposed solution to https://github.com/cardano-foundation/CIPs/pull/392 --- CIP-0100/README.md | 72 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 CIP-0100/README.md diff --git a/CIP-0100/README.md b/CIP-0100/README.md new file mode 100644 index 0000000000..99631afd99 --- /dev/null +++ b/CIP-0100/README.md @@ -0,0 +1,72 @@ +--- +CIP: 100? +Title: Supercharged Native Scripts for Minting and Burning Cardano Native Tokens +Category: Tokens +Status: Proposed +Authors: + - Niels Mündler +Implementors: [] +Discussions: + - https://github.com/cardano-foundation/cips/pulls/? +Created: YYYY-MM-DD +License: CC-BY-4.0 +--- +## Abstract + +This CIP proposes replacing the current native scripts used for minting Cardano Native Tokens with simple smart contracts, +so called "Supercharged Native Scripts". +The main goal is to allow users to burn their native assets at any time by utilizing smart contracts that enforce the minting conditions while always allowing burning. +Motivation + +The current process for minting and burning Cardano Native Tokens relies on native scripts, which do not provide a simple mechanism for users to burn their tokens and reclaim the minUTxO (ADA) locked by those tokens. As a result, users may end up with many unwanted tokens or NFTs, locking a considerable amount of ADA. + +This proposal aims to create a standardized solution for minting and burning tokens in the Cardano ecosystem, making it easier for users to manage their assets and recover locked ADA. + + +## Specification + +Super-charged native scripts are Plutus (V1/V2) Smart Contracts that have the following properties + +- They are parameterized by a PlutusData object representing a Native Script +- They have no requirements regarding the type or content of the input datum and redeemer (including whether a datum is present or not) + [Note: for the time being, UTxOs locked at a Smart Contract address _must_ be locked together with a Datum to be spent. This is different to Native Scripts, which don't require datums] +- They enforce that the parameterized Native Script conditions are met, unless specific conditions are met that are specified in the contract. Examples include: + - Minting validators that always allow burning of funds + - Spending validators that allow withdrawing non-ADA tokens + +These Smart Contracts are identified by their UPLC script being of the format `[[(lam _