diff --git a/eip-0045.md b/eip-0045.md new file mode 100644 index 00000000..ed78dd12 --- /dev/null +++ b/eip-0045.md @@ -0,0 +1,42 @@ +# Ephemeral Tokens + +- Author: qx() +- Status: Proposed +- Created: 23-February-2024 +- Last edited: 23-February-2024 +- License: CC0 +- Forking: not required + +## Abstract + +This document proposes a standard for creating and burning ephemeral tokens based on a future block height with incentive for miners to burn the token. +Incentivized Burning! + +## Motivation + +There exists many use cases for ephemeral tokens, here are a few: +- Blockchain messaging (messages that don't need to take up storage for longer than a specified time) including encrypted messaging (encryption is up the the clients of course) +- Key access - tokens that grant rights that are then automatically burnt after a period of time (think of committee access) +- Real-Time data - when data required is ONLY what is current (some sort of oracle perhaps), the old data can be pruned to save space on the chain +- NFT collections - Rareness could be ranked by the point at which it would be expired, with the most valuable ones being the random ones that have a block height many years out, or the reverse. +- Canary warrant tokens - if a token is not recreated every XXX days or years and ceases to exist, we can assume there has been a govt or state breach of a user/project or a required audit handover of information to a govt. +- Temporary boost tokens - for example, use in mining reward boosts (think GetBlok sub pools) as well as gaming boosts that are temporary (think holiday loot % boots that vanish). +- Testing on Mainnet - Make sure your test tokens are burnt by the time your mainnet tests are wrapping up. + +## Requirements + +- Ephemeral SC has a single address that miners can find to search for tokens that can be burned +- `R4` - p2pk address of the owner of the asset +- `R5` - block height to allow burning of token after reached +- `R6` - contains the amount of ergs that the miner is allowed to collect +- A smart contract that holds all assets. This Smart contract (Ephemeral) has the following logic + - A token can be minted into the SC address if it follows all rules of R4, R5, R6 + - Owner in R4 can spend to a new box inside the SC address if .XX ergs are present in the box with the token (R6) and conditions are met (transfer) + - After block height has been reached, allows only pk === miner.pk to spend and collect the .XX ergs in the box IF the block height has been reached AND the token is in the input and NOT in the output (burn) + + +## Process +- User sends ERGS to a proxy contract to initiate a mint +- Off-chain bot takes ERGS from that contract and mints tokens into the Ephemeral SC which follows the requirements above +- Users can xfer ownership by modifying R4 and following all SC rules +- Minerts burn token and collect ergs from the box after the blockheight is reached (owners cannot utilize the token after the block height has been reached if there is a delay in miners burning it)