# Assets¶

An asset is a named quantity that once issued, is a fixed supply of immutably issued “units” of value. Units can be held by other addresses in the network. They can also be transferred from one address to another. Asset are divisible and fungible, meaning they can be indistinguishably traded and can be divided up to a fixed precision specified on issuance.

Unlike in public ledger technologies, assets in private ledger technologies are on- ledger representations of financial quantities and represent an interpretation of an obligation or ownership which is ultimately settled off-chain. The ledger simply acts as a decentralized bookkeeping system for counterparties to trade and transact on these representations and share the ledger.

An asset is defined by the set of metadata created by it’s issuer:

• Name of asset
• Issuer
• Timestamp
• Total supply
• Holdings map
• Reference unit
• Asset type

## Asset Types¶

An asset is a quantity of units of value. The smallest non-zero amount unit is 0.0000001 represented as an integer value of one. The largest amount unit possible is $$((2^{63})-1)/(10^7)$$ (derived from max int64 scaled down) which is $$922,337,203,685.4775807$$.

In Uplink, the underlying value of an asset is represented by one of three types:

• Discrete (Integers) : 1, 2, 3
• Fractional (Fixed Point) : 1.23, 34.234, 12.501
• Binary (Boolean) : held, not held
Discrete:
Assets which are indivisible and can only be transferred in integral quantities.
Fractional:
Assets divisible up to a fixed precision of decimal points and are used to model real-world currencies.
Binary:
Assets either held or not-held and represent a fixed pool or rights or obligations that is held by a ledger participant.

## Asset References¶

Asset references describe the token of value the asset represents, agreed upon by the issuer and holders of the asset.

 None Unspecified USD US Dollars GBP British Pounds EUR Euros CHF Swiss Francs Token An abstract token Security A security

Example Asset

{
"name": "Gold",
"issuer": "fwBVDsVh8SYQy98CzYpNPcbyTRczVUZ96HszhNRB8Ve",
"issuedOn: 2323414523,
"supply": 5000,
"holdings": {
"fwBVDsVh8SYQy98CzYpNPcbyTRczVUZ96HszhNRB8Ve": 5000
},
"type": "discrete",
"reference": "Token",
}


## Holdings¶

Holdings are a ledger consisting of the percentage of the asset held by individual accounts. Each asset in Uplink maintains a mapping of addresses to holdings that can be modified by Transfer transactions.

This is represented internally as a mapping from account addresses to balances of the asset. The issuer of an asset initializes (allocates) the initial pool of the supply and then can transfer subsets of this balance to themselves (supply -> issuer holdings) or from their holdings to other addresses, distributing the asset into circulation. When a holder recieves an amount of an asset, they are then authorized to “spend” or transfer their holdings to other addresses. The holdings of an asset are always checked before a “spend transaction” is issued to the network and consensus protocol (transaction validation) requires that all spend transactions maintain the internal integrity of the holdings ledger.

The address deviation function for an asset is derived from the asset name, asset issuer address, the timestamp of the transaction creating the asset, the supply, the asset type, and the asset reference. These input are enough to uniquely identify an asset, since the only restriction this imposes on the creation of assets is that an issuer cannot issue an asset of the same name, with the same supply, type, and reference, at the exact same second.

$\text{address}_{ \small \rm \text{ASSET} } = \mathcal{H}( \text{name} \parallel \text{issuer}_{ \small \rm \text{address}} \parallel \text{timestamp} \parallel \text{supply} \parallel \text{reference} \parallel \text{assetType} )$

## Revocation¶

The issuer of the asset has the ability to rescind the existence of this asset, but cannot modify the amounts transferred or held once another account has domain over it.