Key Points
- different token types for different purposes ( security, utility, loyalty incentives etc ) ( see Token Taxonomy Framework )
- different jurisdictions have different legal definitions and regulations for different token types ( still evolving )
- security token - has a defined claim against assets ( like stock ) and issued via ICO or secondary sale
- utility token - used to incentivize participants on a platform, can be used to purchase goods on marketplace
- currency - tokens that can be bought and sold on open marketplaces - may have fixed or variable value ( Ethereum vs Stable coin )
- Fabric does not have a native token infrastructure yet in v2x
References
Reference_description_with_linked_URLs_______________________ | Notes______________________________________________________________ |
---|---|
m Token Economy Examples: Tokenomics | |
m TOIP Trust Over IP | |
m SSI / DID - Self Sovereign Identity | |
m Hyperledger Indy | |
m Hyperledger Aries - identity, data management tools | wallets and more |
https://github.com/InterWorkAlliance/TokenTaxonomyFramework | TTF overview page *** |
https://github.com/interwork-alliance/TokenTaxonomyFramework | TTF |
https://interwork.org/ | Interwork Alliance |
https://www.forbes.com/sites/vipinbharathan/2020/06/07/digital-assets -ecosystem-will-be-powered-by-end-to-end-standards/#1b13be873fd8 | Vipin on Interwork Alliance |
https://defiprime.com/bonding-curve-explained token-bonding-curves-defiprime.com-Bonding Curve Offering Explained | Token Bonding Curves explained |
https://etherisc.com/files/token_mechanics_1.0_en.pdf | Token mechanics for insurance use case |
https://bitscreener.com/news/zealeum-the-blockchain-based-health-and-wellness- platform-announces-its-pre-sale | Zealeum wellness site and tokens |
https://lists.hyperledger.org/g/fabric/message/6228 | FAB token design story |
https://github.com/grepruby/ERC20-Token-On-Hyperledger | FAB ERC-20 token wallet example - github |
https://medium.com/deqode/erc20-tokens-on-hyperledger-b82399b4b969 | FAB ERC-20 token wallet example - medium |
https://github.com/ethereum/eips/issues/1155 | ERC 1155 Multi-token wallet std |
https://blog.enjin.io/erc-1155-token-standard-ethereum/ | ERC 1155 Multi-token wallet std - good article |
https://github.com/ethereum/EIPs/issues/1155 | ERC 1155 Multi-token wallet std - github |
Token references | |
https://invao.org/token-classes-explained-coin-vs-utility-token-vs-security-token/ | Token Types |
https://github.com/token-taxonomy-initiative/TokenTaxonomyFramework | Token Taxonomy Framework |
https://medium.com/deqode/erc20-tokens-on-hyperledger-b82399b4b969 | Sample token framework example for HLF and ERC20 wallets |
https://blog.oceanprotocol.com/how-to-monetize-tokenize-data-8f860e405773 | Monetize and Tokenize data article 1 - ocean protocol |
https://oceanprotocol.com/protocol/#papers | Ocean papers |
https://docs.oceanprotocol.com/concepts/architecture/ | Ocean Architecture |
https://github.com/oceanprotocol/OEPs/tree/master/10 | Ocean Protocol github |
https://docs.oceanprotocol.com/concepts/wallets/ | Ocean Wallet basics |
https://docs.oceanprotocol.com/tutorials/react-setup/ | custom React app to run Ocean protocol |
https://metamask.io/ | plugin to run DApps in a browser |
https://blog.sfox.com/what-are-utility-tokens-and-how-will-they-be-regulated-89cfb6bb2a45 | Potential regulation of utility tokens by SEC |
Token Platforms | |
Use Stellar to Manage Asset Token Life cycle effectively | Use Stellar to Manage Asset Token Life cycle effectively *** |
https://www.exodus.io/blog/stellar-vs-ripple/ | Stellar vs Ripple |
https://www.bitdegree.org/tutorials/stellar-vs-ripple/ | Choose Stellar or Ripple? |
Stellar | fast, affordable service, more flexibility |
https://www.stellar.org/developers | Stellar developers |
https://developers.stellar.org/docs/anchoring-assets/anchor-platform/ | The Stellar Anchor Platform accomplishes this by implementing the ecosystem's standardized APIs (SEPs) for wallets, exchanges, and other applications to consume, while offering a set of backend APIs for businesses to provide information specific to them, such as transaction fees, exchange rates, and off-chain transaction statuses. |
https://developers.stellar.org/docs/anchoring-assets/enabling-cross-border-payments/ | Stellar Cross Border Payments Supporting cross-border payments of an asset through the Stellar network requires cooperation between a sending anchor (SA) and receiving anchor (RA). In this section, we'll only go over the steps necessary for building a SEP-31 receiving anchor, but documentation for building a sending anchor is in development. |
https://developers.stellar.org/docs/run-core-node/ | Run a Stellar Core Node ( if needed ) operate network Stellar is a peer-to-peer network made up of nodes, which are computers that keep a common distributed ledger, and that communicate to validate and add transactions to it. Nodes use a program called Stellar Core — an implementation of the Stellar Consensus Protocol — to stay in sync as they work to agree on the validity of transaction sets and to apply them to the ledger. Generally, nodes reach consensus, apply a transaction set, and update the ledger every 3-5 seconds. you need to set up to connect to the peer-to-peer network and store the state of the ledger in a SQL database. |
https://developers.stellar.org/docs/run-api-server/ | Run a Stellar Horizon API Server ( if needed ) to access Stellar net by api Horizon is responsible for providing an HTTP API to data in the Stellar network. It ingests and re-serves the data produced by the Stellar network in a form that is easier to consume by the average application relative to the performance-oriented data representations used by Stellar Core. This guide describes how to administer a production Horizon 2.0+ instance we do not endorse running Horizon backed by a standalone Stellar Core instance, and especially not by a validating Stellar Core Running Horizon within your own infrastructure provides a number of benefits. You can:
|
https://developers.stellar.org/docs/tools-and-sdks | Stellar Tools and SDKs and Wallets Freighter - a non-custodial wallet given Stellar holds the asset tokens SDF’s flagship non-custodial wallet extension that enables you to sign Stellar transactions via your browser. Go monorepo The two key libraries for interacting with Horizon are |
https://www.stellar.org/developers/guides/ | Development guides |
https://www.stellar.org/developers/guides/concepts/fees.html | Transaction fees |
https://www.stellar.org/developers/reference/ | Stellar Client API supports Java, JS, GO |
Ripple | fast, affordable service |
https://xrpl.org/ | Ripple developer site for XRP Ledger |
https://xpring.io/ | Xpring.io - open money platform Interledger connects other ledgers ( ILP ) Java, JS, Swift languages |
Gamification references | |
https://www.forte.io/ | Forte.io gaming economies on tokens, wallets, blockchains |
Key Concepts
Token Types for different use cases
Design process can determine the need for different token types in the disbursement solution
Token Taxonomy Initiative defines a Token Taxonomy Framework
https://github.com/interwork-alliance/TokenTaxonomyFramework
https://github.com/token-taxonomy-initiative/TokenTaxonomyFramework
http://tokentaxonomy.org/wp-content/uploads/2019/11/TTF-Overview.pdf
Examples of tokens defined in version 1 specification
Token Taxonomy Framework
https://github.com/interwork-alliance/TokenTaxonomyFramework
https://github.com/token-taxonomy-initiative/TokenTaxonomyFramework
token-taxonomy-framework-github.pdf
The taxonomy is comprised of artifacts that are categorized into 5 basic types:
- Base Types: the foundation of any token is its base token type.
- Behaviors: capabilities or restrictions that can apply to a token.
- Behavior Groups: a bundle of behaviors that are frequently used together.
- Property Sets: a defined property or set of properties that - when applied to a token - can support a value that can be queried.
- Token Templates: a composition of artifacts brought together to create a classification and detailed specification. There are 2 parts of a template, the formula and definition.
Hierarchy
Token behaviors
A behavior may also include things like a sequence diagram to clearly define how a behavior is invoked and how the behavior responds using the defined control message definitions.
Token formulas - token definition language
The formula uses brackets, braces and parentheses to combine the token parts and starts with the base token type:
Token Base Type | Visual Format | Tooling Format |
---|---|---|
Fungible | τF | tF |
Non-fungible | τN | tN |
Unique Fungible | τF' | tF' |
Unique Non-fungible | τN' | tN' |
Hybrid – class in (,) | ||
Non-fungible with a class of fungibles | τN(τF) | [tN](tF) |
Fungible with a class of non-fungibles | τF(τN) | [tF](tN) |
Fungible with a class of non-fungibles and fungibles | τF(τN, τF) | [tF](tN,tF) |
Non-fungible with a class of fungibles and non-fungibles | τN(τF, τN) | tN](tF,tN) |
Non-fungible with a class of fungibles and non-fungibles, with each child having formulas | τN([τF], [τN)] | [tN]([tF],[tN]) |
etc. |
Examples of formulas
A token formula uses the taxonomy symbols, which are references to artifacts, can be used to represent a token that is useful for tooling allowing grouping and structures to be represented. Some examples:
Token Types
https://invao.org/token-classes-explained-coin-vs-utility-token-vs-security-token/
But it’s actually quite simple: Coins are a currency, utility tokens offer a right to use a product or service, and security tokens represent an investment product.
- Security token is an investment with a defined stake in assets ( eg company eps, fixed assets etc )
- Coin token is a digital currency ( an alternative to fiat currency )
- coins bought and sold through exchanges for a fee
- coins can have fluctuating value ( value store ) like Ethereum, Stellar etc
- coins can have stable values ( value transfer ) like USD coin etc
- Utilitiy tokens have specific value in a defined context ( eg buy a product or use a service in online marketplace etc )
- To use a utility token outside the platform, it is normally redeemed for digital currency or fiat currency unless there is an ecosystem that accepts it
- Investors can buy these tokens and use them as a means of payment on the platform developed by the issuing company.
- Single Use tokens
- issued by party A to party B for party B to execute a transaction on A's blockchain using a smart contract one time only
What are utlity tokens
https://blog.sfox.com/what-are-utility-tokens-and-how-will-they-be-regulated-89cfb6bb2a45
Using Utility Tokens
A Uber token, for example, could be used to pay for a ride with a Uber car. But not for anything else. If you wanted to use the Uber token to buy another product or service, you would first have to exchange it against either fiat money or a crypto-coin such as bitcoin.
Token Classifications
https://github.com/token-taxonomy-initiative/TokenTaxonomyFramework
The TTF classifies tokens using five characteristics they possess, allowing tokens that share the same characteristics to be classified together. These are foundational token concepts that can be applied to most tokens.
- Token Type: Fungible or Non-Fungible. The difference between the two is clarified later in this document
- Token Unit: Fractional, Whole or Singleton indicates if a token can be subdivided into smaller fractions, usually represented as decimals, or if there can be a quantity greater than 1. For example, a $1 bill can sub-divided to 2 decimal places and can be broken into four .25¢ coins (or a number of different variation of coins) and is thus Fractional. Whole means no subdivision allowed - just whole numbers quantities - and a Singleton has a quantity of 1 with no subdivision.
- Value Type: Intrinsic or Reference indicates if the token itself is a value, like a crypto currency, or if it references a value elsewhere, like a property title.
- Representation Type: Common or Unique. Common tokens share a single set of properties, are not distinct from one another, and balances are recorded in a central place. These tokens are simply represented as a balance or quantity attributed to an owner’s address where all the balances are recorded on the same balance sheet. A unique token has its own identity, can have unique properties, and be individually traced. Common tokens are like money in a bank account and Unique tokens are like money in your pocket.
- Template Type: Single or Hybrid, covered later, but is an indication of any parent/child relationships or dependencies between tokens.
Taxonomy Artifacts, Categories, and Templates
The taxonomy is comprised of artifacts that are categorized into 5 basic types:
- Base Types: the foundation of any token is its base token type.
- Behaviors: capabilities or restrictions that can apply to a token.
- Behavior Groups: a bundle of behaviors that are frequently used together.
- Property Sets: a defined property or set of properties that - when applied to a token - can support a value that can be queried.
- Token Templates: a composition of artifacts brought together to create a classification and detailed specification. There are 2 parts of a template, the formula and definition.
Token transfer requests
Base Token Types
Fungible
Physical cash or a crypto currency is a good example of a fungible token. These tokens have interchangeable value with one another, where any quantity of them has the same value as another equal quantity if they are in the same class or series. A fungible token is identified by τF symbol.
Non-fungible
A non-fungible token is unique. Hence a non-fungible token is not interchangeable with other tokens of the same type as they typically have different values. A property title is a good example of a non-fungible token where the title to a broken-down shack is not of the same value as as the title to a mansion.
A fungible token is identified by τN.
Representation Type
Tokens can have either a common representation, sometimes called account or balance tokens, or unique representation, or UTXO (unspent transaction output). This distinction might seem subtle but is important when considering how tokens can be traced and if they can have isolated and unique properties.
Common tokens share a single set of properties, are not distinct from one another, and balances are recorded in a central place. These tokens are simply represented as a balance or quantity attributed to an owner address where all the balances are recorded on the same balance sheet. This balance sheet is distributed, not centralized, and rather simplified. Common tokens have the advantage of easily sharing a value like a "SKU" where the change in the value is immediately reflected for all tokens. Common tokens cannot be individually traced, only their balances between accounts can.
Bank accounts are an example of a common fungible token.
Unique tokens have their own identities and can be individually traced. Each unique token can carry unique properties that cannot be changed in one place and cascade to all and their balances must be summed. Bank notes and paper bills are interchangeable but have unique properties like a serial number and are therefore examples of unique fungible tokens.
A unique token is identified by ‘
following the type symbol, i.e. τF'.
Hybrids
Hybrid tokens combine a parent token and one or more child token(s) to model different use cases. Hybrids can get nested where a child token is also a parent for more complex scenarios. Here are some examples.
Shared Non-fungible Parent with Fungible classes
These tokens have a non-fungible parent or base token and can have multiple classes of child tokens. An example of this hybrid is a rock concert, where the parent token represents the specific date or showing of the concert with a fungible child for general admission and a non-fungible child for "reserved" section seating. Represented as τN(τF, τN).
The owner of an instance of this token will possess the child token that pulls along the parent and is presented at the concert gate for admission. If the parent token date matches the current date the token is valid for admission. If the child token that is owned is in the reserved seating section, the owner has the right to sit in the seat indicated by the token.
Fungible Parent class owns or has many non-fungible Children
A token can be the parent of any number of tokens to represent the compound value of the child tokens. For example, a τF(τN) is a fungible token parent that is the owner of one or more non-fungible tokens. An owner of an instance of this parent would own a percentage of the pool of non-fungible child tokens. A mortgage-backed security is a good example of this type of hybrid token.
Token properties
Token Behaviors
Token Taxonomy Framework pdf from githun
https://drive.google.com/open?id=1CjNlFeoTMG9jH78Fgp5fcY8DXXipR3Aw
Sequence diagram shows process to mint token
Token usage models
Reward systems
Reputation systems
Custom Tokens on HLF example 1 - for ERC20 wallet
https://medium.com/deqode/erc20-tokens-on-hyperledger-b82399b4b969
Sample token framework example for HLF and ERC20 wallets
Github links
https://github.com/grepruby/ERC20-Token-On-Hyperledger/tree/v1.0/chaincode/token_chaincode/node
https://github.com/grepruby/ERC20-Token-On-Hyperledger/tree/v1.0/chaincode/token_chaincode/node/tokens
it sets up a token network based on Fabric and shows the use of a smart contract for using ERC20 token (still a token and principles/functions of using it still apply etc...)
Issue custom tokens on the Stellar Network for use in HLF solutions
https://www.lumenauts.com/guides/how-to-issue-a-token-or-ico-on-stellar
- Issuing Account. Visit the Stellar Account Viewer and generate a new account. ...
- Distribution Account. In the Stellar Account Viewer, generate another account. ...
- Trust the Issuer. ...
- Change Trust. ...
- Complete Transaction. ...
- Generate Tokens. ...
- Why Limit the Supply. ...
- Limit Transaction.
tokens-lumenauts.com-How to Issue a Token or ICO on Stellar.pdf
Using custom tokens on HLF network solutions
setup for the tokens
The custom tokens should be standard ERC20 tokens for wallets
Create users, identities, ERC20 wallets.
Using the tokens
Then distribute the tokens in the HLF app: sell or donate to users as rewards
Users can buy, sell, donate on the network using tokens
Burn the tokens - buy back the tokens from users at a fixed price or ??
Interwork Token Architecture
The value exchange layered protocol for Interwork opens many doors
Digital Assets Ecosystem Will Be Powered By End-To-End Standards Vipin |
---|
These tokens are often marooned in platforms with no way to interwork with other tokens or payment systems or existing financial market infrastructure. Releasing the tokens from their current prisons and allowing them to interoperate will unleash business value. IWA standards are meant to be platform and technology neutral and not limited to blockchain or distributed ledger technologies. IWA focuses on the interoperation of value represented by tokens, by addressing three layers of the problem. Each layer is at a different level in the business stack. Starting from the base,
Token templates can make it easier for business analysts to model tokens and behaviors: For example a token that can be minted and transferred has behaviors like mint and transfer. A business analyst models a token using a graphical front end, which in turn generates artifacts that span business specifications and code. This creates a seamless way to model the token from concept to code. Templates can be developed by domain Multi-party contracts can leverage existing systems like CDM IWA will benefit by looking at work that has already been done in the CDM or the Common Domain Model. CDM although first developed by ISDA, the International Swaps and Derivatives Association is now open source. CDM is being generalized for all types of contracts and is platform neutral. The same model can be used for other domains ISDA CDM fact sheethttps://www.isda.org/a/z8AEE/ISDA-CDM-Factsheet.pdf Create standards for market -driven analysis of contractually shared data for regulatory reporting and extraction of business value. This analysis will use privacy preserving methods. One can assume zero-knowledge proofs or homomorphic techniques. In this too, existing standards need to be looked at and integrated into the IWA. Roles will be mapped to sets of token behaviors identities can be mapped to roles by: automatic or manual assignments |
Monetize and Tokenize Data
Ocean Protocol Network
https://blog.oceanprotocol.com/how-to-monetize-tokenize-data-8f860e405773
four building blocks needed to make this vision of open data sharing a reality. This open system allows every data provider to monetize and tokenize their data, so that data itself could be a sustainable business model. Once I explain how data can be used more openly, can we then apply the tools of finance to it?
Ocean architecture
https://docs.oceanprotocol.com/concepts/architecture/
An overview of the architecture of Ocean Protocol.
https://docs.oceanprotocol.com/concepts/secret-store/
Ocean Software components
https://docs.oceanprotocol.com/concepts/components/
Keeper
A computer running an EVM-compatible blockchain client (such as Parity Ethereum) where the associated blockchain network is running the Ocean Protocol keeper-contracts (smart contracts).
Secret Store
A Parity Secret Store: software for distributed key pair generation, distributed key storage, and threshold retrieval. It’s used to store asset access-control keys.
Acquarius item metadata manager
Marketplaces run Aquarius to store and manage metadata about the assets available in their marketplace. It provides an HTTP API for interacting with an off-chain database (sometimes called “OceanDB”).
Ocean DB Drivers
Aquarius supports several options for the off-chain database (OceanDB), including Elasticsearch and MongoDB. One can add support for another off-chain database by creating a new driver similar to the existing OceanDB drivers.
Birzio to manage access to market assets
Publishers run Brizo to manage interactions with marketplaces and consumers. It interacts with the publisher’s cloud and/or on-premise infrastructure.
The most basic scenario for a publisher is to provide access to the assets the publisher owns or manages, but Brizo can do much more.
Events Handler
Brizo communicates with the Events Handler to deal with Keeper Contracts events.
The Events Handler monitors Service Execution Agreement (SEA) events and acts as a provider agent to grant access and release rewards for the publisher/provider. This is a critical part in the process of consuming data sets in the Ocean Protocol network.
Every provider in the network must run some sort of an events handler to be able to fulfill the access condition of an Access
service in a Service Execution Agreement.
Osmosis Drivers
Brizo supports several options for file storage, including Azure Storage, Amazon S3 and on-premise storage. One can add support for another file storage option by creating a new driver similar to one of the existing Osmosis drivers.
Squid Libraries
Client libraries used by applications (such as Pleuston or Jupyter notebooks) to interact with Ocean components, including Keepers, Aquarius nodes, Brizo nodes, etc.
Commons Marketplace
An online example marketplace/publisher for consumers to explore, download, and publish open data sets in the Pacific Network. Implemented using React and squid-js.
For more information, see the blog post about Commons Marketplace.
Pleuston example marketplace publisher
An example marketplace/publisher front-end for developers to explore, download, and publish assets in an Ocean Protocol network. Implemented using React and squid-js.
Ocean Tutorials
https://docs.oceanprotocol.com/tutorials/introduction/
These tutorials cover:
- The basics of using wallets with Ocean Protocol.
- How to set up storage (e.g. in Azure or AWS) to be used with Ocean Protocol.
- Examples of using squid-js (JavaScript), squid-py (Python) and squid-java to publish a data set, to get & use a data set, and to do other things.
Potential Value Opportunities
Potential Challenges
Candidate Solutions
Step-by-step guide for Example
sample code block