Introduction

The following actions break down the construction of a Tokenized protocol message. The action is constructed by building a single string from each of the elements in order. Each field within the action is given a specific type, including standard types and compound types.

See the Transactions article for details on how to construct a complete transaction.

Available Actions

Contract Offer

Allows the administration to tell the smart contract what they want the details (labels, data, T&C's, etc.) of the Contract to be on-chain in a public and immutable way. The Contract Offer action 'initializes' a generic smart contract that has been spun up by either the smart contract operator or the administration. This on-chain action allows for the positive response from the smart contract with either a Contract Formation Action or a Rejection Action.

Action Code C1
Field Type Description
ContractName varchar(tiny) Can be any unique identifying string, including human readable names for branding/vanity purposes. Contract identifier (instance) is the bitcoin public key hash address. If the public address is lost, then the administration will have to reissue the entire contract, Asset Definition and tokens with the new public address. Smart contracts can be branded and specialized to suit any terms and conditions. Example: Tesla - Shareholder Agreement
BodyOfAgreementType uint(1) 1 - SHA-256 Hash, 2 - Tokenized Body of Agreement Format Body of Agreement - Amendments can be restricted to a vote. Example: 1
BodyOfAgreement varbin(medium) SHA-256 hash of the body of the agreement (full contract in pdf format or the like) or the full terms and conditions of an agreement in the Tokenized Body of Agreement format. This is specific to the smart contract and relevant Assets. Legal and technical information.
ContractType varchar(tiny) Describes the purpose of the contract. Example: Shareholder Agreement
SupportingDocs Document[tiny] Supporting documents that are important to the contract.
GoverningLaw fixedchar(5) 5 Letter Code to identify which governing law the contract will adhere to. Disputes are to be settled by this law in the jurisdiction specified below. Private dispute resolution organizations can be used as well. A custom code just needs to be defined. Governing Law - Amendments can be restricted to a vote. Example: USA
Jurisdiction fixedchar(5) Legal proceedings/arbitration will take place using the specified Governing Law in this location. Jurisdiction - Amendments can be restricted to a vote. Example: US-CA
ContractExpiration Timestamp All actions related to the contract will cease to work after this timestamp. The smart contract will stop running. This will allow many token use cases to be able to calculate total smart contract running costs for the entire life of the contract. Eg. an issuer is creating tickets for an event on the 5th of June 2018. The smart contract will facilitate exchange and send transactions up until the 6th of June. Wallets can use this to forget tokens that are no longer valid - or at least store them in an 'Expired' folder. Contract Expiration - Amendments can be restricted to a vote.
ContractURI varchar(tiny) Points to an information page that also has a copy of the Contract. Anyone can go to the website to have a look at the price/token, information about the issuer (company), information about the asset, legal information, etc. There will also be a way for token owners to vote on this page and contact details with the issuer/tokenized companies. Could be a IPv6/IPv4, or txn-id for on-chain information or even a public address (DNS). Example: https://tokenized.com/Contract/3qeoSCg7JmfSnJesJFojj
Issuer Entity The issuer of this contract.
IssuerLogoURL varchar(tiny) The URL of the issuer's logo. Example: https://example.com/images/logo.png
ContractOperatorIncluded bool If true, then the second input is a contract operator. If false, then all additional inputs are just funding and "includes" fields are skipped in serialization.
ContractOperator Entity An additional entity with operator access to the contract.
AdminOracle Oracle The oracle that provided the signature used to verify the administration's identity.
AdminOracleSignature varbin(tiny) The ECDSA signature provided by the oracle specified. The first input must correspond to the administration entity and, if a contract operator is included, the second input must correspond to the contract operator entity.
AdminOracleSigBlockHeight uint(4) The block height of the block hash used in the oracle signature.
ContractFee uint(8) Satoshis required to be paid to the contract for each asset action.
VotingSystems VotingSystem[tiny] A list of voting systems.
ContractPermissions varbin(small) A set of permission objects containing switches and field references that define the permissions for modifying this contract. See the Permission documentation for more detail.
RestrictedQtyAssets uint(8) Number of Assets (non-fungible) permitted on this contract. 0 if unlimited which will display an infinity symbol in UI Qty of Assets - Amendments can be restricted to a vote. Example: 1
AdministrationProposal bool Set to true if the administration is permitted to make proposals outside of the smart contract scope. General Governance Example: true
HolderProposal bool Set to true if a holder is permitted to make proposals outside of the smart contract scope. Example: true
Oracles Oracle[tiny] A list of oracles that provide approval for all token transfers for all assets under the contract.
MasterAddress Address The address of the contract's master key. This key has the ability to change the active contract address in case of a security failure with the active contract key.
Transaction Summary
Index Input Description
0 Administration's Public Address The smart contract sets the administration's public address with whatever public address is in Index 0 of the first valid Contract Offer. From then on, the SC will only respond to 'commands' (request actions) from this address with respect to actions that are controlled by the administration according to the protocol.
1 Contract Operator's Public Address (Optional) Can also be used as a cold storage backup for the issuer. This is important if the issuer wants to be able to change their address as changes to the issuer or operator pkh in an amendment require signatures from both the issuer and the operator pkhs. The one exception to this rule, the Contract Operator can nominate a secondary controlling public address that can act on behalf of the issuer for issuer related requests. Typically this will be the Smart Contract Operator.
Index Output Description
0 Contract Public Address A contract address that has no other contract associated to it already.

Contract Formation

This txn is created by the contract (smart contract/off-chain agent/token contract) upon receipt of a valid Contract Offer Action from the administration. The smart contract will execute on a server controlled by the administration, or a smart contract operator on their behalf.

Action Code C2
Field Type Description
ContractName varchar(tiny) Can be any unique identifying string, including human readable names for branding/vanity purposes. Contract identifier (instance) is the bitcoin public key hash address. If the public address is lost, then the administration will have to reissue the entire contract, asset definition and tokens with the new public address. Smart contracts can be branded and specialized to suit any terms and conditions. Example: Tesla - Shareholder Agreement
BodyOfAgreementType uint(1) 1 - SHA-256 Hash, 2 - Tokenized Body of Agreement Format Body of Agreement - Amendments can be restricted to a vote. Example: 1
BodyOfAgreement varbin(medium) SHA-256 hash of the body of the agreement (full contract in pdf format or the like) or the full terms and conditions of an agreement in the Tokenized Body of Agreement format. This is specific to the smart contract and relevant Assets. Legal and technical information.
ContractType varchar(tiny) Describes the purpose of the contract. Example: Shareholder Agreement
SupportingDocs Document[tiny] Supporting documents that are important to the contract.
GoverningLaw fixedchar(5) 5 Letter Code to identify which governing law the contract will adhere to. Disputes are to be settled by this law in the jurisdiction specified below. Private dispute resolution organizations can be used as well. A custom code just needs to be defined. Governing Law - Amendments can be restricted to a vote. Example: USA
Jurisdiction fixedchar(5) Legal proceedings/arbitration will take place using the specified Governing Law in this location. Jurisdiction - Amendments can be restricted to a vote. Example: US-CA
ContractExpiration Timestamp All actions related to the contract will cease to work after this timestamp. The smart contract will stop running. This will allow many token use cases to be able to calculate smart contract running costs. Eg. an issuer is creating tickets for an event on the 5th of June 2018. The smart contract will facilitate exchange and send transactions up until the 6th of June. Wallets can use this to forget tokens that are no longer valid - or at least store them in an 'Expired' folder. Contract Expiration - Amendments can be restricted to a vote. Example: Wed May 09 2018 00:00:00 GMT+1000 (AEST)
ContractURI varchar(tiny) Length 0-255 bytes. 0 is valid. Points to an information page that also has a copy of the Contract. Anyone can go to the website to have a look at the price/token, information about the Issuer (company), information about the Asset, legal information, etc. There will also be a way for Token Owners to vote on this page and contact details with the Issuer/tokenized companies. Could be a IPv6/IPv4, an IPFS address (hash) or txn-id for on chain information or even a public address (DNS). Example: https://tokenized.com/Contract/3qeoSCg7JmfSnJesJFojj
Issuer Entity The issuer of this contract.
IssuerLogoURL varchar(tiny) The URL of the issuer's logo. Example: https://example.tld/images/logo.png
ContractOperator Entity An additional entity with operator access to the contract.
AdminOracle Oracle The oracle that provided the signature used to verify the administration's identity.
AdminOracleSignature varbin(tiny) The ECDSA signature provided by the oracle specified. The first input must correspond to the administration entity and, if a contract operator is included, the second input must correspond to the contract operator entity.
AdminOracleSigBlockHeight uint(4) The block height of the block hash used in the oracle signature.
ContractFee uint(8) Satoshis required to be paid to the contract for each asset action.
VotingSystems VotingSystem[tiny] A list voting systems.
ContractPermissions varbin(small) A set of permission objects containing switches and field references that define the permissions for modifying this contract. See the Permission documentation for more detail.
RestrictedQtyAssets uint(8) Number of Assets (non-fungible) permitted on this contract. 0 if unlimited which will display an infinity symbol in UI Qty of Assets - Amendments can be restricted to a vote. Example: 1
AdministrationProposal bool Set to true if the administration is permitted to make proposals outside of the smart contract scope. General Governance Example: true
HolderProposal bool Set to true if a holder is permitted to make proposals outside of the smart contract scope. Example: true
Oracles Oracle[tiny] A list of oracles that provide approval for all token transfers for all assets under the contract.
MasterAddress Address The address of the contract's master key. This key has the ability to change the active contract address in case of a security failure with the active contract key.
ContractRevision uint(4) A counter for the number of times this contract has been revised using an amendment action. Can't be changed by the administration or smart contract operator. Example: 0
Timestamp Timestamp Timestamp in nanoseconds of when the smart contract created the action. Cannot be changed by the administration, operator. Smart contract controls.
Transaction Summary
Index Input Description
0 Contract Public Address The related contract address.
Index Output Description
0 Contract Public Address Required so that users can monitor transactions to the contract for updates to contract/assets.

Contract Amendment

The administration can initiate an amendment to the contract establishment metadata. The ability to make an amendment to the contract is restricted by the Authorization Flag set on the current revision of Contract Formation action.

Action Code C3
Field Type Description
ChangeAdministrationAddress bool Used to change the administration address. The new administration address must be in the input[1] position. A change of the administration or operator address requires both the operator and the administration address to be in the inputs (both signatures) of the Contract Amendment action. Example: 1
ChangeOperatorAddress bool Used to change the smart contract operator address. The new operator address must be in the input[1] position, unless the administration is being changed too, then it is in input[2]. A change of the administration or operator address requires both the operator and the administration address to be in the inputs (both signatures) of the Contract Amendment action. Example: 1
ContractRevision uint(4) Counter 0 to (2^32)-1 Example: 42
Amendments Amendment[tiny] A collection of modifications to perform on this contract.
RefTxID TxId The Bitcoin transaction ID of the associated result action that permitted the modifications. See Governance for more details.
Transaction Summary
Index Input Description
0 Administration's Public Address This action can only come from the administration.
1 New Administration Public Address Only treated as the new administration address when the Change Administration Address flag is set to true.
Index Output Description
0 Contract Public Address The related contract address.

Static Contract Formation

Static Contract Formation Action

Action Code C4
Field Type Description
ContractName varchar(tiny) Can be any unique identifying string, including human readable names for branding/vanity purposes. Contract identifier (instance) is the bitcoin public address. If the public address is lost, then the administration will have to reissue the entire contract, Asset Definition and tokens with the new public address. Smart contracts can be branded and specialized to suit any terms and conditions. Example: Tesla - Shareholder Agreement
ContractCode ContractCode 32 randomly generated bytes. Each Contract Code should be unique. The Contract ID will be human facing and will be the Contract Code, with a checksum, encoded in base58 and prefixed by 'CON'. Contract ID = CON + base58(ContractCode + checksum). Eg. Contract ID = 'CON18RDoKK7Ed5zid2FkKVy7q3rULr4tgfjr4'
BodyOfAgreementType uint(1) 1 - SHA-256 Hash, 2 - Tokenized Body of Agreement Format Body of Agreement - Amendments can be restricted to a vote. Example: 1
BodyOfAgreement varbin(medium) SHA-256 hash of the body of the agreement (full contract in pdf format or the like) or the full terms and conditions of an agreement in the Tokenized Body of Agreement format. This is specific to the smart contract and relevant Assets. Legal and technical information.
ContractType varchar(tiny) Describes the purpose of the contract. Example: Non-Disclosure Agreement
SupportingDocs Document[tiny] Supporting documents that are important to the contract.
ContractRevision uint(4) Counter 0 to (2^32)-1 Example: 0
GoverningLaw fixedchar(5) 5 Letter Code to identify which governing law the contract will adhere to. Disputes are to be settled by this law in the jurisdiction specified below. Private dispute resolution organizations can be used as well. A custom code just needs to be defined. Example: USA
Jurisdiction fixedchar(5) Legal proceedings/arbitration will take place using the specified Governing Law in this location. Example: US-CA
EffectiveDate Timestamp Start date of the contract.
ContractExpiration Timestamp All actions related to the contract will cease to work after this timestamp. The smart contract will stop running. This will allow many token use cases to be able to calculate smart contract running costs. Eg. an issuer is creating tickets for an event on the 5th of June 2018. The smart contract will facilitate exchange and send transactions up until the 6th of June. Wallets can use this to forget tokens that are no longer valid - or at least store them in an 'Expired' folder.
ContractURI varchar(tiny) Length 0-255 bytes. Points to an information page that also has a copy of the Contract. Anyone can go to the website to have a look at the price/token, information about the issuer (company), information about the Asset, legal information, etc. There will also be a way for token owners to vote on this page and contact details with the issuer/tokenized companies. Could be a IPv6/IPv4, or txn-id for on chain information or even a public address (DNS). Example: https://tokenized.com/Contract/3qeoSCg7JmfSnJesJFojj
PrevRevTxID TxId The Tx-ID of the previous contract revision.
Entities Entity[tiny] A list of legal entities associated with this contract.
EntityOracle Oracle The oracle that provided the signature used to verify the entity's identity.
EntityOracleSignature varbin(tiny) The ECDSA signature provided by the oracle specified. For N entities, the first N inputs must correspond with those entities.
EntityOracleSigBlockHeight uint(4) The block height of the block hash used in the oracle signature.
Transaction Summary
Index Input Description
0 Issuer or Party X Public Address Any number of involved parties with this contract.

Contract Address Change

This txn is signed by the master contract key defined in the contract formation and changes the active contract address which the contract uses to receive and respond to requests. This is a worst case scenario fallback to only be used when the contract private key is believed to be exposed.

Action Code C5
Field Type Description
NewContractAddress varbin(small) The address to be used by all future requests/responses for the contract.
Timestamp Timestamp Timestamp in nanoseconds of when the action was created.
Transaction Summary
Index Input Description
0 Contract Master Public Address The contract master address.
Index Output Description
0 Contract Public Address Currently active, and soon to be deactivated, contract address.

Asset Definition

This action is used by the administration to define the properties/characteristics of the asset (token) that it wants to create. An asset has a unique identifier called AssetID = AssetType + base58(AssetCode + checksum). An asset is always linked to a contract that is identified by the public address of the Contract wallet.

Action Code A1
Field Type Description
AssetPermissions varbin(small) A set of permission objects containing switches and field references that define the permissions for modifying this asset. See the Permission documentation for more detail.
TransfersPermitted bool Set to true if transfers are permitted between two parties, otherwise set to false to prevent peer-to-peer transfers. Example: 1
TradeRestrictions Polity[small] If specified, the asset can only be traded within the specified trade restriction zone. For example, AUS would restrict to Australian residents only.
EnforcementOrdersPermitted bool Set to true if the administration is permitted to make enforcement orders on user tokens and balances, otherwise set to false to disable this feature. Example: 1
VotingRights bool When false holders of this asset will not be able to vote for tokens of this asset even on voting systems in which vote multiplers are not permitted. Example: true
VoteMultiplier uint(1) Multiplies a vote by the specified integer. Where 1 token is equal to 1 vote with a 1 for vote multipler (normal), 1 token = 3 votes with a multiplier of 3, for example. If zero, then holders of this asset don't get any votes for their tokens. Example: 3
AdministrationProposal bool Set to true if the administration is permitted to make proposals outside of the smart contract scope. General Governance Example: true
HolderProposal bool Set to true if a holder is permitted to make proposals outside of the smart contract scope. Example: true
AssetModificationGovernance uint(1) Supported values: 1 - Contract-wide Asset Governance. 0 - Asset-wide Asset Governance. If a referendum or initiative is used to propose a modification to a subfield controlled by the asset permissions, then the vote will either be a contract-wide vote (all assets vote on the referendum/initiative) or an asset-wide vote (only this asset votes on the referendum/initiative) depending on the value in this subfield. The voting system specifies the voting rules. Example: 1
TokenQty uint(8) The number of tokens to issue with this asset. Set to greater than zero for fungible tokens. If the value is 1 then it becomes a non-fungible token, where the contract would have many assets. Set to 0 to represent a placeholder asset, where tokens are to be issued later, or to represent a decomissioned asset where all tokens have been revoked. Example: 1000000
AssetType AssetType A code representing the type of asset and the structure of the payload.
AssetPayload varbin(small) A custom payload that contains meta data about this asset. Payload structure and length is dependent on the asset type chosen. See asset documentation for more details.
Transaction Summary
Index Input Description
0 Administration's Public Address This action can only come from the administration.
Index Output Description
0 Contract Public Address The contract that this asset should be assigned to. Must include enough for the responding action.

Asset Creation

This action creates an asset in response to the administration's instructions in the Definition Action.

Action Code A2
Field Type Description
AssetCode AssetCode A unique code that is used to identify the asset. It is generated by hashing the contract public key hash and the asset index. SHA256(contract PKH + asset index) Cannot be changed by the administration, operator or smart contract.
AssetIndex uint(8) The index of the asset within the contract. First asset is zero, second is one. Used to derive the asset code. Example: 0
AssetPermissions varbin(small) A set of permission objects containing switches and field references that define the permissions for modifying this asset. See the Permission documentation for more detail.
TransfersPermitted bool Set to true if transfers are permitted between two parties, otherwise set to false to prevent peer-to-peer transfers. Example: 1
TradeRestrictions Polity[small] If specified, the asset can only be traded within the specified trade restriction zone. For example, AUS would restrict to Australian residents only.
EnforcementOrdersPermitted bool Set to true if the administration is permitted to make enforcement orders on user tokens and balances, otherwise set to false to disable this feature. Example: 1
VotingRights bool When false holders of this asset will not be able to vote for tokens of this asset even on voting systems in which vote multiplers are not permitted. Example: true
VoteMultiplier uint(1) Multiplies a vote by the specified integer. Where 1 token is equal to 1 vote with a 1 for vote multipler (normal), 1 token = 3 votes with a multiplier of 3, for example. If zero, then holders of this asset don't get any votes for their tokens. Example: 3
AdministrationProposal bool Set to true if the administration is permitted to make proposals outside of the smart contract scope. General Governance Example: true
HolderProposal bool Set to true if a holder is permitted to make proposals outside of the smart contract scope. Example: true
AssetModificationGovernance uint(1) Supported values: 1 - Contract-wide Asset Governance. 0 - Asset-wide Asset Governance. If a referendum or initiative is used to propose a modification to a subfield controlled by the asset permissions, then the vote will either be a contract-wide vote (all assets vote on the referendum/initiative) or an asset-wide vote (only this asset votes on the referendum/initiative) depending on the value in this subfield. The voting system specifies the voting rules. Example: 1
TokenQty uint(8) The number of tokens to issue with this asset. Set to greater than zero for fungible tokens. If the value is 1 then it becomes a non-fungible token, where the contract would have many assets. Set to 0 to represent a placeholder asset, where tokens are to be issued later, or to represent a decomissioned asset where all tokens have been revoked. Example: 1000000
AssetType AssetType A code representing the type of asset and the structure of the payload.
AssetPayload varbin(small) A custom payload that contains meta data about this asset. Payload structure and length is dependent on the asset type chosen. See asset documentation for more details.
AssetRevision uint(4) A counter for the number of times this asset has been revised using a modification action. Example: 456789
Timestamp Timestamp Timestamp in nanoseconds of when the smart contract created the action. Cannot be changed by the administration or operator. Smart contract controls.
Transaction Summary
Index Input Description
0 Contract Public Address The contract that this asset was assigned to.
Index Output Description
0 Contract Public Address Required so that users can monitor transactions to the contract for updates to contract/assets.

Asset Modification

Token Dilutions, Call Backs/Revocations, burning etc.

Action Code A3
Field Type Description
AssetType fixedchar(3) Three letter character that specifies the asset type. Example: SHC
AssetCode AssetCode A unique code that is used to identify the asset. It is generated by hashing the contract public key hash and the asset index. SHA256(contract PKH + asset index) Cannot be changed by the administration, operator or smart contract.
AssetRevision uint(4) The current revision figure to ensure the modification provided is based on the latest version. Cannot be Amended Example: 0
Amendments Amendment[tiny] A collection of modifications to perform on this asset.
RefTxID TxId The Bitcoin transaction ID of the associated result action that permitted the modifications. See Governance for more details.
Transaction Summary
Index Input Description
0 Administration's Public Address This action can only come from the administration.
Index Output Description
0 Contract Public Address The contract that this asset currently belongs to. Must include enough for the responding action.

Transfer

A Token Owner(s) Sends, Exchanges or Swaps a token(s) or Bitcoin for a token(s) or Bitcoin. Can be as simple as sending a single token to a receiver. Or can be as complex as many senders sending many different assets - controlled by many different smart contracts - to a number of receivers. This action also supports atomic swaps (tokens for tokens). Since many parties and contracts can be involved in a transfer and the corresponding settlement action, the partially signed T1 and T2 actions will need to be passed around on-chain with an M1 action, or off-chain.

Action Code T1
Field Type Description
Assets AssetTransfer[tiny] The Assets involved in the Transfer Action.
OfferExpiry Timestamp This prevents any party from holding on to the partially signed message as a form of an option. Eg. the exchange at this price is valid for 30 mins.
ExchangeFee uint(8) Fixed amount of bitcoin being paid to an exchange for facilitating a transfer. Example: 0.01
ExchangeFeeAddress Address Identifies the public address that the exchange fee should be paid to.
Transaction Summary
Index Input Description
0 Asset Senders Asset (token) Sending Public Address. Assets[i].AssetSenders[j].Index references these inputs.
Index Output Description
0 Contract Public Address for Asset X Enough for the costs of the responding action, including any bitcoins being transfered, and the Contract Fee.

Settlement

Settles the transfer request of bitcoins and tokens from transfer (T1) actions.

Action Code T2
Field Type Description
Assets AssetSettlement[tiny] The Assets settled by the transfer action.
Timestamp Timestamp Timestamp in nanoseconds of when the smart contract created the action. Cannot be changed by the administration, operator. Smart contract controls.
Transaction Summary
Index Input Description
0 Contract Public Address (Asset X) Contract (Asset X) in response to a transfer action with Asset X being sent to another address(es).
Index Output Description
0 Asset 1 Settlement Address X Address X that is being settled for Asset 1.

Proposal

Allows the Administration/Token Holders to propose a change (aka Initiative/Shareholder vote). A significant cost - specified in the Contract Formation - can be attached to this action when sent from Token Holders to reduce spam, as the resulting vote will be put to all token owners.

Action Code G1
Field Type Description
Type uint(1) Type of proposal. Supported values: 0 Referendum / Administration Initiates / Members Vote 1 Initiative / Members Initiate / Members Vote 2 AdministrativeMatter / Administration Initiates / Administrators Vote
AssetType fixedchar(3) Three letter character that specifies the asset type. Example: SHC
AssetCode AssetCode A unique code that is used to identify the asset. It is generated by hashing the contract public key hash and the asset index. SHA256(contract PKH + asset index) Cannot be changed by the administration, operator or smart contract.
VoteSystem uint(1) X for Vote System X. (1-255, 0 is not valid.) Example: 1
ProposedAmendments Amendment[tiny] Each element contains details of which fields to modify, or delete. Because the number of fields in a Contract and Asset is dynamic due to some fields being able to be repeated, the index value of the field needs to be calculated against the Contract or Asset the changes are to apply to. In the event of a Vote being created from this Initiative, the changes will be applied to the version of the Contract or Asset at that time.
VoteOptions varchar(tiny) Length 1-255 bytes. 0 is not valid. Each byte allows for a different vote option. Typical votes will likely be multiple choice or Y/N. Vote instances are identified by the Tx-ID. AB would be used for Y/N (binary) type votes. When Specific is true, only AB is a valid value. Example: ABCDEFGHIJKLMNO
VoteMax uint(1) Range: 1-X. How many selections can a voter make in a Ballot Cast. 1 is selected for Y/N (binary). When Specific is true, only 1 is a valid value. Example: 15
ProposalDescription varchar(medium) Length restricted by the Bitcoin protocol. 0 is valid. Description or details of the vote Example: Change the name of the Contract.
ProposalDocumentHash bin(32) SHA256 Hash of the proposal document to be distributed to voters. Example: 77201b0094f50df309f0343e4f44dae64d0de503c91038faf2c6b039f9f18aec
VoteCutOffTimestamp Timestamp Ballot casts after this timestamp will not be included. The vote has finished.
Transaction Summary
Index Input Description
0 Operator / Token Owner's Public Address The user making the proposal for this contract.
Index Output Description
0 Contract Public Address Includes contract fee and holder proposal fee if applicable.
1 Contract Public Address Fund the Result TX at Vote cut off

Vote

A vote is created by the Contract in response to a valid Proposal Action.

Action Code G2
Field Type Description
Timestamp Timestamp Timestamp in nanoseconds of when the smart contract created the action. Cannot be changed by the administration, operator. Smart contract controls.
Transaction Summary
Index Input Description
0 Contract Public Address The contract that is performing this action.
Index Output Description
0 Contract Public Address Required so that users can monitor transactions to the contract for notifications of this action.

Ballot Cast

Used by Token Owners to cast their ballot (vote) on proposals. 1 Vote per token unless a vote multiplier is specified in the relevant Asset Definition action.

Action Code G3
Field Type Description
VoteTxId TxId Tx ID of the Vote the Ballot Cast is being made for.
Vote varchar(tiny) Length 1-255 bytes. 0 is not valid. Max length is the VoteMax value from the Proposal action. Accept, Reject, Abstain, Spoiled, Multiple Choice, or Preference List. 15 options total. Order of preference. 1st position = 1st choice. 2nd position = 2nd choice, etc. A is always Accept and B is always reject in a Y/N votes. Example: A
Transaction Summary
Index Input Description
0 Token Owner's Public Address The user casting the ballot for this contract.
Index Output Description
0 Contract Public Address Funds ballot cast response.

Ballot Counted

The smart contract will respond to a Ballot Cast action with a Ballot Counted action if the Ballot Cast is valid. If the Ballot Cast is not valid, then the smart contract will respond with a Rejection Action.

Action Code G4
Field Type Description
VoteTxId TxId Tx ID of the Vote the Ballot Cast is being made for.
Vote varchar(tiny) Length 1-255 bytes. 0 is not valid. Max length is the VoteMax value from the Proposal action. Accept, Reject, Abstain, Spoiled, Multiple Choice, or Preference List. 15 options total. Order of preference. 1st position = 1st choice. 2nd position = 2nd choice, etc. A is always Accept and B is always reject in a Y/N votes. Example: A
Quantity uint(8) Number of votes counted for this ballot. Factors in vote multipliers if there are any allowed, otherwise it is just quantity of tokens held.
Timestamp Timestamp Timestamp in nanoseconds of when the smart contract created the action. Cannot be changed by the administration, operator. Smart contract controls.
Transaction Summary
Index Input Description
0 Contract Public Address The contract that is performing this action.
Index Output Description
0 Contract Public Address Required so that users can monitor transactions to the contract for notifications of this action.

Result

Once a vote has been completed the results are published. After the result is posted, it is up to the administration to send a contract/asset amendement if appropriate.

Action Code G5
Field Type Description
AssetType fixedchar(3) Three letter character that specifies the asset type. Example: SHC
AssetCode AssetCode A unique code that is used to identify the asset. It is generated by hashing the contract public key hash and the asset index. SHA256(contract PKH + asset index) Cannot be changed by the administration, operator or smart contract.
ProposedAmendments Amendment[tiny] Each element contains details of which fields to modify, or delete. Because the number of fields in a Contract and Asset is dynamic due to some fields being able to be repeated, the index value of the field needs to be calculated against the Contract or Asset the changes are to apply to. In the event of a Vote being created from this Initiative, the changes will be applied to the version of the Contract or Asset at that time.
VoteTxId TxId Link to the Vote Action txn.
OptionTally uint(8)[tiny] List of number of valid votes counted for each vote option. Length is encoded like a regular list object, but must match the length of VoteOptions from the Proposal action.
Result varchar(tiny) Length 1-255 bytes. 0 is not valid. The Option with the most votes. In the event of a draw for 1st place, all winning options are listed.
Timestamp Timestamp Timestamp in nanoseconds of when the smart contract created the action. Cannot be changed by the administration, operator. Smart contract controls.
Transaction Summary
Index Input Description
0 Contract Public Address The contract that is performing this action.
Index Output Description
0 Contract Public Address Required so that users can monitor transactions to the contract for notifications of this action.

Order

Used by the administration to signal to the smart contract that the tokens that a particular public address(es) owns are to be confiscated, frozen, thawed or reconciled.

Action Code E1
Field Type Description
ComplianceAction fixedchar(1) Freeze (F), Thaw (T), Confiscate (C), Reconcile (R) Example: F
AssetType fixedchar(3) Three letter character that specifies the asset type. Example: SHC
AssetCode AssetCode A unique code that is used to identify the asset. It is generated by hashing the contract public key hash and the asset index. SHA256(contract PKH + asset index) Cannot be changed by the administration, operator or smart contract.
TargetAddresses TargetAddress[medium] The holders and quantities that are effected by the order. For a contract or asset wide freeze only the contract address is specified. Zero quantities are invalid unless it is for the contract address in an asset wide or contract wide freeze. In a thaw order this field is not serialized, because the entire freeze from the FreezeTxId freeze action will be thawed.
FreezeTxId TxId The tx id of the freeze action that is being thawed. Only serialized for thaw orders.
FreezePeriod Timestamp Used for a 'time out'. Tokens are automatically unfrozen after the expiration timestamp without requiring a Thaw Action. Null value for Thaw, Confiscation and Reconciallitaion orders. Example: Tue Oct 09 2018 05:00:00 GMT+1000 (AEST)
DepositAddress Address The public address for confiscated tokens to be deposited in. Null for Freeze, Thaw, actions. Eventually the supporting evidence/explanation can be supported by a Subfield that has the public address (and a signed message) owned by a legal authority for ID verification/certification purposes.
AuthorityName varchar(tiny) Length 0-255 bytes. Enforcement Authority Name (eg. Issuer, Queensland Police Service, Tokenized, etc.) Example: Supreme and District Courts Brisbane
AuthorityPublicKey varbin(tiny) Length 0-255 bytes. Public Key associated with the Enforcement Authority
SignatureAlgorithm uint(1) Algorithm used for order signature. Only valid value is currently 1 = ECDSA+secp256k1 Example: 1
OrderSignature varbin(tiny) Length 0-255 bytes. Signature for a message that lists out the target addresses and deposit address. Signature of (Contract PKH, Compliance Action, Authority Name, Asset Code, Supporting Evidence Hash, FreezePeriod, TargetAddresses, and DepositAddress)
SupportingEvidenceHash bin(32) SHA-256: warrant, court order, etc.
RefTxs varbin(medium) The request/response actions that were dropped. The entire txn for both actions is included as evidence that the actions were accepted into the mempool at one point and that the senders (token/Bitcoin) signed their intent to transfer. The management of this record keeping is off-chain and managed by the administration or operator to preserve the integrity of the state of the tokens. Only applicable for reconcilliation actions. No subfield when F, T, R is selected as the Compliance Action subfield. Can be null. Dropped actions that require a reconciliation action to fix the break in the chain are considered to be an extremely rare event.
BitcoinDispersions QuantityIndex[small] Index of address in TargetAddresses and amount of bitcoin (in satoshis) they are receiving in exchange for their tokens.
Message varchar(medium) A message to include with the enforcement order. Example: Compelled by a court order.
Transaction Summary
Index Input Description
0 Administration's Public Address This action can only come from the administration.
Index Output Description
0 Contract Public Address Contract fee and funding for response transaction.

Freeze

The contract responding to an Order action to freeze assets. To be used to comply with contractual/legal/issuer requirements. The target public address(es) will be marked as frozen. However the Freeze action publishes this fact to the public blockchain for transparency. The contract will not respond to any actions requested by the frozen address.

Action Code E2
Field Type Description
AssetType fixedchar(3) Three letter character that specifies the asset type. Example: SHC
AssetCode AssetCode A unique code that is used to identify the asset. It is generated by hashing the contract public key hash and the asset index. SHA256(contract PKH + asset index) Cannot be changed by the administration, operator or smart contract.
Quantities QuantityIndex[small] Indices to addresses in outputs and the quantities being frozen. If the only address is the contract address and the asset code is zeros, then it is a contract wide freeze. If the only address is the contract address and the asset code is specified, then it is an asset wide freeze.
FreezePeriod Timestamp Used for a 'time out'. Tokens are automatically unfrozen after the expiration timestamp without requiring a Thaw Action.
Timestamp Timestamp Timestamp in nanoseconds of when the smart contract created the action. Cannot be changed by the administration, operator. Smart contract controls.
Transaction Summary
Index Input Description
0 Contract Public Address The contract that is performing this action.
Index Output Description
0 Target Public Address X If Target Public Address is the Contract Address then the entire contract is frozen. All request actions during the Freeze period will be ignored and rejected when the contract is thawed and rebuilds.

Thaw

The contract responding to an Order action to thaw assets. To be used to comply with contractual obligations or legal requirements. The Alleged Offender's tokens will be unfrozen to allow them to resume normal exchange and governance activities.

Action Code E3
Field Type Description
FreezeTxId TxId The tx id of the freeze action that is being reversed.
Timestamp Timestamp Timestamp in nanoseconds of when the smart contract created the action. Cannot be changed by the administration, operator. Smart contract controls.
Transaction Summary
Index Input Description
0 Contract Public Address The contract that is performing this action.
Index Output Description
0 Target Public Address X Can be the Contract Address for a 'Contract-wide' Thaw in response to a Contract-wide Freeze.

Confiscation

The contract responding to an Order action to confiscate assets. To be used to comply with contractual obligations, legal and/or issuer requirements.

Action Code E4
Field Type Description
AssetType fixedchar(3) Three letter character that specifies the asset type. Example: SHC
AssetCode AssetCode A unique code that is used to identify the asset. It is generated by hashing the contract public key hash and the asset index. SHA256(contract PKH + asset index) Cannot be changed by the administration, operator or smart contract.
Quantities QuantityIndex[small] The holders effected by the confiscation and their balance remaining.
DepositQty uint(8) Deposit address's token balance after confiscation. Example: 10000
Timestamp Timestamp Timestamp in nanoseconds of when the smart contract created the action. Cannot be changed by the administration, operator. Smart contract controls.
Transaction Summary
Index Input Description
0 Contract Public Address The contract that is performing this action.
Index Output Description
0 Target Public Address X Can be the Contract Address for a 'Contract-wide' Confiscation.
1 Deposit Public Address Dust limit rule minimum value output of 546

Reconciliation

The contract responding to an Order action to reconcile assets. To be used at the direction of the administration to fix record keeping errors with bitcoin and token balances.

Action Code E5
Field Type Description
AssetType fixedchar(3) Three letter character that specifies the asset type. Example: SHC
AssetCode AssetCode A unique code that is used to identify the asset. It is generated by hashing the contract public key hash and the asset index. SHA256(contract PKH + asset index) Cannot be changed by the administration, operator or smart contract.
Quantities QuantityIndex[small] The holders effected by the reconciliation and their balance remaining.
Timestamp Timestamp Timestamp in nanoseconds of when the smart contract created the action. Cannot be changed by the administration, operator. Smart contract controls.
Transaction Summary
Index Input Description
0 Contract Public Address The contract that is performing this action.
Index Output Description
0 Target Public Address X 546 minimum. If N bitcoin needs to be sent to the address, then this will be the output that receives the Bitcoin.

Establishment

Establishes an on-chain register.

Action Code R1
Field Type Description
Message varchar(medium) A custom message to include with this action. Example: North America Whitelist
Transaction Summary
Index Input Description
0 Register Public Address The address of the associated register.
Index Output Description
0 Register Public Address Required so that users can monitor transactions to the register for notifications of this action.

Addition

Adds an entry to the Register.

Action Code R2
Field Type Description
Message varchar(medium) A custom message to include with this action. Example: username
Transaction Summary
Index Input Description
0 Register Public Address The address of the associated register.
Index Output Description
0 Register Public Address Required so that users can monitor transactions to the register for notifications of this action.

Alteration

A register entry/record can be altered.

Action Code R3
Field Type Description
EntryTxID TxId Transaction ID of the register entry to be altered.
Message varchar(medium) A custom message to include with this action. Example: Changed Country of Residence
Transaction Summary
Index Input Description
0 Register Public Address The address of the associated register.
Index Output Description
0 Register Public Address Required so that users can monitor transactions to the register for notifications of this action.

Removal

Removes an entry/record from the Register.

Action Code R4
Field Type Description
EntryTxID TxId Transaction ID of the register entry to be altered.
Message varchar(medium) A custom message to include with this action. Example: Removed due to violation of company policy.
Transaction Summary
Index Input Description
0 Register Public Address The address of the associated register.
Index Output Description
0 Register Public Address Required so that users can monitor transactions to the register for notifications of this action.

Message

The message action is a general purpose communication action. 'Twitter/SMS' for Issuers/Investors/Users. The message txn can also be used for passing partially signed txns on-chain, establishing private communication channels and EDI (receipting, invoices, PO, and private offers/bids). The messages are broken down by type for easy filtering in the a user's wallet. The Message Types are listed in the Message Types table.

Action Code M1
Field Type Description
SenderIndexes uint(4)[tiny] Associates the message to a particular input by the index. If none are specified then the first input is assumed.
ReceiverIndexes uint(4)[tiny] Associates the message to a particular output by the index. If none are specified then the first output is assumed.
MessageCode uint(2)
MessagePayload varbin(medium) Public or private (RSA public key, Diffie-Hellman). Issuers/Contracts can send the signifying amount of satoshis to themselves for public announcements or private 'notes' if encrypted. See Message Types for a full list of potential use cases. Example: Hello world!
Transaction Summary
Index Input Description
0 Sender Public Address The user sending the message.
Index Output Description
0 Receiver Public Address" The recipient's address for the message, supplied by the sender.

Rejection

Used to reject request actions that do not comply with the Contract. If money is to be returned to a User then it is used in lieu of the Settlement Action to properly account for token balances. All Administration/User request Actions must be responded to by the Contract with an Action. The only exception to this rule is when there is not enough fees in the first Action for the Contract response action to remain revenue neutral. If not enough fees are attached to pay for the Contract response then the Contract will not respond.

Action Code M2
Field Type Description
AddressIndexes uint(4)[tiny] Associates the message to a particular output by the index.
RejectAddressIndex uint(2) The address which is believed to have caused the rejection.
RejectionCode RejectionCode Classifies the rejection by a type. Example: 1
Message varchar(small) Length 0-65,535 bytes. Message that explains the reasoning for a rejection, if needed. Most rejection types will be captured by the Rejection Type Subfield. Example: Sorry, you don't have enough tokens.
Timestamp Timestamp Timestamp in nanoseconds of when the smart contract created the action. Cannot be changed by the administration, operator. Smart contract controls.
Transaction Summary
Index Input Description
0 Contract Public Address The contract that is performing this action.
Index Output Description
0 User / Contract public addresses The affected user or contract's publid addresses. Refunds all money provided in the request action, less fees

Field Types

Administrator

Administrator is used to refer to a Administration role in an Entity.

Field Type Description
Type Role Chairman, Director, Managing Partner, etc.. Found in 'Roles' in Specification/Resources Example: 7
Name varchar(tiny) Length 0-255 bytes. 0 is valid. Example: Satoshi Nakamoto

Amendment

An Amendment is used to describe the modification of a single field in a Contract or Asset, as defined in the ContractFormation and AssetCreation messages.

Field Type Description
FieldIndexPath varbin(tiny) List of indices that identify the field/sub-field to be amended. The index path of the field being modified. Encoded as a list of base 128 var ints. Each index is an index into the current object, top level being the ContractFormation or AssetCreation. Indexes are defined by protobuf messages. If the current level is a list, then the index is a zero based offset to the element in the list.
Operation uint(1) 0 = Modify. 1 = Add an element to the data to the array of elements. 2 = Delete the element listed in the Element field. The Add and Delete operations only apply to a particilar element of a complex array type. For example, it could be used to remove a particular VotingSystem from a Contract. Example: 0
Data varbin(medium) New data for the amended subfield. Data type depends on the the type of the field being amended. The value should be serialize as defined by the protocol. The bytes must be encoded in the format of the field being modified.

AssetReceiver

An AssetReceiver is a quantity, address, and oracle signature. The quantity could be used to describe a number of tokens, or a value. The address is where the asset will be sent.

Field Type Description
Address Address The address receiving the tokens
Quantity uint(8) Number of tokens to be received by address at Output X Example: 100
OracleSigAlgorithm uint(1) 0 = No Oracle-signed Message (OracleConfirmationSig skipped in serialization), 1 = ECDSA+secp256k1. If the contract for the asset being received has oracles, then a signature is required from one of them. Example: 1
OracleIndex uint(1) Specifies the index into the list of oracles in the contract offer that was used to authorize this transfer.
OracleConfirmationSig varbin(tiny) Length 0-255 bytes. If restricted to a oracle (whitelist) or has transfer restrictions (age, location, investor status): ECDSA+secp256k1 (or the like) signed message provided by an approved/trusted oracle through an API signature of the defined message. If no transfer restrictions(trade restriction/age restriction fields in the Asset Type payload. or restricted to a whitelist by the Contract Auth Flags, it is a NULL field.
OracleSigBlockHeight uint(4) The block height of the block hash used in the oracle signature.

Asset Settlement

AssetSettlement is the data required to settle an asset transfer.

Field Type Description
ContractIndex uint(2) Index of input containing the contract's address for this offset
AssetType fixedchar(3) Three letter character that specifies the asset type. Example: COU Example: SHC
AssetCode AssetCode A unique code that is used to identify the asset. It is generated by hashing the contract public key hash and the asset index. SHA256(contract PKH + asset index) Cannot be changed by the administration, operator or smart contract.
Settlements QuantityIndex[tiny] Each element contains the resulting token balance of Asset X for the output Address, which is referred to by the index.

Asset Transfer

AssetTransfer is the data required to transfer an asset.

Field Type Description
ContractIndex uint(2) Index of output containing the contract's address for this offset
AssetType fixedchar(3) Three letter character that specifies the asset type. Example: COU Example: SHC
AssetCode AssetCode A unique code that is used to identify the asset. It is generated by hashing the contract public key hash and the asset index. SHA256(contract PKH + asset index) Cannot be changed by the administration, operator or smart contract.
AssetSenders QuantityIndex[tiny] Each element has the value of tokens to be spent from the input address, which is referred to by the index.
AssetReceivers AssetReceiver[tiny] Each element has the value of tokens to be received, the address, and an oracle signature if required.

Document

A file containing data.

Field Type Description
Name varchar(tiny) Full name, including file extension, of the file. Length 0-255 bytes. 0 is valid. Example: Agreement.pdf
Type varchar(tiny) MIME type of the file. Length 0-255 bytes. 0 is valid. Example: application/pdf
Contents varbin(medium) The contents of the file.

Entity

Entity represents the details of a legal Entity, such as a public or private company, government agency, or and individual.

Field Type Description
Name varchar(tiny) Length 1-255 bytes (0 is not valid). Issuing entity (company, organization, individual). Can be any unique identifying string, including human readable names for branding/vanity purposes. Example: Tesla Inc.
Type EntityType The type of entity. (i.e Public Company, Individual) (Specification/Resources). Example: P
LEI fixedchar(20) Null is valid. A Legal Entity Identifier (or LEI) is an international identifier made up of a 20-character identifier that identifies distinct legal entities that engage in financial transactions. It is defined by ISO 17442.[1] Natural persons are not required to have an LEI; they’re eligible to have one issued, however, but only if they act in an independent business capacity.[2] The LEI is a global standard, designed to be non-proprietary data that is freely accessible to all.[3] As of December 2018, over 1,300,000 legal entities from more than 200 countries have now been issued with LEIs. ISO 17442 - https://en.wikipedia.org/wiki/Legal_Entity_Identifier Example: 54930084UKLVMY22DS16
UnitNumber varchar(tiny) Issuer/Entity/Contracting Party X Address Details (eg. HQ) Example: 2
BuildingNumber varchar(tiny) Example: 13577
Street varchar(tiny) Example: Fairmont Ave
SuburbCity varchar(tiny) Example: Robinoh
TerritoryStateProvinceCode fixedchar(5) Example: BC
CountryCode fixedchar(3) Example: USA
PostalZIPCode fixedchar(12) Example: 50210
EmailAddress varchar(tiny) Length 0-255 bytes. Address for text-based communication: eg. email address, Bitcoin address Example: satoshi@tokenized.com
PhoneNumber varchar(tiny) Length 0-255 bytes. 0 is valid. Phone Number for Entity. Example: 0448484848
Administration Administrator[tiny] A list of people that are in Administrative Roles for the Entity. eg. Chair, Director, Managing Partner, etc.
Management Manager[tiny] A list of people in Management Roles for the Entity. e.g CEO, COO, CTO, CFO, Secretary, Executive, etc.
DomainName varchar(tiny) Domain name owned by this entity. Length 0-255 bytes. 0 is valid. Example: tokenized.com

Manager

Manager is used to refer to a role that is responsible for the Management of an Entity.

Field Type Description
Type Role CEO, COO, CFO, etc. Found in 'Roles' in Specification/Resources Example: 5
Name varchar(tiny) Length 0-255 bytes. 0 is valid. Example: Satoshi Nakamoto

Oracle

A Oracle defines the details of a public Oracle.

Field Type Description
Entity Entity Identifying information about the oracle.
URL varchar(tiny) Length 0-255 bytes. 0 is valid. If applicable: URL for REST/RPC Endpoint Example: http://oracle.tokenized.com/api/3650d9/version2010
PublicKey varbin(tiny) Length 0-255 bytes. 0 is not valid. Oracle Public Key (eg. Bitcoin Public key), used to confirm digital signed proofs for transfers. Can also be the same public address that controls a Tokenized Oracle.

Quantity Index

A QuantityIndex contains a quantity, and an index. The quantity could be used to describe a number of tokens, or a value. The index is used to refer to an input or output index position.

Field Type Description
Index uint(2) The index of the input/output (depending on context) sending/receiving the tokens. Example: 0
Quantity uint(8) Number of tokens being sent Example: 100

Target Address

A TargetAddress defines a public address and quantity.

Field Type Description
Address Address Public address where the token balance will be changed.
Quantity uint(8) Qty of tokens to be frozen, thawed, confiscated or reconciled. For Contract-wide freezes 0 will be used. Example: 10000

Voting System

A VotingSystem defines all details of a Voting System.

Field Type Description
Name varchar(tiny) eg. Special Resolutions, Ordinary Resolutions, Fundamental Matters, General Matters, Directors' Vote, Poll, etc. Example: Special Resolutions
VoteType fixedchar(1) R - Relative Threshold, A - Absolute Threshold, P - Plurality, (Relative Threshold means the number of counted votes must exceed the threshold % of total ballots cast. Abstentations/spoiled votes do not detract from the liklihood of a vote passing as they are not included in the denominator. Absolute Threshold requires the number of ballots counted to exceed the threshold value when compared to the total outstanding tokens. Abstentations/spoiled votes detract from the liklihood of the vote passing. For example, in an absolute threshold vote, if the threshold was 50% and 51% of the total outstanding tokens did not vote, then the vote cannot pass. 50% of all tokens would have had to vote for one vote option for the vote to be successful. Plurality means the most favoured option is selected, regardless of the number of votes cast or the percentage relative to other choices. Example: A
TallyLogic uint(1) 0 - Standard Scoring (+1 * # of tokens owned), 1 - Weighted Scoring (1st choice * Vote Max * # of tokens held, 2nd choice * Vote Max-1 * # of tokens held,..etc.) Example: 0
ThresholdPercentage uint(1) This field is ignored when VoteType is P (Plurality). Otherwise it is the percentage of ballots required for a proposal to pass. Valid values are greater than 0 and less than 100. 75 means 75% and greater. Only applicable to Relative and Absolute Threshold vote methods. The Plurality vote method requires no threshold value (NULL), as the successful vote option is simply selected on the basis of highest ballots cast for it. Example: 75
VoteMultiplierPermitted bool Where an asset has a vote multiplier, true must be set here for the vote multiplier to count, otherwise votes are simply treated as 1x per token.
HolderProposalFee uint(8) Token Owners must pay the fee amount to broadcast a valid Proposal. If the Proposal action is valid, the smart contract will start a vote. 0 is valid. Example: 100

Field Aliases

Field Type Description
Role uint(1) A role within an entity. (i.e. CEO, CFO)
EntityType fixedchar(1) A type of entity. (i.e. Individual, Public Company)
Polity fixedchar(3) Polities (eg. Countries/Nation-States (ISO-3166 Alpha-3) Example: GBR
RejectionCode uint(1) Codes returned in rejection messages when a request is not accepted.
Tag uint(1) Predefined tags for output metadata.
Address varbin(small) A representation of a bitcoin address in raw format, with no check sum or encoding.
ContractCode bin(32) 32 randomly generated bytes. Each Contract Code should be unique. The Contract ID will be human facing and will be the Contract Code, with a checksum, encoded in base58 and prefixed by 'CON'. Contract ID = CON + base58(ContractCode + checksum). Eg. Contract ID = 'CON18RDoKK7Ed5zid2FkKVy7q3rULr4tgfjr4'
AssetType fixedchar(3) A code representing the type of asset and the structure of the payload.
AssetCode bin(32) Represents a unique identifier for an asset/token. Example: 0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20
Timestamp uint(8) Represents a time, encoded as a 64 bit unsigned integer representing the number of nanoseconds since the Unix epoch. Example: Wed May 09 2018 00:00:00 GMT+1000 (AEST)
TxId bin(32) Represents a Bitcoin transaction ID, the double SHA256 hash of the serialized transaction. Example: 9d1ef0b1201c1dec3c1eb1caf758a988205226173e988e7a04afb4ea9977f506