diff --git a/_autocrossref.yaml b/_autocrossref.yaml
index e7c0bce7..bed96020 100644
--- a/_autocrossref.yaml
+++ b/_autocrossref.yaml
@@ -22,6 +22,7 @@ bitcoinj:
'`block` messages': block message
'`blocktxn` message': blocktxn message
'`blocktxn` messages': blocktxn message
+'CbTx': coinbase special tx
certificate chain:
'`cmpctblock` message': cmpctblock message
'`cmpctblock` messages': cmpctblock message
diff --git a/_includes/devdoc/dash-core/rpcs/rpcs/decoderawtransaction.md b/_includes/devdoc/dash-core/rpcs/rpcs/decoderawtransaction.md
index d93094cb..11101227 100644
--- a/_includes/devdoc/dash-core/rpcs/rpcs/decoderawtransaction.md
+++ b/_includes/devdoc/dash-core/rpcs/rpcs/decoderawtransaction.md
@@ -39,65 +39,133 @@ The `decoderawtransaction` RPC {{summary_decodeRawTransaction}}
Decode a signed one-input, two-output transaction:
{% highlight bash %}
-dash-cli decoderawtransaction 01000000016b490886c0198b028c6c5cb145c4eb3b10\
-55a224a7a105aadeff41b69ec91e060100000069463043022033a61c56fa0867ed67b76b02\
-3204a9dc0ee6b0d63305dc5f65fe94335445ff2f021f712f55399d5238fc7146497c431fc4\
-182a1de0b96fc22716e0845f561d542e012102eacba539d92eb88d4e73bb32749d79f53f6e\
-8d7947ac40a71bd4b26c13b6ec29ffffffff0200205fa0120000001976a914485485425fa9\
-9504ec1638ac4213f3cfc9f32ef388acc0a8f9be010000001976a914811eacc14db8ebb5b6\
-4486dc43400c0226b428a488ac00000000
+dash-cli decoderawtransaction 02000000015d0b26079696875e9fc3cb480420aae3c8\
+b1da628fbb14cc718066df7fe7c5fd010000006a47304402202cfa683981898ad9adb89534\
+23a38f7185ed41e163aa195d608fbe5bc3034910022034e2376aaed1c6576c0dad79d626ee\
+27f706baaed86dabb105979c3e6f6e1cb9012103d14eb001cf0908f3a2333d171f6236497a\
+82318a6a6f649b4d7fd8e5c8922e08feffffff021e3f4b4c000000001976a914b02ae52066\
+542b4aec5cf45c7cae3183d7bd322788ac00f90295000000001976a914252c9de3a0ebd5c9\
+5886187b24969d4ccdb5576e88ac943d0000
{% endhighlight %}
Result:
{% highlight json %}
{
- "txid": "2f124cb550d9967b81914b544dea3783de23e85d67a9816f9bada665ecfe1cd5",
- "size": 224,
- "version": 1,
+ "txid": "f4de3be04efa18e203c9d0b7ad11bb2517f5889338918ed300a374f5bd736ed7",
+ "size": 225,
+ "version": 2,
"type": 0,
- "locktime": 0,
+ "locktime": 15764,
"vin": [
{
- "txid": "061ec99eb641ffdeaa05a1a724a255103bebc445b15c6c8c028b19c08608496b",
+ "txid": "fdc5e77fdf668071cc14bb8f62dab1c8e3aa200448cbc39f5e87969607260b5d",
"vout": 1,
"scriptSig": {
- "asm": "3043022033a61c56fa0867ed67b76b023204a9dc0ee6b0d63305dc5f65fe94335445ff2f021f712f55399d5238fc7146497c431fc4182a1de0b96fc22716e0845f561d542e[ALL] 02eacba539d92eb88d4e73bb32749d79f53f6e8d7947ac40a71bd4b26c13b6ec29",
- "hex": "463043022033a61c56fa0867ed67b76b023204a9dc0ee6b0d63305dc5f65fe94335445ff2f021f712f55399d5238fc7146497c431fc4182a1de0b96fc22716e0845f561d542e012102eacba539d92eb88d4e73bb32749d79f53f6e8d7947ac40a71bd4b26c13b6ec29"
+ "asm": "304402202cfa683981898ad9adb8953423a38f7185ed41e163aa195d608fbe5bc3034910022034e2376aaed1c6576c0dad79d626ee27f706baaed86dabb105979c3e6f6e1cb9[ALL] 03d14eb001cf0908f3a2333d171f6236497a82318a6a6f649b4d7fd8e5c8922e08",
+ "hex": "47304402202cfa683981898ad9adb8953423a38f7185ed41e163aa195d608fbe5bc3034910022034e2376aaed1c6576c0dad79d626ee27f706baaed86dabb105979c3e6f6e1cb9012103d14eb001cf0908f3a2333d171f6236497a82318a6a6f649b4d7fd8e5c8922e08"
},
- "sequence": 4294967295
+ "sequence": 4294967294
}
],
"vout": [
{
- "value": 800.00000000,
- "valueSat": 80000000000,
+ "value": 12.79999774,
+ "valueSat": 1279999774,
"n": 0,
"scriptPubKey": {
- "asm": "OP_DUP OP_HASH160 485485425fa99504ec1638ac4213f3cfc9f32ef3 OP_EQUALVERIFY OP_CHECKSIG",
- "hex": "76a914485485425fa99504ec1638ac4213f3cfc9f32ef388ac",
+ "asm": "OP_DUP OP_HASH160 b02ae52066542b4aec5cf45c7cae3183d7bd3227 OP_EQUALVERIFY OP_CHECKSIG",
+ "hex": "76a914b02ae52066542b4aec5cf45c7cae3183d7bd322788ac",
"reqSigs": 1,
"type": "pubkeyhash",
"addresses": [
- "ySutkc49Khpz1HQN8AfWNitVBLwqtyaxvv"
+ "ycNwAN4DQ7Xnw5XLKg84SR4U1GE22FfLNQ"
]
}
},
{
- "value": 74.99000000,
- "valueSat": 7499000000,
+ "value": 25.00000000,
+ "valueSat": 2500000000,
"n": 1,
"scriptPubKey": {
- "asm": "OP_DUP OP_HASH160 811eacc14db8ebb5b64486dc43400c0226b428a4 OP_EQUALVERIFY OP_CHECKSIG",
- "hex": "76a914811eacc14db8ebb5b64486dc43400c0226b428a488ac",
+ "asm": "OP_DUP OP_HASH160 252c9de3a0ebd5c95886187b24969d4ccdb5576e OP_EQUALVERIFY OP_CHECKSIG",
+ "hex": "76a914252c9de3a0ebd5c95886187b24969d4ccdb5576e88ac",
"reqSigs": 1,
"type": "pubkeyhash",
"addresses": [
- "yY6AmGopsZS31wy1JLHR9P6AC6owFaXwuh"
+ "yPi1JKw5fn8bMFsCCtnkGagogW6GXwGktZ"
]
}
}
],
+ "instantlock": true
+}
+{% endhighlight %}
+
+Decode a coinbase special transaction (CbTx):
+
+{% highlight bash %}
+dash-cli decoderawtransaction 03000500010000000000000000000000000000000000\
+000000000000000000000000000000ffffffff4b02953d045e572a5c08fabe6d6d66663734\
+36333636333230616162346432366264616530386339366263623534010000000000000010\
+00000eaf0000000d2f6e6f64655374726174756d2f0000000002b4e32237010000001976a9\
+14cb594917ad4e5849688ec63f29a0f7f3badb5da688acaae32237010000001976a914a3c5\
+284d3cd896815ac815f2dd76a3a71cb3d8e688ac00000000260100953d00007b8577a1c051\
+bcab40e08c72209f3eddc476d859c8054c57a7287700b2de2db4
+{% endhighlight %}
+
+Result:
+
+{% highlight json %}
+{
+ "txid": "414a3911a274053beb867c79ad9a19bf508041554f147a1a2c73f8f9bc029717",
+ "size": 233,
+ "version": 3,
+ "type": 5,
+ "locktime": 0,
+ "vin": [
+ {
+ "coinbase": "02953d045e572a5c08fabe6d6d666637343633363633323061616234643236626461653038633936626362353401000000000000001000000eaf0000000d2f6e6f64655374726174756d2f",
+ "sequence": 0
+ }
+ ],
+ "vout": [
+ {
+ "value": 52.20000692,
+ "valueSat": 5220000692,
+ "n": 0,
+ "scriptPubKey": {
+ "asm": "OP_DUP OP_HASH160 cb594917ad4e5849688ec63f29a0f7f3badb5da6 OP_EQUALVERIFY OP_CHECKSIG",
+ "hex": "76a914cb594917ad4e5849688ec63f29a0f7f3badb5da688ac",
+ "reqSigs": 1,
+ "type": "pubkeyhash",
+ "addresses": [
+ "yereyozxENB9jbhqpbg1coE5c39ExqLSaG"
+ ]
+ }
+ },
+ {
+ "value": 52.20000682,
+ "valueSat": 5220000682,
+ "n": 1,
+ "scriptPubKey": {
+ "asm": "OP_DUP OP_HASH160 a3c5284d3cd896815ac815f2dd76a3a71cb3d8e6 OP_EQUALVERIFY OP_CHECKSIG",
+ "hex": "76a914a3c5284d3cd896815ac815f2dd76a3a71cb3d8e688ac",
+ "reqSigs": 1,
+ "type": "pubkeyhash",
+ "addresses": [
+ "ybFPBD7hm9KVd2Dubj97K5mw2ymR8gWJre"
+ ]
+ }
+ }
+ ],
+ "extraPayloadSize": 38,
+ "extraPayload": "0100953d00007b8577a1c051bcab40e08c72209f3eddc476d859c8054c57a7287700b2de2db4",
+ "cbTx": {
+ "version": 1,
+ "height": 15765,
+ "merkleRootMNList": "b42ddeb2007728a7574c05c859d876c4dd3e9f20728ce040abbc51c0a177857b"
+ },
"instantlock": false
}
{% endhighlight %}
diff --git a/_includes/devdoc/dash-core/rpcs/rpcs/getrawtransaction.md b/_includes/devdoc/dash-core/rpcs/rpcs/getrawtransaction.md
index dcae467d..36736207 100644
--- a/_includes/devdoc/dash-core/rpcs/rpcs/getrawtransaction.md
+++ b/_includes/devdoc/dash-core/rpcs/rpcs/getrawtransaction.md
@@ -104,30 +104,30 @@ deprecated.
*Examples from Dash Core 0.13.0*
-A transaction in serialized transaction format:
+A classical transaction in serialized transaction format:
{% highlight bash %}
dash-cli getrawtransaction \
- 83f94090899fa63ea6ef913fe13cba851fd07c801bea7eedf73958c58936c19c
+ f4de3be04efa18e203c9d0b7ad11bb2517f5889338918ed300a374f5bd736ed7
{% endhighlight %}
Result (wrapped):
{% highlight text %}
-01000000016b490886c0198b028c6c5cb145c4eb3b1055a224a7a105aadeff41\
-b69ec91e060100000069463043022033a61c56fa0867ed67b76b023204a9dc0e\
-e6b0d63305dc5f65fe94335445ff2f021f712f55399d5238fc7146497c431fc4\
-182a1de0b96fc22716e0845f561d542e012102eacba539d92eb88d4e73bb3274\
-9d79f53f6e8d7947ac40a71bd4b26c13b6ec29ffffffff0200205fa012000000\
-1976a914485485425fa99504ec1638ac4213f3cfc9f32ef388acc0a8f9be0100\
-00001976a914811eacc14db8ebb5b64486dc43400c0226b428a488ac00000000
+02000000015d0b26079696875e9fc3cb480420aae3c8b1da628fbb14cc718066\
+df7fe7c5fd010000006a47304402202cfa683981898ad9adb8953423a38f7185\
+ed41e163aa195d608fbe5bc3034910022034e2376aaed1c6576c0dad79d626ee\
+27f706baaed86dabb105979c3e6f6e1cb9012103d14eb001cf0908f3a2333d17\
+1f6236497a82318a6a6f649b4d7fd8e5c8922e08feffffff021e3f4b4c000000\
+001976a914b02ae52066542b4aec5cf45c7cae3183d7bd322788ac00f9029500\
+0000001976a914252c9de3a0ebd5c95886187b24969d4ccdb5576e88ac943d0000
{% endhighlight %}
Get the same transaction in JSON:
{% highlight bash %}
dash-cli getrawtransaction \
-2f124cb550d9967b81914b544dea3783de23e85d67a9816f9bada665ecfe1cd5 \
+f4de3be04efa18e203c9d0b7ad11bb2517f5889338918ed300a374f5bd736ed7 \
1
{% endhighlight %}
@@ -135,58 +135,149 @@ Result:
{% highlight json %}
{
- "hex": "01000000016b490886c0198b028c6c5cb145c4eb3b1055a224a7a105aadeff41b69ec91e060100000069463043022033a61c56fa0867ed67b76b023204a9dc0ee6b0d63305dc5f65fe94335445ff2f021f712f55399d5238fc7146497c431fc4182a1de0b96fc22716e0845f561d542e012102eacba539d92eb88d4e73bb32749d79f53f6e8d7947ac40a71bd4b26c13b6ec29ffffffff0200205fa0120000001976a914485485425fa99504ec1638ac4213f3cfc9f32ef388acc0a8f9be010000001976a914811eacc14db8ebb5b64486dc43400c0226b428a488ac00000000",
- "txid": "2f124cb550d9967b81914b544dea3783de23e85d67a9816f9bada665ecfe1cd5",
- "size": 224,
- "version": 1,
+ "hex": "02000000015d0b26079696875e9fc3cb480420aae3c8b1da628fbb14cc718066df7fe7c5fd010000006a47304402202cfa683981898ad9adb8953423a38f7185ed41e163aa195d608fbe5bc3034910022034e2376aaed1c6576c0dad79d626ee27f706baaed86dabb105979c3e6f6e1cb9012103d14eb001cf0908f3a2333d171f6236497a82318a6a6f649b4d7fd8e5c8922e08feffffff021e3f4b4c000000001976a914b02ae52066542b4aec5cf45c7cae3183d7bd322788ac00f90295000000001976a914252c9de3a0ebd5c95886187b24969d4ccdb5576e88ac943d0000",
+ "txid": "f4de3be04efa18e203c9d0b7ad11bb2517f5889338918ed300a374f5bd736ed7",
+ "size": 225,
+ "version": 2,
"type": 0,
- "locktime": 0,
+ "locktime": 15764,
"vin": [
{
- "txid": "061ec99eb641ffdeaa05a1a724a255103bebc445b15c6c8c028b19c08608496b",
+ "txid": "fdc5e77fdf668071cc14bb8f62dab1c8e3aa200448cbc39f5e87969607260b5d",
"vout": 1,
"scriptSig": {
- "asm": "3043022033a61c56fa0867ed67b76b023204a9dc0ee6b0d63305dc5f65fe94335445ff2f021f712f55399d5238fc7146497c431fc4182a1de0b96fc22716e0845f561d542e[ALL] 02eacba539d92eb88d4e73bb32749d79f53f6e8d7947ac40a71bd4b26c13b6ec29",
- "hex": "463043022033a61c56fa0867ed67b76b023204a9dc0ee6b0d63305dc5f65fe94335445ff2f021f712f55399d5238fc7146497c431fc4182a1de0b96fc22716e0845f561d542e012102eacba539d92eb88d4e73bb32749d79f53f6e8d7947ac40a71bd4b26c13b6ec29"
+ "asm": "304402202cfa683981898ad9adb8953423a38f7185ed41e163aa195d608fbe5bc3034910022034e2376aaed1c6576c0dad79d626ee27f706baaed86dabb105979c3e6f6e1cb9[ALL] 03d14eb001cf0908f3a2333d171f6236497a82318a6a6f649b4d7fd8e5c8922e08",
+ "hex": "47304402202cfa683981898ad9adb8953423a38f7185ed41e163aa195d608fbe5bc3034910022034e2376aaed1c6576c0dad79d626ee27f706baaed86dabb105979c3e6f6e1cb9012103d14eb001cf0908f3a2333d171f6236497a82318a6a6f649b4d7fd8e5c8922e08"
},
- "sequence": 4294967295
+ "sequence": 4294967294
}
],
"vout": [
{
- "value": 800.00000000,
- "valueSat": 80000000000,
+ "value": 12.79999774,
+ "valueSat": 1279999774,
"n": 0,
"scriptPubKey": {
- "asm": "OP_DUP OP_HASH160 485485425fa99504ec1638ac4213f3cfc9f32ef3 OP_EQUALVERIFY OP_CHECKSIG",
- "hex": "76a914485485425fa99504ec1638ac4213f3cfc9f32ef388ac",
+ "asm": "OP_DUP OP_HASH160 b02ae52066542b4aec5cf45c7cae3183d7bd3227 OP_EQUALVERIFY OP_CHECKSIG",
+ "hex": "76a914b02ae52066542b4aec5cf45c7cae3183d7bd322788ac",
"reqSigs": 1,
"type": "pubkeyhash",
"addresses": [
- "ySutkc49Khpz1HQN8AfWNitVBLwqtyaxvv"
+ "ycNwAN4DQ7Xnw5XLKg84SR4U1GE22FfLNQ"
]
}
},
{
- "value": 74.99000000,
- "valueSat": 7499000000,
+ "value": 25.00000000,
+ "valueSat": 2500000000,
"n": 1,
"scriptPubKey": {
- "asm": "OP_DUP OP_HASH160 811eacc14db8ebb5b64486dc43400c0226b428a4 OP_EQUALVERIFY OP_CHECKSIG",
- "hex": "76a914811eacc14db8ebb5b64486dc43400c0226b428a488ac",
+ "asm": "OP_DUP OP_HASH160 252c9de3a0ebd5c95886187b24969d4ccdb5576e OP_EQUALVERIFY OP_CHECKSIG",
+ "hex": "76a914252c9de3a0ebd5c95886187b24969d4ccdb5576e88ac",
"reqSigs": 1,
"type": "pubkeyhash",
"addresses": [
- "yY6AmGopsZS31wy1JLHR9P6AC6owFaXwuh"
+ "yPi1JKw5fn8bMFsCCtnkGagogW6GXwGktZ"
]
}
}
],
- "blockhash": "00000000e679e76eabc913b15c7f202e7ea831b8fb07beb28ca2a047b03ff3cc",
- "height": 19560,
- "confirmations": 230837,
- "time": 1509568811,
- "blocktime": 1509568811,
+ "blockhash": "0000000005f395d62a40ef9f2a13000bd4076e2131c8671db8333a5b31e4403f",
+ "height": 15765,
+ "confirmations": 1,
+ "time": 1546278750,
+ "blocktime": 1546278750,
+ "instantlock": true
+}
+{% endhighlight %}
+
+
+A special transaction (CbTx) in serialized transaction format:
+
+{% highlight bash %}
+dash-cli getrawtransaction \
+ 414a3911a274053beb867c79ad9a19bf508041554f147a1a2c73f8f9bc029717
+{% endhighlight %}
+
+Result (wrapped):
+
+{% highlight text %}
+0300050001000000000000000000000000000000000000000000000000000000\
+0000000000ffffffff4b02953d045e572a5c08fabe6d6d666637343633363633\
+3230616162346432366264616530386339366263623534010000000000000010\
+00000eaf0000000d2f6e6f64655374726174756d2f0000000002b4e322370100\
+00001976a914cb594917ad4e5849688ec63f29a0f7f3badb5da688acaae32237\
+010000001976a914a3c5284d3cd896815ac815f2dd76a3a71cb3d8e688ac0000\
+0000260100953d00007b8577a1c051bcab40e08c72209f3eddc476d859c8054c\
+57a7287700b2de2db4
+{% endhighlight %}
+
+Get the same transaction in JSON:
+
+{% highlight bash %}
+dash-cli getrawtransaction \
+414a3911a274053beb867c79ad9a19bf508041554f147a1a2c73f8f9bc029717 \
+1
+{% endhighlight %}
+
+Result:
+
+{% highlight json %}
+{
+ "hex": "03000500010000000000000000000000000000000000000000000000000000000000000000ffffffff4b02953d045e572a5c08fabe6d6d666637343633363633323061616234643236626461653038633936626362353401000000000000001000000eaf0000000d2f6e6f64655374726174756d2f0000000002b4e32237010000001976a914cb594917ad4e5849688ec63f29a0f7f3badb5da688acaae32237010000001976a914a3c5284d3cd896815ac815f2dd76a3a71cb3d8e688ac00000000260100953d00007b8577a1c051bcab40e08c72209f3eddc476d859c8054c57a7287700b2de2db4",
+ "txid": "414a3911a274053beb867c79ad9a19bf508041554f147a1a2c73f8f9bc029717",
+ "size": 233,
+ "version": 3,
+ "type": 5,
+ "locktime": 0,
+ "vin": [
+ {
+ "coinbase": "02953d045e572a5c08fabe6d6d666637343633363633323061616234643236626461653038633936626362353401000000000000001000000eaf0000000d2f6e6f64655374726174756d2f",
+ "sequence": 0
+ }
+ ],
+ "vout": [
+ {
+ "value": 52.20000692,
+ "valueSat": 5220000692,
+ "n": 0,
+ "scriptPubKey": {
+ "asm": "OP_DUP OP_HASH160 cb594917ad4e5849688ec63f29a0f7f3badb5da6 OP_EQUALVERIFY OP_CHECKSIG",
+ "hex": "76a914cb594917ad4e5849688ec63f29a0f7f3badb5da688ac",
+ "reqSigs": 1,
+ "type": "pubkeyhash",
+ "addresses": [
+ "yereyozxENB9jbhqpbg1coE5c39ExqLSaG"
+ ]
+ }
+ },
+ {
+ "value": 52.20000682,
+ "valueSat": 5220000682,
+ "n": 1,
+ "scriptPubKey": {
+ "asm": "OP_DUP OP_HASH160 a3c5284d3cd896815ac815f2dd76a3a71cb3d8e6 OP_EQUALVERIFY OP_CHECKSIG",
+ "hex": "76a914a3c5284d3cd896815ac815f2dd76a3a71cb3d8e688ac",
+ "reqSigs": 1,
+ "type": "pubkeyhash",
+ "addresses": [
+ "ybFPBD7hm9KVd2Dubj97K5mw2ymR8gWJre"
+ ]
+ }
+ }
+ ],
+ "extraPayloadSize": 38,
+ "extraPayload": "0100953d00007b8577a1c051bcab40e08c72209f3eddc476d859c8054c57a7287700b2de2db4",
+ "cbTx": {
+ "version": 1,
+ "height": 15765,
+ "merkleRootMNList": "b42ddeb2007728a7574c05c859d876c4dd3e9f20728ce040abbc51c0a177857b"
+ },
+ "blockhash": "0000000005f395d62a40ef9f2a13000bd4076e2131c8671db8333a5b31e4403f",
+ "height": 15765,
+ "confirmations": 5,
+ "time": 1546278750,
+ "blocktime": 1546278750,
"instantlock": false
}
{% endhighlight %}
diff --git a/_includes/devdoc/ref_transactions.md b/_includes/devdoc/ref_transactions.md
index 75d5be6d..d2a95deb 100644
--- a/_includes/devdoc/ref_transactions.md
+++ b/_includes/devdoc/ref_transactions.md
@@ -213,32 +213,108 @@ Dash Core and many other tools print and accept raw transactions
encoded as hex.
Transactions prior to protocol version 70209 defaulted to version 1. Transaction
-version 2 became the default in protocol version 70209. Version 2 transactions
-have the same format, but the `lock_time` parameter was redefined by BIP68
-to enable relative lock-times.
+version 2 was the default in protocol versions => 70209 and < 70213. Version 2
+transactions have the same format, but the `lock_time` parameter was redefined
+by BIP68 to enable relative lock-times.
(Note: transactions in the block chain are allowed to list a higher version
number to permit soft forks, but they are treated as version 2 transactions
by current software.)
+Dash Core 0.13.0 (protocol version 70213) introduced transaction version 3 as
+part of the [DIP2 - Special Transactions](https://github.com/dashpay/dips/blob/master/dip-0002.md)
+ implementation. Details of the changes introduced by
+this feature and currently implemented special transactions can be found in the
+[Special Transactions section](#special-transactions) below as well as in the
+[DIP](https://github.com/dashpay/dips/blob/master/dip-0002.md).
+
A raw transaction has the following top-level format:
| Bytes | Name | Data Type | Description
|----------|--------------|---------------------|-------------
-| 2 | version | uint16_t | Transaction version number; currently version 3. Programs creating transactions using newer consensus rules may use higher version numbers.
-| 2 | type | uint16_t | Transaction type number; 0 for classical transactions; Non-zero for DIP2 special transactions.
+| 2 | version | uint16_t | *Converted from 4 bytes to 2 bytes by DIP2 in v0.13.0*
Transaction version number; currently version 3. Programs creating transactions using newer consensus rules may use higher version numbers.
+| 2 | type | uint16_t | *Added by DIP2 in v0.13.0. Uses 2 bytes that were previously part of `version`*
Transaction type number; 0 for classical transactions; Non-zero for DIP2 special transactions.
| *Varies* | tx_in count | compactSize uint | Number of inputs in this transaction.
| *Varies* | tx_in | txIn | Transaction inputs. See description of txIn below.
| *Varies* | tx_out count | compactSize uint | Number of outputs in this transaction.
| *Varies* | tx_out | txOut | Transaction outputs. See description of txOut below.
| 4 | lock_time | uint32_t | A time (Unix epoch time) or block number. See the [locktime parsing rules][].
-| *Varies* | extra_payload size | compactSize uint | *Added by DIP2*
Variable number of bytes of extra payload for DIP2-based special transactions
-| *Varies* | extra_payload | blob | *Added by DIP2*
Special transaction payload.
+| *Varies* | extra_payload size | compactSize uint | *Added by DIP2 in v0.13.0*
Variable number of bytes of extra payload for DIP2-based special transactions
+| *Varies* | extra_payload | blob | *Added by DIP2 in v0.13.0*
Special transaction payload.
A transaction may have multiple inputs and outputs, so the txIn and
txOut structures may recur within a transaction. CompactSize unsigned
integers are a form of variable-length integers; they are described in
the [CompactSize section][section CompactSize unsigned integer].
+##### JSON-RPC Responses
+{% include helpers/subhead-links.md %}
+
+When retrieving transaction data via Dash Core RPCs (e.g. the `getrawtransaction` RPC),
+the transaction data is returned in the following format.
+
+Version 1 and 2 Transaction Structure (prior to DIP2 activation in Dash Core v0.13.0):
+{% highlight json %}
+{
+ "txid": ,
+ "size": ,
+ "version": 2,
+ "locktime": 0,
+ "vin": [ ],
+ "vout": [ ]
+}
+{% endhighlight %}
+
+Version 3 Transaction Structure (Dash Core v0.13.0+ and activated DIP2):
+{% highlight json %}
+{
+ "txid": ,
+ "size": ,
+ "version": 3,
+ "type": ,
+ "locktime": 0,
+ "vin": [ ],
+ "vout": [ ],
+ "extraPayloadSize": ,
+ "extraPayload": …
+}
+{% endhighlight %}
+
+For special transactions (those using the extraPayload fields), JSON-RPC
+responses contain a parsed JSON representation of the Transaction Payload.
+
+The sample transaction below shows the response for a quorum commitment special
+transaction:
+
+{% highlight json %}
+{
+ "txid": "592a09d08348d970b4d9ba216246a23dac866717b460d3f369a86293b9839eea",
+ "size": 342,
+ "version": 3,
+ "type": 6,
+ "locktime": 0,
+ "vin": [
+ ],
+ "vout": [
+ ],
+ "extraPayloadSize": 329,
+ "extraPayload": "0100841b0000010001211cd3e4230b2bc47530e200447e998a38e960d4ed5f5251e26892130c000000320000000000000032000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "qcTx": {
+ "version": 1,
+ "height": 7044,
+ "commitment": {
+ "version": 1,
+ "llmqType": 1,
+ "quorumHash": "0000000c139268e251525fedd460e9388a997e4400e23075c42b0b23e4d31c21",
+ "signersCount": 0,
+ "validMembersCount": 0,
+ "quorumPublicKey": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+ }
+ },
+ "instantlock": false
+}
+
+{% endhighlight %}
+
{% endautocrossref %}
##### TxIn: A Transaction Input (Non-Coinbase) {#txin}
@@ -422,6 +498,19 @@ Classical (financial) transactions have a `type` of 0 while special transactions
have a `type` defined in the DIP describing them. A list of current special
transaction types is maintained in the [DIP repository](https://github.com/dashpay/dips/blob/master/dip-0002-special-transactions.md).
+**Implemented Special Transactions**
+
+| Release | Tx Version | Tx Type | Payload Size | Payload | Payload JSON | Tx Purpose
+| - | - | - | - | - | - |
+| v0.12.3 | 2 | - | n/a | n/a | n/a |
+| v0.13.0 | 3 | 0 | n/a | n/a | n/a | Standard (Classical) Transaction
+| v0.13.0 | 3 | 1 | compactSize uint | hex | ProRegTx | Masternode Registration
+| v0.13.0 | 3 | 2 | compactSize uint | hex | ProUpServTx | Update Masternode Service
+| v0.13.0 | 3 | 3 | compactSize uint | hex | ProUpRegTx| Update Masternode Operator
+| v0.13.0 | 3 | 4 | compactSize uint | hex | ProUpRevTx| Masternode Operator Revocation
+| v0.13.0 | 3 | 5 | compactSize uint | hex | CbTx| Masternode List Merkle Proof
+| v0.13.0 | 3 | 6 | compactSize uint | hex | QcTx| Long-Living Masternode Quorum Commitment
+
{% endautocrossref %}
#### ProRegTx
@@ -876,10 +965,12 @@ Coinbase Transaction Payload
*Added in protocol version 70213 of Dash Core as described by DIP6*
+**NOTE: This special transaction has no inputs and no outputs and thus also
+pays no fee.**
+
The Quorum Commitment (QcTx) special transaction adds the best final commitment from a
Long-Living Masternode Quorum (LLMQ) Distributed Key Generation (DKG) session to
-the chain. This special transaction has no inputs and no outputs and thus also
-pays no fee.
+the chain.
Since this special transaction pays no fees, it is mandatory by consensus rules
to ensure that miners include it. Exactly one quorum commitment transaction MUST
diff --git a/_includes/references.md b/_includes/references.md
index c1484610..4763e12a 100644
--- a/_includes/references.md
+++ b/_includes/references.md
@@ -397,6 +397,7 @@ http://opensource.org/licenses/MIT.
[bitcoinj micropayment tutorial]: https://bitcoinj.github.io/working-with-micropayments
[block170]: https://www.biteasy.com/block/00000000d1145790a8694403d4063f323d499e655c83426834d4ce2f8dd4a2ee
[casascius address utility]: https://github.com/casascius/Bitcoin-Address-Utility
+[coinbase special tx]: /en/developer-reference#cbtx
[core alert.cpp]: https://github.com/dashpay/dash/blob/master/src/alert.cpp
[core base58.h]: https://github.com/dashpay/dash/blob/master/src/base58.h
[core chainparams.cpp]: https://github.com/dashpay/dash/blob/master/src/chainparams.cpp