EthOn - An Ethereum Ontology

The EthOn Ethereum ontology, described using W3C RDF Schema and the Web Ontology Language. It is closely aligned with Gavin Wood's Ethereum yellow paper.

IRI
http://ethon.consensys.net/
Version IRI
http://ethon.consensys.net/0/
Version Info
0.2
Creators
Johannes Pfeffer
Contributors
Alex Beregszazi, Casey Detrio, Herman Junge, Joseph Chow, Marian Oancea, Maurycy Pietrzak, Shahan Khatchadourian, Stefano Bertolo, William E Bodell III
Preferred prefix
ethon
Term status
testing
Imports
http://www.w3.org/2003/06/sw-vocab-status/ns
See also
https://github.com/ConsenSys/EthOn
https://github.com/ethereum/wiki/wiki/White-Paper
https://github.com/ethereum/yellowpaper

Table of contents

Illustrations

Simplified EthOn model
This is a simplified illustration of how EthOn models Ethereum.

More illustrations can be found in the EthOn_illustrations.md file.

Concept hierarchies

Class descriptions 46

Account

*Account* is the superclass of all account types in Ethereum. All accounts are identified by an address (which, however, is derived differently for external and contract accounts) and an account state that contains the contract's balance and total message count, which is called its nonce. Contract accounts also have an associated storage state and EVM code. The address of an external account is derived from the public key of a public and private keypair, while a contract account address is a concatenation of the creator account's address and its nonce. Both contract accounts and external accounts can also be of type *protocol account* if they are specified in the Ethereum blockchain, i.e. the accounts pre-funded by the Ethereum crowdsale.

Status unstable
URI http://ethon.consensys.net/Account
Suggested string Account
Simple definition There are two main types of accounts: external accounts (often referred to as "wallet" or simply "account") and contract accounts (usually just called "contract" or "smart contract"). An external account is what you need to use Ethereum. It is usually protected by a password. If you have the password you can send Ether from your account to another or use a contract. It has an Ethereum address (0x...) by which it is identified.
Superclasses AccountConcept
Subclasses ContractAccount ExternalAccount ProtocolAccount
Properties include address hasCurrentState hasState
Used with hasBeneficiary refunds controlsAccount loggedBy

AccountConcept

The group of all EthOn classes related to accounts.

Status unstable
URI http://ethon.consensys.net/AccountConcept
Suggested string AccountConcept
Superclasses EthOnConcept
Subclasses Account AccountState AccountStorage ExternalActor
Properties include AccountDataProperty

AccountState

State of an Ethereum account. It is comprised on four pieces of information: nonce, balance, storage root and code hash. The data is stored in a Merkle Patricia tree as a mapping between addresses and account states. The account state is part of the world state, as it resembles the state of exactly one account.

Status unstable
URI http://ethon.consensys.net/AccountState
Suggested string AccountState
Superclasses AccountConcept State
Subclasses ProtocolState
Properties include accountBalance accountNonce
Used with hasCurrentState hasState

AccountStorage

The account storage is part of the account state and it contains contains the values of all variables defined in the contract's code at a certain point in time. Usually Ethereum clients implement this structure as a Merkle Patricia Tree. Whenever any of the contract's variables are changed a new state is created.

Status unstable
URI http://ethon.consensys.net/AccountStorage
Suggested string AccountStorage
Simple definition A data structure which contains the current storage state of a smart contract, i.e. the total supply of an ERC20 token and the mapping of account addresses to current balances.
Superclasses AccountConcept ModifiedMerklePatriciaTree
Properties include storageRoot
Used with hasAccountStorage

Block

A block is the basic element of a 'blockchain'. It functions as an entry in a distributed ledger, recording a series of transactions together with a reference to the previous block. A block is chained to its preceeding block by a cryptographic hash of its contents as a means of reference. Blocks contain an identifier for the final state after all transactions contained in it are validated. There is a consensus mechanism that provides incentives for nodes adding new blocks to the chain ("miners" in the Proof of Work protocol used by the main Ethereum network) that comply with the rules of Ethereum by issuing newly generated tokens ('Ether') to an account specified by the block's author.

Status unstable
URI http://ethon.consensys.net/Block
Suggested string Block
Simple definition A block is an entry in a blockchain. It contains a series of transactions as well as a cryptographic hash linking it to the previous block in the chain.
Superclasses BlockConcept StateTransition
Subclasses GenesisBlock
Properties include hasParentBlock blockBeneficiaryReward blockSize createsPostBlockState hasBeneficiary hasTxTrie containsTx
Used with hasParentBlock spawnsBlock

BlockConcept

The group of all EthOn classes related to blocks.

Status unstable
URI http://ethon.consensys.net/BlockConcept
Suggested string BlockConcept
Superclasses EthOnConcept
Subclasses Block ReceiptsTrie TxTrie Uncle
Properties include BlockDataProperty

Blockchain

An Ethereum blockchain is a distributed database that maintains a continuously-growing list of records called *blocks* secured from tampering and revision. Each block contains a timestamp and a link to a previous block in a Merkle tree structure.

Status unstable
URI http://ethon.consensys.net/Blockchain
Suggested string Blockchain
Superclasses NetworkConcept
Properties include startBlockNumber hasFork
Used with hasFork minesFor

CallContractMsg

A call contract message is a contract message that calls a function in another contract.

Status unstable
URI http://ethon.consensys.net/CallContractMsg
Suggested string CallContractMsg
Superclasses ContractMsg
Properties include msgOutput

CallTx

A type of transaction that is directed towards a contract account and calls a method in the contract's code.

Status unstable
URI http://ethon.consensys.net/CallTx
Suggested string CallTx
Superclasses Tx

ContractAccount

One of the two main types of accounts on Ethereum, a contract account is an account whose behaviour is controlled by a smart contract. Contract accounts are identified by their address which is derived from the creator account's address and nonce. A contract account has a non-empty associated EVM code. It's state data consists of the bytecode, the contract's balance and the storage state of the contract's code (for example the value of variables). A contract account can only act when it is triggered by a message. It may not create and sign transactions, but it can receive transactions from external accounts as well as send and receive contract messages, which may involve a transfer of Ether. Contract accounts can also contain events which create log entries when triggered.

Status unstable
URI http://ethon.consensys.net/ContractAccount
Suggested string ContractAccount
Simple definition A type of Ethereum account that represents a smart contract. Its behaviour is controlled by the logic in the smart contract's code. Like external accounts it is identified by an address.
Superclasses Account
Properties include accountCode accountCodeHash refunds
Used with creates

ContractMsg

A contract message is passed between a contract account and any other account (external or contract). It is the result of an execution chain originally triggered by an external eccount.

Status unstable
URI http://ethon.consensys.net/ContractMsg
Suggested string ContractMsg
Superclasses Msg
Subclasses CallContractMsg CreateContractMsg SelfdestructContractMsg ValueContractMsg
Properties include hasOriginatorTx
Used with triggersMsg

CreateContractMsg

A create contract message is a subtype of a contract message that results in creation of a new contract account.

Status unstable
URI http://ethon.consensys.net/CreateContractMsg
Suggested string CreateContractMsg
Superclasses ContractMsg

CreateTx

A type of transaction that results in creation of a new contract account.

Status unstable
URI http://ethon.consensys.net/CreateTx
Suggested string CreateTx
Superclasses Tx

EthOnConcept

Groups all classes and subclasses that are original to the EthOn OWL ontology.

Status unstable
URI http://ethon.consensys.net/EthOnConcept
Suggested string EthonConcept
Subclasses AccountConcept BlockConcept MessageConcept ModifiedMerklePatriciaTree NetworkConcept StateConcept
Properties include simpleDefinition suggestedStringRepresentation conformsTo

ExternalAccount

One of the two main types of accounts on Ethereum, an external account is an account controlled by an external actor (as opposed to a contract account). The unique identifier of an external account is its address. It consists of the rightmost 160 bits of the keccak 256 hash of its public key (example: 0x1a1138875dAB9E0AC8b0fd4a37EEAC5eb26B870B). There is only one way external accounts can actively change the state of the blockchain. They can be used to send a valid transaction to the Ethereum blockchain. The transaction can be directed towards other external accounts or towards contract accounts. Since the private key is needed for sending, a valid transaction can only be created by the person or entity controlling the private key of the external account. Besides being target of transactions, external accounts can also be the target of contract messages, block beneficiary rewards, uncle beneficiary rewards or payouts of contract accounts that have self-destructed.

Status unstable
URI http://ethon.consensys.net/ExternalAccount
Suggested string ExternalAccount
Simple definition An Ethereum account usually controlled by a person. It is identified by an address (0x...) and a public/private key-pair.
Superclasses Account
Properties include accountPublicKey

ExternalActor

A person or other entity able to interface to an Ethereum node, but external to the world of Ethereum. It can interact with Ethereum through depositing signed transactions and inspecting the blockchain and associated state. Has one (or more) intrinsic accounts. While it is assumed that the ultimate external actor will be human in nature, software tools will be used in its construction and dissemination.

Status unstable
URI http://ethon.consensys.net/ExternalActor
Suggested string ExternalActor
Superclasses AccountConcept Agent
Properties include controlsAccount

FullNode

A full node is a participant in an Ethereum network that keeps a record of the full blockchain, the full state and may engage in mining.

Status unstable
URI http://ethon.consensys.net/FullNode
Suggested string FullNode
Simple definition A piece of software which connects fully to an Ethereum network, storing its complete history and having the ability to submit new blocks to the blockchain (i.e. through mining).
Superclasses Node

GenesisBlock

A genesis block is the unmined, deliberately created, very first block in a blockchain. It has no predecessors, i.e. no parent block.

Status unstable
URI http://ethon.consensys.net/GenesisBlock
Suggested string GenesisBlock
Superclasses Block

LightNode

A light node is a participant in an Ethereum network that does not completely do any of the following: store the complete blockchain, store the complete world state, engage in mining.

Status unstable
URI http://ethon.consensys.net/LightNode
Suggested string LightNode
Simple definition A piece of software which connects to an Ethereum network in a limited capacity, i.e. a smart phone wallet app which neither mines nor downloads the full blockchain, but can still send and receive messages.
Superclasses Node

LogEntry

A log ntry is the result of an event in a smart contract, emitted during creation or execution of a contract account's code. It is related to the TxReceipt it was created in, the contract account that had the event, a series of 32-bytes log topics and a number of bytes of data.

Status unstable
URI http://ethon.consensys.net/LogEntry
Suggested string LogEntry
Superclasses MessageConcept
Properties include logData hasLogTopic loggedBy
Used with hasLogEntry

LogTopic

A 32-bytes long topic of a log entry. The log topics of a log entry have an order given by a topic index value.

Status unstable
URI http://ethon.consensys.net/LogTopic
Suggested string LogTopic
Superclasses MessageConcept
Properties include logTopicData logTopicIndex
Used with hasLogTopic

MessageConcept

The group of all EthOn classes related to messages.

Status unstable
URI http://ethon.consensys.net/MessageConcept
Superclasses EthOnConcept
Subclasses LogEntry LogTopic Msg ReceiptsTrie TxReceipt TxTrie
Properties include MessageDataProperty

ModifiedMerklePatriciaTree

Merkle Patricia trees provide a cryptographically authenticated data structure that can be used to store all (key, value) bindings, although for the scope of this paper we are restricting keys and values to strings (to remove this restriction, just use any serialization format for other data types). They are fully deterministic, meaning that a Patricia tree with the same (key,value) bindings is guaranteed to be exactly the same down to the last byte and therefore have the same root hash, provide the holy grail of O(log(n)) efficiency for inserts, lookups and deletes, and are much easier to understand and code than more complex comparison-based alternatives like red-black trees.

Status unstable
URI http://ethon.consensys.net/ModifiedMerklePatriciaTree
Suggested string ModifiedMerklePatriciaTree
Superclasses EthOnConcept
Subclasses AccountStorage ReceiptsTrie TxTrie WorldState

Msg

Data (as a set of bytes) and value (specified as Ether) that is passed between two accounts, either through the deterministic operation of an autonomous object (contract account) or the cryptographically secure signature of an external account.

Status unstable
URI http://ethon.consensys.net/Msg
Suggested string Msg
Superclasses MessageConcept StateTransition
Subclasses ContractMsg Tx
Properties include msgError msgErrorString msgGasLimit msgGasUsed msgPayload value to
Used with to

Network

An Ethereum network is the group of all nodes that conform to a certain protocol variant.

Status unstable
URI http://ethon.consensys.net/Network
Suggested string Network
Superclasses NetworkConcept

NetworkConcept

The group of all EthOn classes related to networks.

URI http://ethon.consensys.net/NetworkConcept
Suggested string NetworkConcept
Superclasses EthOnConcept
Subclasses Blockchain Network Node ProtocolVariant

Node

A participant in an Ethereum network, specifically an instance of one of the client implementations, which may be either a full node or a light node.

Status unstable
URI http://ethon.consensys.net/Node
Suggested string Node
Simple definition A piece of software participating in the Ethereum network.
Superclasses NetworkConcept
Subclasses FullNode LightNode
Properties include clientVersion minesFor spawnsBlock

PostBlockState

URI http://ethon.consensys.net/PostBlockState
Superclasses PostTxState
Properties include nextBlockState
Used with nextBlockState

PostMsgState

URI http://ethon.consensys.net/PostMsgState
Superclasses WorldState
Subclasses PostTxState
Properties include nextMsgState
Used with nextMsgState

PostTxState

URI http://ethon.consensys.net/PostTxState
Superclasses PostMsgState
Subclasses PostBlockState
Properties include nextTxState
Used with nextTxState

ProtocolAccount

A protocol account is a type of account in Ethereum. Protocol accounts are specified in the Ethereum protocol, and have so far only been used to store the initial balance for users who participated in the Ethereum crowdsale. Protocol accounts could be added with any protocol change and may be either external accounts or contract accounts.

Status unstable
URI http://ethon.consensys.net/ProtocolAccount
Suggested string PrefundedAccount
Simple definition An account that was created together with the blockchain itself or during a protcol update and can have an initial balance, e.g. from the crowdfunding of the blockchain.
Superclasses Account
Properties include accountBalancePrefunded

ProtocolState

This is a special state that can be created after specification of the protocol or any protocol change. It allows for setting balances of accounts, e.g. for prefunded accounts, creating predefined contract accounts with storage or setting any other state property as part of the protocol specification.

Status unstable
URI http://ethon.consensys.net/ProtocolState
Suggested string ProtocolState
Superclasses AccountState

ProtocolVariant

A variant of the Ethereum protocol. Changes in the protocol result in a hard or soft fork.

Status unstable
URI http://ethon.consensys.net/ProtocolVariant
Suggested string EthereumProtocolVariant
Superclasses NetworkConcept

ReceiptsTrie

A trie structure that stores transaction receipts. Each block has a reference to the root hash of a receipts trie that stores the receipts of the transactions included in the block.

Status unstable
URI http://ethon.consensys.net/ReceiptsTrie
Suggested string ReceiptsTrie
Superclasses BlockConcept MessageConcept ModifiedMerklePatriciaTree
Properties include receiptsRoot

SelfdestructContractMsg

A selfdestruct contract message is a contract message that deletes the originating contract and refunds its balance to the receiver of the message.

Status unstable
URI http://ethon.consensys.net/SelfdestructContractMsg
Suggested string SelfdestructContractMsg
Superclasses ContractMsg
Properties include msgRefundBalance

State

The concept of a state in a generic state transition system.

Status unstable
URI http://ethon.consensys.net/State
Suggested string State
Superclasses StateConcept
Subclasses AccountState WorldState
Properties include stateRoot
Used with createsState

StateConcept

The group of all EthOn classes related to state.

Status unstable
URI http://ethon.consensys.net/StateConcept
Superclasses EthOnConcept
Subclasses State StateTransition
Properties include StateDataProperty

StateTransition

The concept of a transition in a state transition system.

Status unstable
URI http://ethon.consensys.net/StateTransition
Suggested string StateTransition
Superclasses StateConcept
Subclasses Block Msg
Properties include createsState

Tx

Transactions are messages between two accounts that may transfer Ether and may contain a payload. Transactions always originate from an external account that is controlled by an external actor by means of a private key. The execution of a transaction creates a 'transaction receipt'.

Status unstable
URI http://ethon.consensys.net/Tx
Suggested string Tx
Superclasses Msg
Subclasses CallTx CreateTx ValueTx
Properties include cumulativeGasUsed logIndex msgCallDepth txGasPrice txGasUsed txHash txIndex txLogsBloom txNonce txR txS txV createsPostTxState hasLogEntry hasReceipt
Used with containsTx hasOriginatorTx

TxReceipt

The transaction receipt is a tuple of four items comprising the post-transaction-state, the cumulative gas used in the block containing the transaction receipt as of immediately after the transaction has happened, the set of logs created through execution of the transaction and the bloom filter composed from information in those logs.

Status unstable
URI http://ethon.consensys.net/TxReceipt
Suggested string TxReceipt
Superclasses MessageConcept
Used with hasReceipt

TxTrie

A trie structure that stores transactions. The header of a block contains a reference to the root of a Tx trie with all transactions contained in the block.

Status unstable
URI http://ethon.consensys.net/TxTrie
Suggested string TxTrie
Superclasses BlockConcept MessageConcept ModifiedMerklePatriciaTree
Properties include transactionsRoot
Used with hasTxTrie

Uncle

An uncle is the direct child of the k'th generation ancestor of a block B, where 2<=k<=7 but not a direct ancestor of B. Uncles are blockchain blocks found by a miner, when a different miner has already found another block for the corresponding place in the blockchain. They are also known as “stale blocks”. The parent of an uncle is an ancestor of the inserting block, located at the tip of the blockchain.

Status unstable
URI http://ethon.consensys.net/Uncle
Suggested string Uncle
Superclasses BlockConcept
Properties include uncleBeneficiaryReward

ValueContractMsg

A Value Contract Message is a Contract Message that does not call a function in a smart contract and doesn't create a new smart contract. Even though it is called "value" Contract Message, it can have a value of 0 Ether. Value Contract Messages can have a payload as long as that payload doesn't trigger the execution of a function in a smart contract.

Status unstable
URI http://ethon.consensys.net/ValueContractMsg
Suggested string ValueContractMsg
Superclasses ContractMsg

ValueTx

A Value Transaction is a Transaction that does not call a function in a smart contract and doesn't create a new smart contract. Even though it is called "value" Transaction, Transactions with a value of 0 Ether can be Value Transaction. Value Transactions can have a payload as long as that payload doesn't trigger the execution of a function in a smart contract.

Status unstable
URI http://ethon.consensys.net/ValueTx
Suggested string ValueTx
Superclasses Tx

WorldState

The world state, is a mapping between addresses (160-bit identifiers) of all accounts and their states (a data structure serialised as Recursive Length Prefix). The mapping is not stored on the blockchain itself but in a modified Merkle Patricia tree. An individual state is identified by the root hash of the trie.

Status unstable
URI http://ethon.consensys.net/WorldState
Suggested string State
Superclasses ModifiedMerklePatriciaTree State
Subclasses PostMsgState
Properties include nextState
Used with createsPostBlockState createsPostTxState nextState

Agent

URI http://xmlns.com/foaf/0.1/Agent
Subclasses ExternalActor
Is defined by http://xmlns.com/foaf/0.1/

Object Property descriptions 40

hasParentBlock

Relates a block to its parent in the chain. It always points to the block with a number that is decreased by one, compared to the block it originates from. The relation is asymmetric because if block A is parent to block B then block B can not be parent to block A. It is also irreflexive because a block cannot be parent to itself.

Status unstable
URI http://ethon.consensys.net/hasParentBlock
Suggested string hasParentBlock
Superclasses BlockObjectProperty
Implies being a Block
Every value is a Block

createsPostBlockState

Relates a block to the global state of the system after all transactions in the block have been executed.

Status unstable
URI http://ethon.consensys.net/createsPostBlockState
Suggested string createsPostBlockState
Superclasses createsState
Implies being a Block
Every value is a WorldState

createsPostMsgState

Relates a message to the global state of the system after all the message has been executed.

Status unstable
URI http://ethon.consensys.net/createsPostMsgState
Superclasses createsState

createsPostTxState

Relates a transaction to the global state of the system after the transaction has been executed.

Status unstable
URI http://ethon.consensys.net/createsPostTxState
Suggested string createsPostTxState
Superclasses createsState
Implies being a Tx
Every value is a WorldState

hasAccountStorage

Relates an account to the Merkle Patricia tree that encodes its storage contents at a certain account state. This property is Functional because an account state can have only one instance of account storage and inverse functional because an account storage can have only one associated account state.

Status unstable
URI http://ethon.consensys.net/hasAccountStorage
Suggested string hasAccountStorage
Superclasses AccountObjectProperty
Every value is a AccountStorage

hasBeneficiary

Relates a block to the account to which all fees collected from the successful mining of this block are transferred.

Status unstable
URI http://ethon.consensys.net/hasBeneficiary
Suggested string hasBeneficiary
Superclasses BlockObjectProperty
Implies being a Block
Every value is a Account

hasReceiptsTrie

Relates a block to the trie that contains the block's receipt data.

Status unstable
URI http://ethon.consensys.net/hasReceiptsTrie
Suggested string hasReceiptsTrie
Superclasses BlockObjectProperty

hasTxTrie

Relates a block to the trie that contains the data of the transactions contained in the block.

Status unstable
URI http://ethon.consensys.net/hasTxTrie
Suggested string hasTxTrie
Superclasses BlockObjectProperty
Implies being a Block
Every value is a TxTrie

refunds

Relates a selfdestruct contract message to the contract account it sends its refund balance to.

Status unstable
URI http://ethon.consensys.net/refunds
Suggested string refunds
Superclasses to
Implies being a ContractAccount
Every value is a Account

containsTx

Relates a block to a transaction included in it. All containsTx relations of a block comprise the block's transaction list. The order of the transactions is determined by their index value. The property is inverse functional because a transaction can only be included in one block.

Status unstable
URI http://ethon.consensys.net/containsTx
Suggested string containsTx
Superclasses BlockObjectProperty
Implies being a Block
Every value is a Tx

hasCurrentState

This property relates an EthOn concept to its most current state.

Status unstable
URI http://ethon.consensys.net/hasCurrentState
Suggested string hasCurrentState
Superclasses hasState
Implies being a Account
Every value is a AccountState

hasOriginatorTx

Relates a contract message to the transaction it originated from.

Status unstable
URI http://ethon.consensys.net/hasOriginatorTx
Suggested string hasOriginatorTx
Superclasses MessageObjectProperty
Implies being a ContractMsg
Every value is a Tx

hasState

This property relates an EthOn concept to a state. It is inverse functional because a state can only belong to one single EthOn concept.

Status unstable
URI http://ethon.consensys.net/hasState
Suggested string hasState
Superclasses StateObjectProperty
Subclasses hasCurrentState
Implies being a Account
Every value is a AccountState

AccountObjectProperty

Groups all EthOn account object properties

Status unstable
URI http://ethon.consensys.net/AccountObjectProperty
Superclasses EthOnObjectProperty
Subclasses hasAccountStorage controlsAccount

BlockObjectProperty

Groups all EthOn block object properties

Status unstable
URI http://ethon.consensys.net/BlockObjectProperty
Superclasses EthOnObjectProperty
Subclasses hasParentBlock hasBeneficiary hasReceiptsTrie hasTxTrie containsTx knowsOfUncle

EthOnObjectProperty

Groups all EthOn object properties

Status unstable
URI http://ethon.consensys.net/EthOnObjectProperty
Subclasses AccountObjectProperty BlockObjectProperty MessageObjectProperty NetworkObjectProperty StateObjectProperty partOf

MessageObjectProperty

Groups all EthOn message object properties.

Status unstable
URI http://ethon.consensys.net/MessageObjectProperty
Superclasses EthOnObjectProperty
Subclasses hasOriginatorTx createsState from hasLogEntry hasLogTopic hasReceipt loggedBy to triggersMsg

NetworkObjectProperty

Groups all EthOn network object properties.

Status unstable
URI http://ethon.consensys.net/NetworkObjectProperty
Superclasses EthOnObjectProperty
Subclasses conformsTo hasFork minesFor spawnsBlock

StateObjectProperty

Groups all EthOn state object properties.

Status unstable
URI http://ethon.consensys.net/StateObjectProperty
Superclasses EthOnObjectProperty
Subclasses hasState createsState hasTransition nextState

conformsTo

Relates an Ethereum concept to the Ethereum protocol variant it conforms to.

Status unstable
URI http://ethon.consensys.net/conformsTo
Suggested string conformsTo
Superclasses NetworkObjectProperty
Implies being a EthOnConcept

controlsAccount

This property connects an External Actor an Account that it controls. This means the External Actor has control over the private Key for the Account. The control is not necessarily legitimate.

Status unstable
URI http://ethon.consensys.net/controlsAccount
Suggested string controlsAccount
Superclasses AccountObjectProperty
Implies being a ExternalActor
Every value is a Account

creates

Relates a create transaction to the contract account it creates.

Status unstable
URI http://ethon.consensys.net/creates
Suggested string creates
Superclasses to
Implies being a Ne09d55b8a1e04e2192db45bf0329fc4f
Every value is a ContractAccount

createsState

Relates a transition to the state it creates.

Status unstable
URI http://ethon.consensys.net/createsState
Suggested string createsState
Superclasses MessageObjectProperty StateObjectProperty
Subclasses createsPostBlockState createsPostMsgState createsPostTxState
Implies being a StateTransition
Every value is a State

from

Relates a message to the account it originates from.

Status unstable
URI http://ethon.consensys.net/from
Suggested string fromAccount
Superclasses MessageObjectProperty

hasFork

Relates a blockchain to a forked version of it. It is inverse functional because a forked blockchain can have only one blockchain it forked from. It is transitive because if a blockchain C that was forked from blockchain B that in turn was forked from blockchain A, blockchain C was also forked from blockchain A. It is asymetric because if blockchain A is forked from blockchain B, B cannot be also forked from A. It is irreflexive because a blockchain cannot be a fork of itself.

Status unstable
URI http://ethon.consensys.net/hasFork
Suggested string hasFork
Superclasses NetworkObjectProperty
Implies being a Blockchain
Every value is a Blockchain

hasLogEntry

Relates a transaction to a log entry it creates.

Status unstable
URI http://ethon.consensys.net/hasLogEntry
Suggested string hasLogEntry
Superclasses MessageObjectProperty
Implies being a Tx
Every value is a LogEntry

hasLogTopic

Relates a log entry to a log topic.

Status unstable
URI http://ethon.consensys.net/hasLogTopic
Suggested string hasLogTopic
Superclasses MessageObjectProperty
Implies being a LogEntry
Every value is a LogTopic

hasReceipt

Relates a transaction to its receipt.

Status unstable
URI http://ethon.consensys.net/hasReceipt
Suggested string hasTransactionReceipt
Superclasses MessageObjectProperty
Implies being a Tx
Every value is a TxReceipt

hasTransition

Relates a state to a transition (i.e. a message) that creates a new state.

Status unstable
URI http://ethon.consensys.net/hasTransition
Suggested string hasTransition
Superclasses StateObjectProperty

knowsOfUncle

Relates a block to a known uncle.

Status unstable
URI http://ethon.consensys.net/knowsOfUncle
Suggested string knowsOfUncle
Superclasses BlockObjectProperty

loggedBy

Relates a log entry to its logger's account.

Status unstable
URI http://ethon.consensys.net/loggedBy
Suggested string loggedBy
Superclasses MessageObjectProperty
Implies being a LogEntry
Every value is a Account

minesFor

Relates a mining node to the blockchain it mines for. Mining is the process of dedicating effort (working) to bolster one series of transactions (a block) over any other potential competitor block. It is achieved thanks to a cryptographically secure proof.

Status unstable
URI http://ethon.consensys.net/minesFor
Suggested string minesFor
Superclasses NetworkObjectProperty
Implies being a Node
Every value is a Blockchain

nextBlockState

Relates a post block state to the following post block state.

Status unstable
URI http://ethon.consensys.net/nextBlockState
Suggested string nextBlockState
Superclasses nextTxState
Implies being a PostBlockState
Every value is a PostBlockState

nextMsgState

Relates a post message state to the following post message state.

Status unstable
URI http://ethon.consensys.net/nextMsgState
Suggested string nextMsgState
Superclasses nextState
Subclasses nextTxState
Implies being a PostMsgState
Every value is a PostMsgState

nextState

Relates a state to the following state. In EthOn the state transition system has no branches.

Status unstable
URI http://ethon.consensys.net/nextState
Suggested string nextState
Superclasses StateObjectProperty
Subclasses nextMsgState
Implies being a WorldState
Every value is a WorldState

nextTxState

Relates a post transaction state to the following post transaction state.

Status unstable
URI http://ethon.consensys.net/nextTxState
Suggested string nextTxState
Superclasses nextMsgState
Subclasses nextBlockState
Implies being a PostTxState
Every value is a PostTxState

partOf

This is a general relation to express part of relationships. The classic study of parts and wholes, mereology, has three axioms: 1. the part-of relation is Transitive - "parts of parts are parts of the whole" - If A is part of B and B is part of C, then A is part of C Reflexive - "Everything is part of itself" - A is part of A Antisymmetric - "Nothing is a part of its parts" - if A is part of B and A != B then B is not part of A.

Status testing
URI http://ethon.consensys.net/partOf
Suggested string partOf
Superclasses EthOnObjectProperty

spawnsBlock

Relates an Ethereum node to a valid block it has transmitted to the network. This does not specify the proofing algorithm (e.g. proof of work or proof of authority).

Status unstable
URI http://ethon.consensys.net/spawnsBlock
Suggested string spawnsBlock
Superclasses NetworkObjectProperty
Implies being a Node
Every value is a Block

to

Relates a message with the account it is sent to.

Status unstable
URI http://ethon.consensys.net/to
Suggested string toAccount
Superclasses MessageObjectProperty
Subclasses refunds creates
Implies being a Msg
Every value is a Msg

triggersMsg

Relates a message that was direct to a contract account to the contract messages that result from the call to the contract account. The chain of triggersMsg relations represents a call graph.

Status unstable
URI http://ethon.consensys.net/triggersMsg
Suggested string triggersMsg
Superclasses MessageObjectProperty
Implies being a N96c9e1929c0a4634b9e3b053de3ca38a
Every value is a ContractMsg

Datatype Property descriptions 58

AccountDataProperty

Groups all data properties that are specific to an account.

Status unstable
URI http://ethon.consensys.net/AccountDataProperty
Superclasses EthOnDataProperty
Subclasses accountBalance accountBalancePrefunded accountCode accountCodeHash accountNonce accountPublicKey address storageRoot
Implies being a AccountConcept

BlockDataProperty

Groups all data properties that are specific to a block. These properties are usually functional because a block can only be associated with a single instance of them.

Status unstable
URI http://ethon.consensys.net/BlockDataProperty
Superclasses EthOnDataProperty
Subclasses blockBeneficiaryReward blockCreationTime blockDifficulty blockExtraData blockGasLimit blockGasUsed blockHash blockHeader blockLogsBloom blockMixHash blockNonce blockSize number uncleBeneficiaryReward
Implies being a BlockConcept

EthOnDataProperty

Groups all data properties specific to EthOn.

Status unstable
URI http://ethon.consensys.net/EthOnDataProperty
Subclasses AccountDataProperty BlockDataProperty MessageDataProperty NetworkDataProperty StateDataProperty

MessageDataProperty

Groups all EthOn message data properties.

Status unstable
URI http://ethon.consensys.net/MessageDataProperty
Superclasses EthOnDataProperty
Subclasses cumulativeGasUsed logData logIndex logTopicData logTopicIndex msgCallDepth msgError msgErrorString msgGasLimit msgGasUsed msgOutput msgPayload msgRefundBalance receiptsRoot transactionsRoot txGasPrice txGasUsed txHash txIndex txLogsBloom txNonce txR txS txV value
Implies being a MessageConcept

NetworkDataProperty

Groups all EthOn network data properties.

Status unstable
URI http://ethon.consensys.net/NetworkDataProperty
Superclasses EthOnDataProperty
Subclasses clientVersion startBlockNumber

StateDataProperty

URI http://ethon.consensys.net/StateDataProperty
Superclasses EthOnDataProperty
Subclasses stateRoot
Implies being a StateConcept

accountBalance

A scalar value equal to the number of Wei owned by an account at a given account state.

Status unstable
URI http://ethon.consensys.net/accountBalance
Suggested string accountBalance
Superclasses AccountDataProperty
Implies being a AccountState
Every value is a

accountBalancePrefunded

The amount of Wei an account was prefunded with in a protocol variant. In the case that an account receives multiple prefunds in multiple protocol variants, the amounts are summed. In contrast to the regular account balance it is a property of the account itself and not of its state.

Status unstable
URI http://ethon.consensys.net/accountBalancePrefunded
Suggested string accountBalancePrefunded
Superclasses AccountDataProperty
Implies being a ProtocolAccount
Every value is a

accountCode

The immutable EVM bytecode of the contract account.

Status unstable
URI http://ethon.consensys.net/accountCode
Suggested string accountCode
Superclasses AccountDataProperty
Implies being a ContractAccount
Every value is a

accountCodeHash

The immutable Keccak-256 hash of the EVM code of an account.

Status unstable
URI http://ethon.consensys.net/accountCodeHash
Suggested string accountCodeHash
Superclasses AccountDataProperty
Implies being a ContractAccount
Every value is a

accountNonce

A scalar value equal to the number of transactions sent from this account or, in the case of accounts with associated code, the number of contract-creations made by this account.

Status unstable
URI http://ethon.consensys.net/accountNonce
Suggested string accountNonce
Superclasses AccountDataProperty
Implies being a AccountState
Every value is a

accountPublicKey

The public key of an external account.

Status unstable
URI http://ethon.consensys.net/accountPublicKey
Suggested string accountPublicKey
Superclasses AccountDataProperty
Implies being a ExternalAccount
Every value is a

address

A 160-bit identifier for accounts.

Status unstable
URI http://ethon.consensys.net/address
Suggested string address
Superclasses AccountDataProperty
Implies being a Account
Every value is a

blockBeneficiaryReward

The reward the beneficiary receives for mining a block. It is comprised of the base reward (5ETH), rewards for including uncles (1/32 of block reward per uncle) and the fees of the Tx in the block.

Status unstable
URI http://ethon.consensys.net/blockBeneficiaryReward
Suggested string blockBenficiaryReward
Superclasses BlockDataProperty
Implies being a Block
Every value is a

blockCreationTime

This block's inception date and time.

Status unstable
URI http://ethon.consensys.net/blockCreationTime
Suggested string blockCreationTime
Superclasses BlockDataProperty
Implies being a Nb63b91f71e8745479289a971bd8191f7
Every value is a

blockDifficulty

A scalar value corresponding to the difficulty level of this block. This can be calculated from the previous block's difficulty level and the timestamp.

Status unstable
URI http://ethon.consensys.net/blockDifficulty
Suggested string blockDifficulty
Superclasses BlockDataProperty
Implies being a N175d645d1946476395c2e3277956a59a
Every value is a

blockExtraData

An arbitrary byte array containing data relevant to this block. This must be 32 bytes or fewer.

Status unstable
URI http://ethon.consensys.net/blockExtraData
Suggested string blockExtraData
Superclasses BlockDataProperty
Implies being a Naed4a7f8c66848d5a681e7535356493f
Every value is a

blockGasLimit

A scalar value equal to the current limit of gas expenditure per block. Its purpose is to keep block propagation and processing time low, thereby allowing for a sufficiently decentralized network. Miners have the option to increase or decrease it every block by a certain factor.

Status unstable
URI http://ethon.consensys.net/blockGasLimit
Suggested string blockGasLimit
Superclasses BlockDataProperty
Implies being a N42d04182e5f04e1590eba418cfd72649
Every value is a

blockGasUsed

A scalar value equal to the total gas used by all transactions in this block.

Status unstable
URI http://ethon.consensys.net/blockGasUsed
Suggested string blockGasUsed
Superclasses BlockDataProperty
Implies being a N08c6985bc1074713b84e83e2843c923c
Every value is a

blockHash

The Keccak 256-bit hash of the block's header, in its entierty.

Status unstable
URI http://ethon.consensys.net/blockHash
Suggested string blockHash
Superclasses BlockDataProperty
Implies being a Ne34f63f3a4eb4aee90ef09f26e82c5b9
Every value is a

blockHeader

Relates a block to its block header data. The block header data contains 15 pieces of information: 1. the parent hash, 2. the Uncle hash, 3. a beneficiary address, 4. a state root hash, 5. a transactions root hash, 6. a receipts root hash, 7. a log bloom filter, 8. the difficulty value, 9. the block number, 10. the gas limit of the block, 11. the gas used by all transactions in the block, 12. a scalar timestamp in unix time() format, 13. a byte array containing extra data, 14. a mix hash and 15. the block nonce. The property is functional because a block can have only exactly one block header.

Status unstable
URI http://ethon.consensys.net/blockHeader
Suggested string blockHeader
Superclasses BlockDataProperty
Implies being a Nb3ded1f8990442f785fe4230471f1e85
Every value is a

blockLogsBloom

The Bloom filter composed from indexable information (logger address and log topics) contained in each log entry from the receipt of each transaction in the transactions list.

Status unstable
URI http://ethon.consensys.net/blockLogsBloom
Suggested string blockLogsBloom
Superclasses BlockDataProperty
Implies being a N95cb9d8b6fcd4225b4bc0ffa0e2af5b5
Every value is a

blockMixHash

A 256-bit hash which proves combined with the nonce that a sufficient amount of computation has been carried out on this block.

Status unstable
URI http://ethon.consensys.net/blockMixHash
Suggested string blockMixHash
Superclasses BlockDataProperty
Implies being a N0f8662631fa742f59ab51329b8b459ed
Every value is a

blockNonce

A 64 bit hash which proves combined with the mix-hash that a sufficient amount of computation has been carried out on this block.

Status unstable
URI http://ethon.consensys.net/blockNonce
Suggested string blockNonce
Superclasses BlockDataProperty
Implies being a N5cf53ae3f66048f0b56264f5bc872635
Every value is a

blockSize

The size of the block header in RLP format in bytes.

Status unstable
URI http://ethon.consensys.net/blockSize
Suggested string blockSize
Superclasses BlockDataProperty
Implies being a Block
Every value is a

clientVersion

Relates a node to a string identifying the Ethereum client version it runs. It composed of the client name (e.g. Geth) and a version identifier (e.g. v1.5.4).

Status unstable
URI http://ethon.consensys.net/clientVersion
Suggested string clientVersion
Superclasses NetworkDataProperty
Implies being a Node
Every value is a

cumulativeGasUsed

The cumulative gas used in the block containing the transaction as of immediately after the transaction has happened.

Status unstable
URI http://ethon.consensys.net/cumulativeGasUsed
Suggested string cumulativeGasUsed
Superclasses MessageDataProperty
Implies being a Tx
Every value is a

logData

Relates a log entry to its data.

Status unstable
URI http://ethon.consensys.net/logData
Suggested string logData
Superclasses MessageDataProperty
Implies being a LogEntry
Every value is a

logIndex

Relates a log entry to its index in the transaction reciept of a transaction. The log index defines the order of the log entries of a transaction.

Status unstable
URI http://ethon.consensys.net/logIndex
Suggested string logIndex
Superclasses MessageDataProperty
Implies being a Tx
Every value is a

logTopicData

Relates a log topic to the 32 bytes of data it contains.

Status unstable
URI http://ethon.consensys.net/logTopicData
Suggested string logTopicData
Superclasses MessageDataProperty
Implies being a LogTopic
Every value is a

logTopicIndex

Relates a log topic to its index in the log entry. The log topic index defines the order of the log topics of in log entry.

Status unstable
URI http://ethon.consensys.net/logTopicIndex
Suggested string logTopicIndex
Superclasses MessageDataProperty
Implies being a LogTopic
Every value is a

msgCallDepth

A scalar value equal to the depth of the contract message. A contract message is represented as a call in the Ethereum EVM. This value represents the number of CALL or CREATE opcodes being executed at the time of the message execution.

Status unstable
URI http://ethon.consensys.net/msgCallDepth
Suggested string msgCallDepth
Superclasses MessageDataProperty
Implies being a Tx
Every value is a

msgData

An unlimited size byte array specifying the input data of the call.

Status unstable
URI http://ethon.consensys.net/msgData
Suggested string msgData
Superclasses msgPayload
Implies being a N23874ec3c95c4b3994023f9bffc12f75
Every value is a

msgError

A boolean value indicating whether the message validation resulted in an error. A "true" value indicates an error.

Status unstable
URI http://ethon.consensys.net/msgError
Suggested string msgError
Superclasses MessageDataProperty
Implies being a Msg
Every value is a

msgErrorString

A string informally describing an error that occured during the validation of a message. Only exists if msgError is true.

Status unstable
URI http://ethon.consensys.net/msgErrorString
Suggested string msgErrorString
Superclasses MessageDataProperty
Implies being a Msg
Every value is a

msgGasLimit

A scalar value equal to the maximum amount of gas that should be used in executing this transaction. This is paid up-front, before any computation is done and may not be increased later. If used with contract messages it represents the fraction of the original transaction gas limit still available for execution of the contract message. After all resulting computations are done, excess gas is returned to the sender of the original transaction.

Status unstable
URI http://ethon.consensys.net/msgGasLimit
Suggested string msgGasLimit
Superclasses MessageDataProperty
Implies being a Msg
Every value is a

msgGasUsed

The amount of gas that was used for processing a single message, regardless of which type of message it may be.

Status unstable
URI http://ethon.consensys.net/msgGasUsed
Suggested string msgGasUsed
Superclasses MessageDataProperty
Implies being a Msg
Every value is a

msgInit

An unlimited size byte array specifying the EVM-code for the contract account initialisation procedure.

Status unstable
URI http://ethon.consensys.net/msgInit
Suggested string msgInit
Superclasses msgPayload
Implies being a N9d3f500f22ef4008b8a490c2fec79e7e
Every value is a

msgOutput

The reulting output data from a call contract message.

Status unstable
URI http://ethon.consensys.net/msgOutput
Suggested string msgOutput
Superclasses MessageDataProperty
Implies being a CallContractMsg
Every value is a

msgPayload

An unlimited size byte array specifying the data payload of the message.

Status unstable
URI http://ethon.consensys.net/msgPayload
Suggested string msgPayload
Superclasses MessageDataProperty
Subclasses msgData msgInit
Implies being a Msg
Every value is a

msgRefundBalance

A scalar value equal to the number of Wei that will be refunded as the result of a selfdestruct contract message.

Status unstable
URI http://ethon.consensys.net/msgRefundBalance
Suggested string msgRefundBalance
Superclasses MessageDataProperty
Implies being a SelfdestructContractMsg
Every value is a

number

A scalar value equal to the number of ancestor blocks. The genesis block has a number of zero.

Status unstable
URI http://ethon.consensys.net/number
Suggested string number
Superclasses BlockDataProperty
Implies being a N2083c89c3d71493fb20249afcb44cc08
Every value is a

receiptsRoot

The Keccak 256-bit hash of the root node of the trie structure populated with the receipts of each transaction in the transactions list portion of the block.

Status unstable
URI http://ethon.consensys.net/receiptsRoot
Suggested string blockReceiptsRoot
Superclasses MessageDataProperty
Implies being a ReceiptsTrie
Every value is a

startBlockNumber

The block number of the first block in a new blockchain after a hard fork.

Status unstable
URI http://ethon.consensys.net/startBlockNumber
Suggested string startBlockNumber
Superclasses NetworkDataProperty
Implies being a Blockchain
Every value is a

stateRoot

The Keccak 256-bit hash of the root node of the state trie that represents this state.

Status unstable
URI http://ethon.consensys.net/stateRoot
Suggested string stateRoot
Superclasses StateDataProperty
Implies being a State
Every value is a

storageRoot

A 256-bit hash of the root node of a Merkle Patricia tree that encodes the storage contents of the account (a mapping between 265-bit integer values), encoded into the trie as a mapping from the Keccak 256-bit hash of the 256-bit integer keys to the RLP-encoded 256-bit integer values.

Status unstable
URI http://ethon.consensys.net/storageRoot
Suggested string storageRoot
Superclasses AccountDataProperty
Implies being a AccountStorage
Every value is a

transactionsRoot

The Keccak 256-bit hash of the root node of the trie structure populated with each transaction in the transactions list portion of the block.

Status unstable
URI http://ethon.consensys.net/transactionsRoot
Suggested string blockTransactionsRoot
Superclasses MessageDataProperty
Implies being a TxTrie
Every value is a

txGasPrice

A scalar value equal to the number of Wei to be paid per unit of gas for all computation costs incurred as a result of the execution of this transaction.

Status unstable
URI http://ethon.consensys.net/txGasPrice
Suggested string txGasPrice
Superclasses MessageDataProperty
Implies being a Tx
Every value is a

txGasUsed

The total amount of gas that was used for processing this Tx and all contract messages resulting from it. It is the sum of all msgGasUsed by this Tx and resulting contract messages.

Status unstable
URI http://ethon.consensys.net/txGasUsed
Suggested string txGasUsed
Superclasses MessageDataProperty
Implies being a Tx
Every value is a

txHash

The Keccak 256-bit hash of the transaction

Status unstable
URI http://ethon.consensys.net/txHash
Suggested string txHash
Superclasses MessageDataProperty
Implies being a Tx
Every value is a

txIndex

The position of a transaction in a block.

Status unstable
URI http://ethon.consensys.net/txIndex
Suggested string txIndex
Superclasses MessageDataProperty
Implies being a Tx
Every value is a

txLogsBloom

Relates a transaction to the Bloom filter of its log entries.

Status unstable
URI http://ethon.consensys.net/txLogsBloom
Suggested string txLogsBloom
Superclasses MessageDataProperty
Implies being a Tx
Every value is a

txNonce

A scalar value equal to the number of transactions sent by the sender.

Status unstable
URI http://ethon.consensys.net/txNonce
Suggested string txNonce
Superclasses MessageDataProperty
Implies being a Tx
Every value is a

txR

The values txV, txR and txS correspond to the signature of the transaction and are used to determine the sender of the transaction. The txR value is a Byte array of length 32.

Status unstable
URI http://ethon.consensys.net/txR
Suggested string txR
Superclasses MessageDataProperty
Implies being a Tx
Every value is a

txS

The values txV, txR and txS correspond to the signature of the transaction and are used to determine the sender of the transaction. The value txS is a byte array of length 32.

Status unstable
URI http://ethon.consensys.net/txS
Suggested string txS
Superclasses MessageDataProperty
Implies being a Tx
Every value is a

txV

The values txV, txR and txS correspond to the signature of the transaction and are used to determine the sender of the transaction. The value txV specifies the sign and finiteness of the curve point. Since EIP-155 it is used to realize a replay attack protection. It is calculated in the following way: txV = CHAIN_ID * 2 + 36

Status unstable
URI http://ethon.consensys.net/txV
Suggested string txV
Superclasses MessageDataProperty
Implies being a Tx
Every value is a

uncleBeneficiaryReward

The reward the beneficiary of an uncle receives if a block includes it. The reward amount depends how far up the Uncle is in the blockchain (the number of the block in which it is included minus the uncle's number). An uncle reward is only paid if the distance is smaller than 8. For a distance of 1 the reward is 7/8 of the block reward, for a distance of 7 the reward is 1/8 of the block reward.

Status unstable
URI http://ethon.consensys.net/uncleBeneficiaryReward
Suggested string uncleBenficiaryReward
Superclasses BlockDataProperty
Implies being a Uncle
Every value is a

value

A scalar value equal to the number of Wei to be transferred to the Message call's recipient. In the case of contract creation it is the initial balance of the contract account, paid by the sending account.

Status unstable
URI http://ethon.consensys.net/value
Suggested string value
Superclasses MessageDataProperty
Implies being a Msg
Every value is a

Annotation Property descriptions 5

DASE_RULE

URI http://ethon.consensys.net/DASE_RULE

EthOnAnnotationProperty

Superclass of all EthOn specific annotation properties.

Status unstable
URI http://ethon.consensys.net/EthOnAnnotationProperty
Subclasses simpleDefinition suggestedStringRepresentation

simpleDefinition

This property relates an EthOn concept to a definition in Simple English, intended especially for non-technical users.

Status unstable
URI http://ethon.consensys.net/simpleDefinition
Superclasses EthOnAnnotationProperty
Implies being a

suggestedStringRepresentation

This property relates an EthOn concept with a suggested string representation. It can be used to give the term a name, e.g. in program code.

Status unstable
URI http://ethon.consensys.net/suggestedStringRepresentation
Superclasses EthOnAnnotationProperty
Implies being a

isRuleEnabled

URI http://swrl.stanford.edu/ontologies/3.3/swrla.owl#isRuleEnabled