<commit_before>---
title: Asset Issuance
description: Create new assets on a sidechain, with optional confidentiality.
image: /img/asset-issuance.svg
branch: issuance-final
source: https://github.com/ElementsProject/elementsproject.github.io/blob/master/source/elements/asset-issuance/index.md
edit: https://github.com/ElementsProject/elementsproject.github.io/edit/master/source/elements/asset-issuance/index.md
---

<div class="ui info message">
  <h4 class="header">Looking for the original investigation?</h4>
  <p>Read <a href="/elements/asset-issuance/investigation.html"><NAME>'s original investigation</a> to learn about the origins of this Element.</p>
</div>

Users can issue their own assets which represent fungible ownership of the underlying asset type representing by the newly created units, which could theoretically represent any asset including vouchers, coupons, currencies, deposits, bonds, shares, etc. (subject to the respective jurisdiction’s regulatory requirements).

This opens the door for building trustless exchanges, options, and other
advanced smart contracts involving those arbitrary assets and the "hostcoin".

### How it works
All outputs are tagged with their asset identifier. Consensus rules are modified so that the total inputs and outputs are checked separately per asset.
A new transaction type is added for creating issued assets (asset definition transactions). Like coinbase transactions, asset definition transactions (the new transaction type) have a null input, but unlike coinbases, asset definition transactions have more inputs in addition to that first null input. This difference not only helps us distinguish between the two: it also guarantees a source of entropy for the asset id (which is the sha256d hash of the transaction). Within an asset definition transaction, any number of outputs with 0 as asset ID can be included with any amount and they will be treated as the initial unspent outputs for the newly created asset.

This technology is similar to colored coins in many ways, but explicit and consensus-enforced tagging has many advantages:
<commit_msg>Update copy for asset issuance page<commit_after>---
title: Asset Issuance
description: Create new assets on a sidechain, with optional confidentiality.
image: /img/asset-issuance.svg
branch: issuance-final
source: https://github.com/ElementsProject/elementsproject.github.io/blob/master/source/elements/asset-issuance/index.md
edit: https://github.com/ElementsProject/elementsproject.github.io/edit/master/source/elements/asset-issuance/index.md
---

<div class="ui info message">
  <h4 class="header">Looking for the original investigation?</h4>
  <p>Read <a href="/elements/asset-issuance/investigation.html"><NAME>'s original investigation</a> to learn about the origins of this Element.</p>
</div>

Users can issue their own confidential assets which represent fungible ownership
of the underlying asset type representing by the newly created units, which
could theoretically represent any asset including vouchers, coupons, currencies,
deposits, bonds, shares, etc. (subject to the respective jurisdiction’s
regulatory requirements).

These assets can optionally be "blinded", causing the data in the transactions
(including amount and asset type) to be cryptographically obfuscated in such a
way that only the participating parties can see.  Particpants may choose to
reveal a "blinding key", which grants visibility into the transaction.

This opens the door for building trustless exchanges, options, and other
advanced smart contracts involving those arbitrary assets and a "hostcoin".

### Issuing Assets

### How it works
All outputs are tagged with their asset identifier. Consensus rules are modified so that the total inputs and outputs are checked separately per asset.
A new transaction type is added for creating issued assets (asset definition transactions). Like coinbase transactions, asset definition transactions (the new transaction type) have a null input, but unlike coinbases, asset definition transactions have more inputs in addition to that first null input. This difference not only helps us distinguish between the two: it also guarantees a source of entropy for the asset id (which is the sha256d hash of the transaction). Within an asset definition transaction, any number of outputs with 0 as asset ID can be included with any amount and they will be treated as the initial unspent outputs for the newly created asset.

This technology is similar to colored coins in many ways, but explicit and consensus-enforced tagging has many advantages:

{'fraction_non_alphanumeric': 0.06069175549271264, 'fraction_numerical': 0.0026103980857080703, 'mean_word_length': 5.307270233196159, 'pattern_counts': {'":': 0, '<': 21, '<?xml version=': 0, '>': 21, 'https://': 4, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3733819', 'n_tokens_mistral': 1091, 'n_tokens_neox': 1032, 'n_words': 576}