diff --git a/docs/server/source/data-models/transaction-model.rst b/docs/server/source/data-models/transaction-model.rst
index c0eaa30b..38e523bd 100644
--- a/docs/server/source/data-models/transaction-model.rst
+++ b/docs/server/source/data-models/transaction-model.rst
@@ -1,17 +1,3 @@
-.. raw:: html
-
-
-
-=====================
The Transaction Model
=====================
@@ -20,35 +6,57 @@ A transaction has the following structure:
.. code-block:: json
{
- "id": "",
- "version": "",
- "inputs": [""],
- "outputs": [""],
- "operation": "",
- "asset": "",
- "metadata": ""
+ "id": "",
+ "version": "",
+ "inputs": [""],
+ "outputs": [""],
+ "operation": "",
+ "asset": {""},
+ "metadata": {""}
}
-Here's some explanation of the contents of a :ref:`transaction `:
+Here's some explanation of the contents:
-- **id**: The :ref:`id ` of the transaction, and also the database primary key.
+- **id**: The ID of the transaction and also the hash of the transaction (loosely speaking). See below for an explanation of how it's computed. It's also the database primary key.
-- **version**: :ref:`Version ` number of the transaction model, so that software can support different transaction models.
+- **version**: The version-number of :ref:`the transaction schema `. As of BigchainDB Server 1.0.0, the only allowed value is ``"1.0"``.
-- **inputs**: List of inputs. Each :ref:`input ` contains a pointer to an unspent output
- and a *crypto fulfillment* that satisfies the conditions of that output. A *fulfillment*
- is usually a signature proving the ownership of the asset.
- See :doc:`./inputs-outputs`.
+- **inputs**: List of inputs.
+ Each input spends/transfers a previous output by satisfying/fulfilling
+ the crypto-conditions on that output.
+ A CREATE transaction should have exactly one input.
+ A TRANSFER transaction should have at least one input (i.e. ≥1).
+ For more details, see the subsection about :ref:`inputs `.
-- **outputs**: List of outputs. Each :ref:`output