.. This file was auto generated by generate_schema_documentation.py ================== Transaction Schema ================== * `Transaction`_ * `Transaction Body`_ * Condition_ * Fulfillment_ * Asset_ * Metadata_ .. raw:: html Transaction ----------- This is the outer transaction wrapper. It contains the ID, version and the body of the transaction, which is also called ``transaction``. Transaction.id ^^^^^^^^^^^^^^ **type:** string A sha3 digest of the transaction. The ID is calculated by removing all derived hashes and signatures from the transaction, serializing it to JSON with keys in sorted order and then hashing the resulting string with sha3. Transaction.transaction ^^^^^^^^^^^^^^^^^^^^^^^ **type:** object See: `Transaction Body`_. Transaction.version ^^^^^^^^^^^^^^^^^^^ **type:** integer BigchainDB transaction schema version. Transaction Body ---------------- See: `Transaction Body`_. Transaction.operation ^^^^^^^^^^^^^^^^^^^^^ **type:** string Type of the transaction: A ``CREATE`` transaction creates an asset in BigchainDB. This transaction has outputs (conditions) but no inputs (fulfillments), so a dummy fulfillment is used. A ``TRANSFER`` transaction transfers ownership of an asset, by providing fulfillments to conditions of earlier transactions. A ``GENESIS`` transaction is a special case transaction used as the sole member of the first block in a BigchainDB ledger. Transaction.asset ^^^^^^^^^^^^^^^^^ **type:** object Description of the asset being transacted. See: `Asset`_. Transaction.fulfillments ^^^^^^^^^^^^^^^^^^^^^^^^ **type:** array (object) Array of the fulfillments (inputs) of a transaction. See: Fulfillment_. Transaction.conditions ^^^^^^^^^^^^^^^^^^^^^^ **type:** array (object) Array of conditions (outputs) provided by this transaction. See: Condition_. Transaction.metadata ^^^^^^^^^^^^^^^^^^^^ **type:** object or null User provided transaction metadata. This field may be ``null`` or may contain an id and an object with freeform metadata. See: `Metadata`_. Condition ---------- An output of a transaction. A condition describes a quantity of an asset and what conditions must be met in order for it to be fulfilled. See also: fulfillment_. Condition.cid ^^^^^^^^^^^^^ **type:** integer Index of this condition's appearance in the Transaction.conditions_ array. In a transaction with 2 conditions, the ``cid``\ s will be 0 and 1. Condition.condition ^^^^^^^^^^^^^^^^^^^ **type:** object Body of the condition. Has the properties: - **details**: Details of the condition. - **uri**: Condition encoded as an ASCII string. Condition.owners_after ^^^^^^^^^^^^^^^^^^^^^^ **type:** array (string) or null List of public keys associated with asset ownership at the time of the transaction. Condition.amount ^^^^^^^^^^^^^^^^ **type:** integer Integral amount of the asset represented by this condition. In the case of a non divisible asset, this will always be 1. Fulfillment ----------- A fulfillment is an input to a transaction, named as such because it fulfills a condition of a previous transaction. In the case of a ``CREATE`` transaction, a fulfillment may provide no ``input``. Fulfillment.fid ^^^^^^^^^^^^^^^ **type:** integer The offset of the fulfillment within the fulfillents array. Fulfillment.owners_before ^^^^^^^^^^^^^^^^^^^^^^^^^ **type:** array (string) or null List of public keys of the previous owners of the asset. Fulfillment.fulfillment ^^^^^^^^^^^^^^^^^^^^^^^ **type:** object or string Fulfillment of a condition_, or put a different way, this is a payload that satisfies a condition in order to spend the associated asset. Fulfillment.input ^^^^^^^^^^^^^^^^^ **type:** object or null Reference to a condition of a previous transaction Asset ----- Description of the asset being transacted. In the case of a ``TRANSFER`` transaction, this field contains only the ID of asset. In the case of a ``CREATE`` transaction, this field may contain properties: Asset.id ^^^^^^^^ **type:** string A `UUID `_ of type 4 (random). Asset.divisible ^^^^^^^^^^^^^^^ **type:** boolean Whether or not the asset has a quantity that may be partially spent. Asset.updatable ^^^^^^^^^^^^^^^ **type:** boolean Whether or not the description of the asset may be updated. Defaults to false. Asset.refillable ^^^^^^^^^^^^^^^^ **type:** boolean Whether the amount of the asset can change after its creation. Defaults to false. Asset.data ^^^^^^^^^^ **type:** object or null User provided metadata associated with the asset. May also be ``null``. Metadata -------- User provided transaction metadata. This field may be ``null`` or may contain an id and an object with freeform metadata. Metadata.id ^^^^^^^^^^^ **type:** string A `UUID `_ of type 4 (random). Metadata.data ^^^^^^^^^^^^^ **type:** object User provided transaction metadata.