last updated 2023-10-26 Main_Menu

All About Evrmore Assets

This page is a work in progress.
If you would like to make corrections or provide additional detail, please make a pull request on this website's github source or visit us at our discord server.
At this time, most transaction examples point to transactions on the Ravencoin blockchain, which is similar to Evrmore in those cases.


This webpage will attempt to describe Evrmore assets at a high level, and then dig deeper into the technical implementation.

For more precise asset naming rules and some of the datafield contents, please also see HERE and HERE


Table of Contents



Evrmore Asset Fundamentals:

What is an asset?

An Evrmore asset (sometimes referred to as a token) is an on-chain data object which contains user-generated information. An asset can be used as an event ticket, a subscription, a coupon, a badge, an authentication approval, a coin, a financial security, or a representation of a physical asset such as real estate, art, precious metal, etc. It is created and processed according to the blockchain consensus rules, which dictate the conditions under which it can be created, under which it can be moved (traded) to a different address, under which the enclosed information can be edited, and under which additional assets of the same type or derivative type may be created.

An Evrmore asset has a human-readable guaranteed unique name which is chosen by the user when created.

In bitcoin terminology, every Evrmore asset is contained in a UTXO or group of UTXOs.


Where can I trade assets?

Marketplaces can be public, global, and free of regulation such as the EVRSea NFT Marketplace at https://evrsea.io which specializes in the trading of NFT art implemented as Evrmore assets. Other marketplaces are proprietary and require a membership. A financial security marketplace would require regulatory approvals based on the juristiction of the participants.


Privacy and Access

An Evrmore asset, like a Bitcoin, is held at a blockchain address and all movements on the chain are publicly viewable. Ownership of an asset is therefore pseudonomous based on knowledge of who owns which address. Some data contained in the asset, such as its name, are also publicly viewable. But other data, such as data pointed to by an IPFS link contained within the asset, could be encrypted so that only users who possess the decryption key can view that data.

The ability to buy and sell most assets is unrestricted beyond the requirement that the owner must prove ownership by proving possession of the keys associated with the address at which the asset resides. However, Evrmore does also support a special Restricted Asset type which is subject to a number of addtional restrictions including mechanisms to limit which addresses are allowed to receive the asset or to globally freeze and unfreeze trading for all addresses.


The Nomenclature

The following terms are commonly used to describe Evrmore asset capabilities or operations:

  • Reissuability

    This is a metadata flag which denotes whether or not an asset can be reissued, which also provides an opportunity to change some of the asset's metadata. Once this flag is set to false it CANNOT be changed back! If you want (or if there is even a small chance that you will want) to change your asset's information in the future, ensure that you issue your asset as reissuable when you create it!

  • Divisibility (Units)

    Units is a metadata value from zero to eight which denotes how much an asset can be broken up. Specifically this number is how many digits past the decimal this asset can be divided into (a minimum size of 10-d where d is the divisibility).

    Units=0 means the tokens are not divisible at all -- whole tokens only can be transferred. Units=2 would be two decimal places like cents on a dollar it would be possible to transfer 0.01. Units=8 is the most divisible and allows tokens to be tranferred in increments of 0.00000001.
  • Reissuing

    Reissuing an asset is an act which does one or both of the following:

    • Changing the metadata associated with an asset.
    • Creating more of an asset.

    In order to reissue an asset, the asset must be reissuable and you must have the associated ownership asset.


    When changing divisibility during a reissuance, the divisibility may only be kept the same or increased, never decreased.


    When increasing divisibility, you cannot use the new lowest asset amount when creating more of the asset; the asset still has the old divisibility amount until the reissue transaction has been mined into a block

  • Ownership Assets

    When creating an asset of type "main", you will also receive an ownership asset. Ownship assets allow a user to reissue an asset and create "child assets" which we will explore in the next section. Ownership assets are designated by an exclamation point (!) appended to the chosen name of the Asset. For instance, for an asset created with the name "ASSET", the associated ownership asset would be "ASSET!". If an asset A requires the ownership asset of asset B to be created, asset B is said to be asset A's "parent" and asset A is said to be asset B's "child".

  • Associated Data

    This is a 32-byte data field which contains user-supplied data. It usually contains an IPFS hash or a Transaction Identifier (TXID), but it can be anything.

  • Message Broadcasts

    Any owner of any asset can broadcast a 32 byte message associated with that asset. We will go more in-depth with broadcasts later.

  • Null Asset Tags

    These are special scripts used by holders of qualifier assets and restricted ownership assets to define behavior between restricted assets and addresses. The relationship between qualifiers, restricted assets, tags, and addresses is fairly complicated. We will go more in-depth further down the page.


Creating Assets

When creating an asset, you need to know what type of asset you want, the name you want for the asset, the quantity of the asset which you want to issue, how much it costs to create the asset, and the metadata you want associated with the asset.

Assets are easily identified by their names, which must be unique. An asset creation will not be accepted by the chain if the name is not unique.

Asset names are encoded using plain ascii. Therefore asset names can only contain characters in the latin alphabet.

The cost of creating an asset can be viewed as the cost to "reserve the name" similar to purchasing a DNS name. The cost is not a function of the quantity of tokens issued of that asset.

To put this information in a more readable format, all of the upcoming asset types will contain the following chart:

Metadata Information
Asset Name Name specifications
Ownership Asset Ownership specifications
Prerequisites Prerequisite specifications
Asset Amount Amount specifications
Cost Cost specifications
Reissuability Reissuability specifications
Divisibility Divisibility specifications
Associated Data Associated data specifications

This table denotes the fields avaliable and their limitations.

For instance, an ownership asset table looks like this:

Metadata Information
Asset Name Base asset name + '!'
Ownership Asset No associated ownership asset
Prerequisites Created with another asset
Asset Amount There can only be 1 of some ownership asset
Cost Comes with the base asset
Reissuability Cannot be reissued
Divisibility Has 0 divisibility
Associated Data No data can be associated

Main Assets, Subassets, and Unique Assets

When working with Evrmore assets you will most likely be using one of these three. They are by far the most used types of assets.


Main assets

Using a website analogy, a main asset is like a domain name.

Metadata Information
Asset Name From 3 to 30 of the symbols A-Z 0-9 . _ The point or underscore cannot be the first or last characters or repeated. The names EVR, EVER, EVRMORE. EVERMORE. EVRMORECOIN, EVERMORECOIN, EVRS, EVERS, EVRMORES. EVERMORES. EVRMORECOINS, EVERMORECOINS, RVN, RAVEN, RAVENCOIN RVNS, RAVENS, and RAVENCOINS are reserved.
Ownership Asset Main assets have an associated ownership asset
Prerequisites None
Asset Amount 1 - 21,000,000,000 of this asset can be created
Cost 500 EVR
Reissuability This asset can be set to be reissued
Divisibility Divisibility can be set from 0-8
Associated Data This asset can have associated data

The ownership asset of a main asset is required to create the following two asset types.


Sub-assets

A sub-asset is like a path within a website or like a filesystem subdirectory. Creating a sub asset requires a main asset ownership token.

Metadata Information
Asset Name

The sub-portion of the name must be at least 1 capital letter. '.' and '_' are also allowed, but they cannot be at the beginning or end of the sub-portion. More than one of these special characters also cannot be next to one another.

The full sub-asset name takes the form [main asset name]/[sub-portion]. This full name must be 30 or less characters.

Ownership Asset Sub-assets have an associated ownership asset
Prerequisites A main asset's ownership asset
Asset Amount 1 - 21,000,000,000 of this asset can be created
Cost 100 EVR
Reissuability This asset can be set to be reissued
Divisibility Divisibility can be set from 0-8
Associated Data This asset can have associated data

Unique assets

A unique asset can be likened to a file on a website. Creating a unique asset requires a main asset ownership token or a sub-asset ownership token. There can only be 1 of a unique asset.

Metadata Information
Asset Name The unique portion of the name must be at least 1 character. The full unique asset name takes the form [main or sub asset name]#[unique portion]. This full name must be 30 or less characters.
Ownership Asset Unique assets have no associated ownership asset
Prerequisites A main asset or sub-asset's ownership asset
Asset Amount 1 of this asset can be created
Cost 5 EVR
Reissuability This asset cannot be reissued
Divisibility Divisibility is 0
Associated Data This asset can have associated data

Broadcasts and Message Channels

Message Channel is an asset type which is defined in Evrmore. However, it is not supported in any of the mainstream community software releases, and it is rarely used. It is included here only for the sake of completeness.

Asset Messages

Any user can send an asset message on any asset of any type which they own. An asset message is a 34 bytes long data field in any asset transfer transaction which the user can set to carry a message. It uses the same datafield which is used to associate an IPFS link or Transaction ID as metadata to an asset when the asset is created or reissued. During other asset operations it just becomes usable as a general purpose message field. When the transfer is to another address, the message is interpreted to be intended to be directed to the owner of that address.

Asset Broadcasts

In a message channel asset transfer transaction, if the receiving address is the same as the sending address, this is interpreted as a message broadcast. Only message channels can broadcast messages. It is important to note that the term "broadcast" is actually a misnomer since there is nothing being sent to multiple destinations beyond the usual transaction relaying. It is solely a scheme by which the client software could interpret use of the data field in a transaction, but no such user interface for message broadcasts has been implemented in the core wallet and may never be implemented.

Message Channels

A message channel requires a main or sub-asset's ownership asset. A message channel is an asset specifically made for broadcasting messages. Their purpose is to add more control to whoever might be subscribed to the message channel's parent.

On-chain messages are a very limited and expensive way to send messages because the data field is very small and because every transaction costs a transaction fee. On the other hand, the data field size problem can be avoided by making it a link to (possibly changing) data off-chain. Also, the transaction fees do provide a mechanism to discourage spam.

Metadata Information
Asset Name

The message channel portion of the name must at most 12 characters. It can contain letters, numbers, and '_'. '_' cannot be at the beginning or end of the message channel portion and two or more '_''s cannot be next to each other.

The message channel asset name takes the form [main or sub asset name]~[message channel portion]. This full name must be 30 or less characters.

Ownership Asset Message channel assets have no associated ownership asset
Prerequisites A main asset or sub-asset's ownership asset
Asset Amount 1 of this asset can be created
Cost 100 EVR
Reissuability This asset cannot be reissued
Divisibility Divisibility is 0
Associated Data This asset cannot have associated data

Qualifiers, restricted assets, addresses, and tags

Restricted assets, qualifiers, address tagging, and other related items are a complex topic. They are fully supported on-chain and in the Evrmore core code. And you may find an interesting way to use them in your application. But it is more likely that you won't need to understand or use them. They were created specifically to support the regulatory requirements of Security Token Offerings, Financial Security trading, and the required Know-Your-Customer regulations. Restricted assets are restricted in the sense that only certain addresses may receive them. Those address must satisfy the requirements of a "Verifier String" defined for that Restricted Asset. A Verifier String is a boolean expressed composed from Qualifier names. Qualifier names are the names of Qualifier Assets which represent the satisfaction of some requirement such as having been KYC vetted or being a member of a club. Addresses can be tagged or untagged by the holder of a Qualifier Asset, and the result of those address tagging operations must satisfy the boolean Verifier String in order for that address to receive the Restricted Asset. The creator of a Qualifier Asset can create more than one of them with the same name, which he can give to other addresses, effectively delegating to the owner of that address the ability to tag any address on his behalf with the Qualifier.

Lets start out with some definitions.

  • Asset Tags

    An asset tag determines whether or not an address is able to receive a restricted asset. It costs 0.1 EVR to create an asset tag. There are three types of asset tags:

    • Null Asset Tag

      A null asset tag has two sub-types:

      • Qualifying Null Asset Tag: This type of null asset tag can be created with a qualifier asset. It qualifies or unqualifies some address.
      • Restricted Null Asset Tag: This type of null asset tag can be created with a restricted asset's ownership asset. It can add or remove an address from being blacklisted from receiving this restricted asset no matter the address's qualifications.
    • Verifier Asset Tag

      A verifier asset tag can be created with a restricted asset's ownership asset. It associates this restricted asset with one or more qualifiers. (This means that to recieve this restricted asset, an address must be qualified by all of the qualifiers defined in this tag).

    • Restricted Asset Tag

      Also known as a global freeze tag, a restricted asset tag can be created with a restricted asset's ownership asset. This tag can freeze or unfreeze all movements across all addresses of this restricted asset.

  • Qualifier Asset

    Qualifier assets are administrative assets (in the same group as ownership assets) used to determine what addresses can receive restricted assets. Simply owning a qualifier asset gives a user this power.

    Metadata Information
    Asset Name

    The qualifier portion of the name has the same naming rules as a main asset.

    The qualifier asset name takes the form #[qualifier portion]. Note how this is differentiated from unique assets with the fact that a qualifier has no parent. This full name must be less than 30 characters.

    Ownership Asset Qualifier assets have no associated ownership asset
    Prerequisites None
    Asset Amount 1 - 10 of this asset can be created
    Cost 1000 EVR
    Reissuability This asset cannot be reissued
    Divisibility Divisibility is 0
    Associated Data This asset can have associated data. Note: because qualifiers cannot be reissued, if you choose to have associated data, it cannot be changed in the future.

  • Sub-qualifier Asset

    Currently, sub-qualifiers have exactly the same powers as their parents. Sub-qualifiers use a parent qualifier asset in lieu of a parent ownership asset in its creation.

    Metadata Information
    Asset Name

    The sub-qualifier portion of the name has the same naming rules as a sub-asset.

    The sub-qualifier asset name takes the form #[qualifier portion]/#[sub-qualifier]. Note how this is differentiated from unique assets with the fact the the intermediary characters are '/#' This full name must be less than 30 characters.

    Ownership Asset Qualifier assets have no associated ownership asset
    Prerequisites A qualifier
    Asset Amount 1 - 10 of this asset can be created
    Cost 100 EVR
    Reissuability This asset cannot be reissued
    Divisibility Divisibility is 0
    Associated Data This asset can have associated data. Note: because qualifiers cannot be reissued, if you choose to have associated data, it cannot be changed in the future.

  • Restricted Asset

    Restricted assets are comparable to main assets except for the fact that they are, well, restricted. Currently restricted assets can only be associated with main qualifiers (not sub-qualifiers). If a restricted asset is not associated with any qualifier, it cannot be transfered. Restricted assets are also somewhat unique in the fact that if they can be reissued, they are able to change what qualifiers they are associated with.

    Metadata Information
    Asset Name

    The restricted portion of the name has the same naming rules as a main asset.

    The restricted asset name takes the form $[restricted protion]. This full name must be less than 30 characters.

    Ownership Asset Restricted assets have an associated ownership asset
    Prerequisites A qualifier
    Asset Amount 1 - 21,000,000,000 of this asset can be created
    Cost 1500 EVR
    Reissuability This asset can be reissued
    Divisibility (Units) Divisibility (Units) can be 0 - 8
    Associated Data This asset can have associated data.

Evrmore Asset Technical Implementation:

TLDR:

If you understand Bitcoin's transaction and UTXO structures and you just want to see an example of how Evrmore differs from Bitcoin in order to support Assets, then look HERE


What is stored on the chain?

All asset creations, reissues, transfers, and tags are special scripts and are part of normal transactions.

When an asset is created, nodes store the asset name, reissuability, divisions, associated data, and respective VOUT information in a database. This is how nodes easily access metadata. During a reissuance, the ownership asset must be sent to prove ownership on-chain and the node will save the new metadata. These asset creation and reissuance transactions are the only places where the metadata is stored on the chain.

This means that, say, a 3rd party wallet sends you asset information. Whatever protocol they are using will need to send the client the VOUT of asset creations or reissues so that the client may verify the integrity of the metadata.

The same is true for asset tags. They only exist on the chain in one singular transaction. The node then keeps track of where that transaction is in a database for verification later.

As discussed earlier, there is also an optional 34-byte data field in the asset script portion of any asset transaction. During creation or reissue of an asset, that datafield determines the IPFS or TXID metadata attached to the asset. During other asset operations it can serve as a general purpose message field.


Burn Addresses and Cost of Asset Operations

In order to create an asset, a certain amount of EVR must be sent to a burn address.

The first two characters are due to Evrmore's P2PKH address type of 0x21 and the seeming random characters at the end of each address are the public key's checksum.

Mainnet Address Testnet Address Amount
Issue Asset EXissueAssetXXXXXXXXXXXXXXXXYiYRBD n1issueAssetXXXXXXXXXXXXXXXXWdnemQ 500 EVR
Reissue Asset EXReissueAssetXXXXXXXXXXXXXXY1ANQH n1ReissueAssetXXXXXXXXXXXXXXWG9NLd 100 EVR
Issue Sub-Asset EXissueSubAssetXXXXXXXXXXXXXWW1ASo n1issueSubAssetXXXXXXXXXXXXXbNiH6v 100 EVR
Issue Unique Asset EXissueUniqueAssetXXXXXXXXXXTZjZJ5 n1issueUniqueAssetXXXXXXXXXXS4695i 5 EVR
Issue Message Channel EXissueMsgChanneLAssetXXXXXXXD3mRa n1issueMsgChanneLAssetXXXXXXT2PBdD 100 EVR
Issue Qualifier EXissueQuaLifierXXXXXXXXXXXXW5Zxyf n1issueQuaLifierXXXXXXXXXXXXUysLTj 1000 EVR
Issue Sub-Qualifier EXissueSubQuaLifierXXXXXXXXXUgTjtu n1issueSubQuaLifierXXXXXXXXXYffPLh 100 EVR
Issue Restricted Asset EXissueRestrictedXXXXXXXXXXXZZMynb n1issueRestrictedXXXXXXXXXXXXZVT9V 1500 EVR
Add Asset Tag EXaddTagBurnXXXXXXXXXXXXXXXXb5HLXh n1addTagBurnXXXXXXXXXXXXXXXXX5oLMH 0.1 EVR
General Burn EXBurnXXXXXXXXXXXXXXXXXXXXXXZ8ZjfN n1BurnXXXXXXXXXXXXXXXXXXXXXXU1qejP N/A

Asset Scripts

The following sections describe the low-level implementation details of asset scripts. They assume hat you are familiar with script and transactions.
We do not endorse any of the assets shown in examples.
If you are looking to use this as a guide to parse the Evrmore chain, please see a note at the end of this section.

For more precise asset naming rules and some of the datafield contents, please also see HERE and HERE

New asset script

New asset scripts are used to transfer an amount of an asset into and address during an asset create as well as associate metadata with the created asset.

Script portion Number of bytes
Standard vout script (P2PKH) Var bytes
OP_EVR_ASSET (C0) 1 byte
Length of the asset data (OP_PUSH) (Not including OP_DROP) 1 or 2 bytes
'evr' in ascii (657672) 3 bytes
Asset script type 'q' (71) 1 byte
Length of asset name (OP_PUSH) 1 byte
Asset name in ascii Var bytes
Amount in sats (little endian) 8 bytes
Divisions (00-08) 1 byte
Reissuability (00-01) 1 byte
Has associated data (00-01) 1 byte
Associated data (Optional; only if previous byte is 01)
Contains 1 byte Type (usually 0x12 for IPFS or 0x54 for TXID) + 1 byte Length (usually 0x20) + 32 bytes
Optional 34 bytes user defined data
OP_DROP (75) 1 byte

On chain example: 8eefce8d264d723b6b8f3cf87bcb400a009d01c2771f94e5cc07af252851aa96 VOUT 3



Ownership asset script

Ownership asset scripts are used in tandem with a new asset script if the new asset has an associated ownership asset. Notice how ownership assets have no extra information, not even an amount.

Script portion Number of bytes
Standard vout script (P2PKH) Var bytes
OP_EVR_ASSET (C0) 1 byte
Length of the asset data (OP_PUSH) (Not including OP_DROP) 1 or 2 bytes
'evr' in ascii (657672) 3 bytes
Asset script type 'o' (6F) 1 byte
Length of asset name (OP_PUSH) 1 byte
Asset name in ascii Var bytes
OP_DROP (75) 1 byte

On chain example: 8eefce8d264d723b6b8f3cf87bcb400a009d01c2771f94e5cc07af252851aa96 VOUT 2



Reissue asset script

Reissue asset scripts are used to change an asset's metadata. If the amount is not zero, that amount of the asset is created for the pubkey in the standard script.

Script portion Number of bytes
Standard vout script (P2PKH) Var bytes
OP_EVR_ASSET (C0) 1 byte
Length of the asset data (OP_PUSH) (Not including OP_DROP) 1 or 2 bytes
'evr' in ascii (657672) 3 bytes
Asset script type 'r' (72) 1 byte
Length of asset name (OP_PUSH) 1 byte
Asset name in ascii Var bytes
Amount in sats (little endian) (Amount to add into circulation) 8 bytes
Divisions (00-08) (FF for unchanged; can only increase) 1 byte
Reissuability (00-01) 1 byte
Associated data (Optional; only if associating new data) 1 type byte, 1 length byte, 32 bytes user data
OP_DROP (75) 1 byte

On chain example: b9d3ba355acbf58e44e893dccbcad06a10af88727adc340eeacd10d11b026f52 VOUT 3



Transfer asset script

Transfer asset scripts are used to transfer an amount of an asset to another address. If transfering an ownership asset, use 100,000,000 (00:E1:F5:05:00:00:00:00) for the sat value.

Script portion Number of bytes
Standard vout script (P2PKH) Var bytes
OP_EVR_ASSET (C0) 1 byte
Length of the asset data (OP_PUSH) (Not including OP_DROP) 1 or 2 bytes
'evr' in ascii (657672) 3 bytes
Asset script type 't' (74) 1 byte
Length of asset name (OP_PUSH) 1 byte
Asset name in ascii Var bytes
Amount in sats (little endian) 8 bytes
Associated data (Optional; only if a broadcast) 1 type byte, 1 length byte, 32 bytes user data
OP_DROP (75) 1 byte

On chain example: bae95f349f15effe42e75134ee7f4560f53462ddc19c47efdd03f85ef4ab8f40 VOUT 0



Null asset tag script

Dictates if an address is qualified for a restricted asset.

If the asset is a qualifier, a flag of 1 denotes a qualification. A flag of 0 denotes a revocation.

If the asset is a restricted asset, a flag of 1 denotes blacklisting the address. A flag of 0 denotes unblacklisting the address.

Script portion Number of bytes
OP_EVR_ASSET (C0) 1 byte
Length of the pubkey h160 (OP_PUSH) 1 byte
Pubkey h160 20 bytes
Length of the asset portion (OP_PUSH) 1 byte
Length of the asset name (OP_PUSH) 1 byte
Qualifier or restricted asset name Var bytes
Flag (00-01) 1 byte

On chain example: 4ea3369ef6fb57fc26e176ad5903d4684a8c64f641aa0e1f02e5c7428609e060 VOUT 1



Verifier asset tag script

This script must be sent with a new asset script or a reissue asset script for a restricted asset. It associates qualifiers with the restricted asset.

An asset name portion of 'true' in ascii is the default to denote no associated qualifiers.

Script portion Number of bytes
OP_EVR_ASSET (C0) 1 byte
OP_RESERVED (50) 1 byte
Length of the asset portion (OP_PUSH) 1 byte
Length of the qualifier name(s) (OP_PUSH) 1 byte
Qualifier name(s) (joined with & in ascii) Var bytes

On chain example: 477a0b2214475d11e316524b500e29837c6763fec256594c2ca7aa369b15888b VOUT 2



Global restriction asset tag script

If the flag is 1, this stops all movement of the restricted asset. A flag of 0 re-enables movement.

Script portion Number of bytes
OP_EVR_ASSET (C0) 1 byte
OP_RESERVED (50) 1 byte
OP_RESERVED (50) 1 byte
Length of the asset portion (OP_PUSH) 1 byte
Length of the asset name (OP_PUSH) 1 byte
Restricted asset name Var bytes
Flag (00-01) 1 byte

On chain example: 2fc0bb7e3a33d12ca08f72add0effc3d059cf63382bebcad96e8923e91c3c537 VOUT 2



Asset transaction structures

Similar to normal Evrmore (and bitcoin) transactions, the amount of an asset from the VINS must equal the amount in the VOUTS (Not including created assets).
A EVR fee must be paid for asset-only transactions just like any other.
All of the protocols pertaining to transactions are the same. The only thing that changes is the scripts.
The order of the VOUTS does matter when creating and reissuing assets.
When creating transactions the created ownership asset (if there is one) must be sent to the same address as the created asset.


Transfer asset transaction

VINS VOUTS

EVR outpoint(s) for fee

Asset outpoint(s) for transfer

EVR change address(s)

Asset transfer script(s)

On chain example: bae95f349f15effe42e75134ee7f4560f53462ddc19c47efdd03f85ef4ab8f40



Creating a main asset transaction

Note that when creating assets, you get to freely determine what address to send the assets and ownership asset to.
VINS VOUTS

EVR outpoint(s) for fee and burn

Issue asset burn address

EVR change address(s)

Ownership asset script

New asset script

On chain example: 8eefce8d264d723b6b8f3cf87bcb400a009d01c2771f94e5cc07af252851aa96



Creating a sub-asset transaction

VINS VOUTS

EVR outpoint(s) for fee and burn

Parent ownership asset outpoint

Issue sub-asset burn address

EVR change address(s)

Transfer asset script (For parent ownership asset)

Ownership asset script

New asset script

On chain example: 15127b9ea4c21c323dde1f2dd64b24b12efef2adec43b0b5f2e2377ad4aea369



Creating a unique asset transaction

VINS VOUTS

EVR outpoint(s) for fee and burn

Parent ownership asset outpoint

Issue unique asset burn address

EVR change address(s)

Transfer asset script (For parent ownership asset)

New asset script

On chain example: 12f39ab78609e312e80c86d1ed3f25937120cbdeee6fc81b1068c400eb1c8518



Creating a reissue asset transaction

VINS VOUTS

EVR outpoint(s) for fee and burn

Ownership asset outpoint

Reissue asset burn address

EVR change address(s)

Transfer asset script (For ownership asset)

Reissue asset script

On chain example: 1370040248ba64a2676f125e645a83421adb2859c8c2aacc74017d738309ebda



Creating a message channel asset transaction

VINS VOUTS

EVR outpoint(s) for fee and burn

Parent ownership asset outpoint

Issue message channel asset burn address

EVR change address(s)

Transfer asset script (For parent ownership asset)

New asset script

On chain example: d5a13003bff69513b1bb172164ba015afd9bd5afc0a2d654cf10daf1ae470a8c



Creating a qualifier asset transaction

VINS VOUTS

EVR outpoint(s) for fee and burn

Issue qualifier asset burn address

EVR change address(s)

New asset script

On chain example: 748c7e0996e0a4f599c51635c8fce8ddd6ae0e625be640fa4074f51f2574d7a1



Creating a sub-qualifier asset transaction

VINS VOUTS

EVR outpoint(s) for fee and burn

Parent asset outpoint

Issue sub-qualifier asset burn address

EVR change address(s)

Transfer asset script (For parent asset)

New asset script

On chain example: 748c7e0996e0a4f599c51635c8fce8ddd6ae0e625be640fa4074f51f2574d7a1



Creating a restricted asset transaction

VINS VOUTS

EVR outpoint(s) for fee and burn

Issue restricted asset burn address

EVR change address(s)

Verifier asset tag script

Ownership asset script

New asset script

On chain example: c1e61a69bfb3a02f15c44b530a76fee8d69c8b54b0cc69c0fab81a583e3e5c33



Creating a reissue restricted asset with new qualifiers transaction

VINS VOUTS

EVR outpoint(s) for fee and burn

Ownership asset outpoint

Reissue asset burn address

EVR change address(s)

Verifier asset tag script

Transfer asset script (For ownership asset)

Reissue asset script

On chain example: a2b634e160974348647484302501a64bc80a841d4a9ea833498a47e72e987628 (testnet)



Creating a null asset script transaction

VINS VOUTS

EVR outpoint(s) for fee and burn

Qualifier or restricted ownership asset outpoint

Tag burn address

EVR change address(s)

Transfer asset script (For qualifier or restricted ownership asset)

Null asset tag script

On chain example: 0332beef9c76cf300b166cf5f56e8acd83788201eae1fc93f05364c28cd882f2



Creating a freeze restricted asset transaction

VINS VOUTS

EVR outpoint(s) for fee and burn

Restricted ownership asset outpoint

Tag burn address

EVR change address(s)

Transfer asset script (For restricted ownership asset)

Global restriction asset tag script

On chain example: cb6f7a7cf7d65d532101a259ef37cebff77ccb1e9f86823910537d6580071668








Thanks to kralverde and the Ravencoin project for collecting some of this information
Copyright 2022,2023 by Hans Schmidt for the revisions