<p>One way to burn a token would be to send it to a script address where the validator always fails. One of the simplest validators in Plutus would look something like this...</p>
<pre><code>  mkValidator :: Data -&gt; Data -&gt; Data -&gt; ()
  mkValidator _ _ _ = error ()
</code></pre>
<p>Since any UTxO belonging to a script address can only be used as an input to another transaction if its validator passes, then no UTxO at an address with such a validator can ever be spent.</p>
<p>You could still see all UTxOs sitting &quot;inside&quot; the script, including which tokens or Ada they contained, but they would not be retrievable.</p>

CC BY-SA 4.0
2021-06-19T18:46:28.890Z
2021-06-19T18:46:28.890Z
Chrismo
<p>One way in which Tokens/ADA can be burned is by sending them to a contract which has a deadline for extracting them. Once the deadline is passed, the validation script will never be able to validate and thus burning them. It would be wise to make the deadline the current slot so that there would be no chance of Tokens/ADA being extracted before the deadline passed. This can be done as soon as smart contracts are available on the Cardano mainnet.</p>
<p>If you want to burn a token in the current state of the mainnet, there is also the option to send the tokens to a &quot;burner-wallet&quot;, a wallet that nobody has access to (anymore). However, you can never be 100% sure that nobody has the private key to this wallet, so the first option would be better in most cases.</p>

CC BY-SA 4.0
2021-06-08T17:15:50.570Z
Ah, clever, I understand with the dead-end contract. Any thoughts on how this correlates with token conversion? I can't quite wrap my head around how, as if by magic, you convert ETH into ADA. The token converter demo appears to conjure ADA out of thin air. Or is there really a 3rd-party exchange that has the ADA reserves to issue?
xanadont
CC BY-SA 4.0
2021-06-08T17:41:30.707Z
I don't know much about token conversions :/ Maybe ask this as its own question?
Isaac Padberg
CC BY-SA 4.0
2021-06-08T18:28:23.733Z
Dig it. Thanks!
xanadont
CC BY-SA 4.0
2021-06-10T10:03:58.497Z
Can't you just send it to a standard address like the null address or something like that? If you choose an address randomly and someone has the key of this address, then cardano is not secure at all (because it is basically the same as the probability that you have the same public key as someone else). Or am I missing something?
Distic
CC BY-SA 4.0
2021-06-10T16:27:49.453Z
I am not sure what a null address is so I cannot answer that :D I think that sending tokens to a standard address with no private key holder is just bad practice which adds up over time if that is the commonly used method.
Isaac Padberg
CC BY-SA 4.0
2021-06-13T06:25:24.537Z
Another way to burn is to send it to script which validator always returns an error like it is presented at Week 2 Plutus pioneer program https://plutus-pioneer-program.readthedocs.io/en/latest/week2.html#example-2-burn
zarej
CC BY-SA 4.0
2021-06-07T16:08:30.447Z
2021-06-07T17:23:31.823Z
2021-06-07T17:23:31.823Z
Isaac Padberg
<p>In the world of Native Assets in Cardano, one can perform a negative mint procedure a.k.a. DESTROY on tokens as long as the Policy behind it is still open. This essentially takes it completely out of circulation. It’s like throwing an item into lava in Minecraft. This can all be done through the Cardano-CLI even in the absence of Smart Contracts on Cardano. Note that this process isn’t like what other networks do by simply locking tokens away in addresses and hope the private keys will never be found/used. I consider this to be a rather transparent and ultimate approach</p>

CC BY-SA 4.0
2021-06-17T04:14:24.907Z
2021-06-17T04:14:24.907Z
Pizza Knight
<p>I have not reviewed the specification for Cardano private keys, but in many crypto-currencies a private key must have some specific characteristics, for example so many Bytes in size.</p>
<p>Because of the mechanisms used for generating addresses from private keys (usually at least one cryptographic hash function is used) even an invalid private key that does not have the right attributes (perhaps not containing enough Bytes) can be made to generate an apparently valid address.</p>
<p>This invalid private key to valid address cant be created in a standard wallet, but recreating address generation in some custom code, and just feeding it invalid private keys will give burn addresses.</p>
<p>Coins can be sent to a burn address, but because the private key is invalid, no valid signature can be created to spend the coins, and so they become impossible to move and are &quot;burned&quot;.</p>
<p>An address can be proven to be a burn address by simply publishing the invalid private key with the address, and then anyone can validate the address is a genuine burn address.</p>

CC BY-SA 4.0
2021-06-14T14:45:10.187Z
I see. Makes a lot of sense. Thanks for providing a clear example.
xanadont
CC BY-SA 4.0
2021-06-10T17:33:10.900Z
2021-06-10T17:33:10.900Z
Scalextrix
<p>I'm guessing it means remove the token from circulation, permanently. In a real-world example that would be akin to literally throwing cash into a fire? What are the technical details involved in the process?</p>
<p><s>Furthermore, how does this all work in token conversion?</s></p>
<p>Edit: will ask above as a separate question.</p>

<nft><burn>
What does it mean to "burn" a token?
# What does it mean to "burn" a token?

(Asked by: username_0 on 2021-06-07)

I'm guessing it means remove the token from circulation, permanently. In a real-world example that would be akin to literally throwing cash into a fire? What are the technical details involved in the process?

~~Furthermore, how does this all work in token conversion?~~

Edit: will ask above as a separate question.

**Tags:** nft, burn

---

## 4 answers

### Answer by username_2 on 2021-06-07. Score: 9 | Accepted answer

One way in which Tokens/ADA can be burned is by sending them to a contract which has a deadline for extracting them. Once the deadline is passed, the validation script will never be able to validate and thus burning them. It would be wise to make the deadline the current slot so that there would be no chance of Tokens/ADA being extracted before the deadline passed. This can be done as soon as smart contracts are available on the Cardano mainnet.

If you want to burn a token in the current state of the mainnet, there is also the option to send the tokens to a "burner-wallet", a wallet that nobody has access to (anymore). However, you can never be 100% sure that nobody has the private key to this wallet, so the first option would be better in most cases.

> **Comments:**
> **username_0**: Ah, clever, I understand with the dead-end contract. Any thoughts on how this correlates with token conversion? I can't quite wrap my head around how, as if by magic, you convert ETH into ADA. The token converter demo appears to conjure ADA out of thin air. Or is there really a 3rd-party exchange that has the ADA reserves to issue?  
> **username_2**: I don't know much about token conversions :/ Maybe ask this as its own question?  
> **username_0**: Dig it. Thanks!  
> **username_3**: Can't you just send it to a standard address like the null address or something like that? If you choose an address randomly and someone has the key of this address, then cardano is not secure at all (because it is basically the same as the probability that you have the same public key as someone else). Or am I missing something?  
> **username_2**: I am not sure what a null address is so I cannot answer that :D I think that sending tokens to a standard address with no private key holder is just bad practice which adds up over time if that is the commonly used method.  
> **username_4**: Another way to burn is to send it to script which validator always returns an error like it is presented at Week 2 Plutus pioneer program https://plutus-pioneer-program.readthedocs.io/en/latest/week2.html#example-2-burn  

---

### Answer by username_1 on 2021-06-19. Score: 6

One way to burn a token would be to send it to a script address where the validator always fails. One of the simplest validators in Plutus would look something like this...
  mkValidator :: Data -> Data -> Data -> ()
  mkValidator _ _ _ = error ()

Since any UTxO belonging to a script address can only be used as an input to another transaction if its validator passes, then no UTxO at an address with such a validator can ever be spent.
You could still see all UTxOs sitting "inside" the script, including which tokens or Ada they contained, but they would not be retrievable.


---

### Answer by username_6 on 2021-06-10. Score: 4

I have not reviewed the specification for Cardano private keys, but in many crypto-currencies a private key must have some specific characteristics, for example so many Bytes in size.

Because of the mechanisms used for generating addresses from private keys (usually at least one cryptographic hash function is used) even an invalid private key that does not have the right attributes (perhaps not containing enough Bytes) can be made to generate an apparently valid address.

This invalid private key to valid address cant be created in a standard wallet, but recreating address generation in some custom code, and just feeding it invalid private keys will give burn addresses.

Coins can be sent to a burn address, but because the private key is invalid, no valid signature can be created to spend the coins, and so they become impossible to move and are "burned".

An address can be proven to be a burn address by simply publishing the invalid private key with the address, and then anyone can validate the address is a genuine burn address.

> **Comments:**
> **username_0**: I see. Makes a lot of sense. Thanks for providing a clear example.  

---

### Answer by username_5 on 2021-06-17. Score: 3

In the world of Native Assets in Cardano, one can perform a negative mint procedure a.k.a. DESTROY on tokens as long as the Policy behind it is still open. This essentially takes it completely out of circulation. It’s like throwing an item into lava in Minecraft. This can all be done through the Cardano-CLI even in the absence of Smart Contracts on Cardano. Note that this process isn’t like what other networks do by simply locking tokens away in addresses and hope the private keys will never be found/used. I consider this to be a rather transparent and ultimate approach


---

