Transactions

In this section we can see the structure of transaction storage in the blockchain platform of Waves Enterprise. For some types of transactions, versioning is introduced.

Important

All transactions use the timestamp field containing a time stamp in the Unix Timestamp format in milliseconds.

The values of json requests for signing and sending transactions to the blockchain are samples. Before sending a request to sign a transaction, check whether the request parameters match the current data. For example, if you are sending a transaction to Mainnet, you need to make sure that you have specified the correct transaction fee. Otherwise, the request will finish with an error indicating the correct fee.

Transaction types

Transaction type

Description

1

Genesis transaction

Initial binding of the balance to the addresses of nodes
created at the start of the blockchain

3

Issue Transaction

Tokens issue

4

Transfer Transaction

Tokens transfer

5

Reissue Transaction

Tokens reissue

6

Burn Transaction

Tokens burn

8

Lease Transaction

Tokens lease

9

Lease Cancel Transaction

Cancel of the tokens lease

10

Create Alias Transaction

Alias creation

11

MassTransfer Transaction

Mass tokens transfer. Minimum commission is specified

12

Data Transaction

Transaction with the data in the key-value pairs format.
Minimum commission is specified

13

SetScript Transaction

Transaction which is binding a script with a RIDE contract to an account

14

Sponsorship Transaction

Transaction which is signing a sponsorship asset

15

SetAssetScript

Transaction which is binding a script with a RIDE contract to an asset

101

Genesis Permission Transaction

Assignment of the first network administrator for further distribution of rights

102

Permission Transaction

Issuance/withdrawal of rights from the account

103

CreateContract Transaction

Docker-contract creation

104

CallContract Transaction

Docker-contract call

105

ExecutedContract Transaction

Docker-contract execution

106

DisableContract Transaction

Docker-contract disable

107

UpdateContract Transaction

Docker-contract update

110

GenesisRegisterNode Transaction

Node registration in the genesis block with the blockchain start

111

RegisterNode Transaction

A new node registration

112

CreatePolicy Transaction

Access group creation

113

UpdatePolicy Transaction

Update the access group

114

PolicyDataHash Transaction

A data hash sending to the net

For more information, see Commissions on the network “Waves Enterprise Mainnet”

1. Genesis transaction

Field

Broadcasted JSON

Blockchain state

Type

type

+

+

Byte

id

+

Byte

fee

+

Long

timestamp

+

+

Long

signature

+

ByteStr

recipient

+

+

ByteStr

amount

+

+

Long

height

+

3. Issue Transaction

Field

JSON to sign

Broadcasted JSON

Blockchain state

Type

type

+

+

+

Byte

id

+

Byte

sender

+

+

PublicKeyAccount

sender’s public key

+

+

PublicKeyAccount

fee

+

+

+

Long

timestamp

+ (opt)

+

+

Long

proofs

+

+

List[ByteStr]

version

+

+

+

Byte

assetId

+

ByteStr

name

+

+

+

Array[Byte]

quantity

+

+

+

Long

reissuable

+

+

+

Boolean

decimals

+

+

+

Byte

description

+

+

+

Array[Byte]

chainId

+

+

Byte

script

+ (opt)

+

+

Bytes

password

+ (opt)

String

height

+

JSON to sign

{
   "type": 3,
   "version":2,
   "name": "Test Asset 1",
   "quantity": 100000000000,
   "description": "Some description",
   "sender": "3FSCKyfFo3566zwiJjSFLBwKvd826KXUaqR",
   "password": "",
   "decimals": 8,
   "reissuable": true,
   "fee": 100000000
}

Broadcasted JSON

{
    "type": 3,
    "id": "DnK5Xfi2wXUJx9BjK9X6ZpFdTLdq2GtWH9pWrcxcmrhB",
    "sender": "3N65yEf31ojBZUvpu4LCo7n8D73juFtheUJ",
    "senderPublicKey": "C1ADP1tNGuSLTiQrfNRPhgXx59nCrwrZFRV4AHpfKBpZ",
    "fee": 100000000,
    "timestamp": 1549378509516,
    "proofs": [ "NqZGcbcQ82FZrPh6aCEjuo9nNnkPTvyhrNq329YWydaYcZTywXUwDxFAknTMEGuFrEndCjXBtrueLWaqbJhpeiG" ],
    "version": 2,
    "assetId": "DnK5Xfi2wXUJx9BjK9X6ZpFdTLdq2GtWH9pWrcxcmrhB",
    "name": "Token Name",
    "quantity": 10000,
    "reissuable": true,
    "decimals": 2,
    "description": "SmarToken",
    "chainId": 84,
    "script": "base64:AQa3b8tH",
    "height": 60719
},

4. Transfer Transaction

Field

JSON to sign

Broadcasted JSON

Blockchain state

Type

type

+

+

+

Byte

id

+

Byte

sender

+

+

PublicKeyAccount

sender’s public key

+

+

PublicKeyAccount

fee

+

+

+

Long

timestamp

+ (opt)

+

+

Long

proofs

+

+

List[ByteStr]

version

+

+

+

Byte

recipient

+

+

+

ByteStr

assetId

+ (opt)

+

+

ByteStr

fee assetId

+ (opt)

+

+

Bytes

amount

+

+

+

Long

attachment

+ (opt)

+

+

Bytes

password

+ (opt)

String

height

+

JSON to sign

{
  "type": 4,
  "version": 2,
  "sender": "3M6dRZXaJY9oMA3fJKhMALyYKt13D1aimZX",
  "password": "",
  "recipient": "3M6dRZXaJY9oMA3fJKhMALyYKt13D1aimZX",
  "amount": 40000000000,
  "fee": 100000
}

Broadcasted JSON

{
    "senderPublicKey": "4WnvQPit2Di1iYXDgDcXnJZ5yroKW54vauNoxdNeMi2g",
    "amount": 200000000,
    "fee": 100000,
    "type": 4,
    "version": 2,
    "attachment": "3uaRTtZ3taQtRSmquqeC1DniK3Dv",
    "sender": "3GLWx8yUFcNSL3DER8kZyE4TpyAyNiEYsKG",
    "feeAssetId": null,
    "proofs": [
    "2hRxJ2876CdJ498UCpErNfDSYdt2mTK4XUnmZNgZiq63RupJs5WTrAqR46c4rLQdq4toBZk2tSYCeAQWEQyi72U6"
    ],
    "assetId": null,
    "recipient": "3GPtj5osoYqHpyfmsFv7BMiyKsVzbG1ykfL",
    "id": "757aQzJiQZRfVRuJNnP3L1d369H2oTjUEazwtYxGngCd",
    "timestamp": 1558952680800
}

5. Reissue Transaction

Field

JSON to sign

Broadcasted JSON

Blockchain state

Type

type

+

+

+

Byte

id

+

Byte

sender

+

+

PublicKeyAccount

sender’s public key

+

+

PublicKeyAccount

fee

+

+

+

Long

timestamp

+ (opt)

+

+

Long

proofs

+

+

List[ByteStr]

version

+

+

+

Byte

chainId

+

+

Byte

assetId

+

+

+

ByteStr

quantity

+

+

+

Long

reissuable

+

+

+

Boolean

password

+ (opt)

String

height

JSON to sign

{
    "type": 5,
    "version":2,
    "quantity": 10000,
    "sender": "3N9vL3apA4j2L5PojHW8TYmfHx9Lo2ZaKPB",
    "password": "",
    "assetId": "7bE3JPwZC3QcN9edctFrLAKYysjfMEk1SDjZx5gitSGg",
    "reissuable": true,
    "fee": 100000001
}

Broadcasted JSON

{
    "senderPublicKey": "Fbt5fKHesnQG2CXmsKf4TC8v9oB7bsy2AY56CUopa6H3",
    "quantity": 10000,
    "sender": "3N9vL3apA4j2L5PojHW8TYmfHx9Lo2ZaKPB",
    "chainId": 84,
    "proofs": [ "3gmgGM6rYpxuuR5QvJkugPsERG7yWYF7JN6QzpUGJwT8Lw6SUHkzzk8R22A7cGQz7TQQ5NifKxvAQzwPyDQbwmBg" ],
    "assetId": "7bE3JPwZC3QcN9edctFrLAKYysjfMEk1SDjZx5gitSGg",
    "fee": 100000001,
    "id": "GsNvk15Vu4kqtRmMSpYW21WzgJpZrLBwjCREHWuwnvh5",
    "type": 5,
    "version": 2,
    "reissuable": true,
    "timestamp": 1551447859299,
    "height": 1190
}

6. Burn Transaction

Field

JSON to sign

Broadcasted JSON

Blockchain state

Type

type

+

+

+

Byte

id

+

Byte

sender

+

+

PublicKeyAccount

sender’s public key

+

+

PublicKeyAccount

fee

+

+

+

Long

timestamp

+ (opt)

+

+

Long

proofs

+

+

List[ByteStr]

version

+

+

+

Byte

chainId

+

+

Byte

assetId

+

+

+

ByteStr

quantity

+

+

Long

amount

+

Long

password

+ (opt)

String

height

JSON to sign

{
    "type": 6,
    "version": 2,
    "sender": "3MtrNP7AkTRuBhX4CBti6iT21pQpEnmHtyw",
    "password": "",
    "assetId": "7bE3JPwZC3QcN9edctFrLAKYysjfMEk1SDjZx5gitSGg",
    "quantity": 1000,
    "fee": 100000,
    "attachment": "string"
}

Broadcasted JSON

{
    "senderPublicKey": "Fbt5fKHesnQG2CXmsKf4TC8v9oB7bsy2AY56CUopa6H3",
    "amount": 1000,
    "sender": "3N9vL3apA4j2L5PojHW8TYmfHx9Lo2ZaKPB",
    "chainId": 84,
    "proofs": [ "kzTwsNXjJkzk6dpFFZZXyeimYo6iLTVbCnCXBD4xBtyrNjysPqZfGKk9NdJUTP3xeAPhtEgU9hsdwzRVo1hKMgS" ],
    "assetId": "7bE3JPwZC3QcN9edctFrLAKYysjfMEk1SDjZx5gitSGg",
    "fee": 100000,
    "id": "3yd2HZq7sgun7GakisLH88UeKcpYMUEL4sy57aprAN5E",
    "type": 6,
    "version": 2,
    "timestamp": 1551448489758,
    "height": 1190
}

8. Lease Transaction

Field

JSON to sign

Broadcasted JSON

Blockchain state

Type

type

+

+

+

Byte

id

+

Byte

sender

+

+

PublicKeyAccount

sender’s public key

+

+

PublicKeyAccount

fee

+

+

+

Long

timestamp

+ (opt)

+

+

Long

proofs

+

+

List[ByteStr]

version

+

+

+

Byte

amount

+

+

+

Long

recipient

+

+

+

ByteStr

status

+

password

+ (opt)

String

height

+

JSON to sign

{
    "type": 8,
    "version": 2,
    "sender": "3N9vL3apA4j2L5PojHW8TYmfHx9Lo2ZaKPB",
    "password": "",
    "recipient": "3N1ksBqc6uSksdiYjCzMtvEpiHhS1JjkbPh",
    "amount": 1000,
    "fee": 100000
}

Broadcasted JSON

{
    "senderPublicKey": "Fbt5fKHesnQG2CXmsKf4TC8v9oB7bsy2AY56CUopa6H3",
    "amount": 1000,
    "sender": "3N9vL3apA4j2L5PojHW8TYmfHx9Lo2ZaKPB",
    "proofs": [ "5jvmWKmU89HnxXFXNAd9X41zmiB5fSGoXMirsaJ9tNeyiCAJmjm7MR48g789VucckQw2UExaVXfhsdEBuUrchvrq" ],
    "fee": 100000,
    "recipient": "3N1ksBqc6uSksdiYjCzMtvEpiHhS1JjkbPh",
    "id": "6Tn7ir9MycHW6Gq2F2dGok2stokSwXJadPh4hW8eZ8Sp",
    "type": 8,
    "version": 2,
    "timestamp": 1551449299545,
    "height": 1190
}

9. Lease Cancel Transaction

Field

JSON to sign

Broadcasted JSON

Blockchain state

Type

type

+

+

+

Byte

id

+

Byte

sender

+

+

PublicKeyAccount

sender’s public key

+

+

PublicKeyAccount

fee

+

+

+

Long

timestamp

+ (opt)

+

+

Long

proofs

+

+

List[ByteStr]

version

+

+

+

Byte

chainId

+

+

Byte

leaseId

+ (txId)

+

+

Byte

leaseId

+

password

+ (opt)

String

height

+

JSON to sign

{
    "type": 9,
    "version": 2,
    "fee": 100000,
    "sender": "3N9vL3apA4j2L5PojHW8TYmfHx9Lo2ZaKPB",
    "password": "",
    "txId": "6Tn7ir9MycHW6Gq2F2dGok2stokSwXJadPh4hW8eZ8Sp"
}

Broadcasted JSON

{
   "senderPublicKey": "Fbt5fKHesnQG2CXmsKf4TC8v9oB7bsy2AY56CUopa6H3",
    "leaseId": "6Tn7ir9MycHW6Gq2F2dGok2stokSwXJadPh4hW8eZ8Sp",
    "sender": "3N9vL3apA4j2L5PojHW8TYmfHx9Lo2ZaKPB",
    "chainId": 84,
    "proofs": [ "2Gns72hraH5yay3eiWeyHQEA1wTqiiAztaLjHinEYX91FEv62HFW38Hq89GnsEJFHUvo9KHYtBBrb8hgTA9wN7DM" ],
    "fee": 100000,
    "id": "9vhxB2ZDQcqiumhQbCPnAoPBLuir727qgJhFeBNmPwmu",
    "type": 9,
    "version": 2,
    "timestamp": 1551449835205,
    "height": 1190
}

10. Create Alias Transaction

Field

JSON to sign

Broadcasted JSON

Blockchain state

Type

type

+

+

+

Byte

id

+

Byte

sender

+

+

PublicKeyAccount

sender’s public key

+

+

PublicKeyAccount

fee

+

+

+

Long

timestamp

+ (opt)

+

+

Long

proofs

+

+

List[ByteStr]

version

+

+

+

Byte

alias

+

+

+

Bytes

password

+ (opt)

String

height

+

JSON to sign

{
    "type": 10,
    "version": 2,
    "fee": 100000,
    "sender": "3N9vL3apA4j2L5PojHW8TYmfHx9Lo2ZaKPB",
    "password": "",
    "alias": "hodler"
}

Broadcasted JSON

{
    "type": 10,
    "id": "DJTaiMpb7eLuPW5GcE4ndeE8jWsWPjx8gPYmbZPJjpag",
    "sender": "3N65yEf31ojBZUvpu4LCo7n8D73juFtheUJ",
    "senderPublicKey": "C1ADP1tNGuSLTiQrfNRPhgXx59nCrwrZFRV4AHpfKBpZ",
    "fee": 0,
    "timestamp": 1549290335781,
    "signature": "2qYepod9DhpxVad1yQDbv1QzU4KLKcbjjdtGY7De2272K76nbQfaXsRnyd31hUE8bhvLjjpHRdtoLVzbBDzRZYEY",
    "proofs": [ "2qYepod9DhpxVad1yQDbv1QzU4KLKcbjjdtGY7De2272K76nbQfaXsRnyd31hUE8bhvLjjpHRdtoLVzbBDzRZYEY" ],
    "version": 1,
    "alias": "testperson4",
    "height": 59245
}

11. MassTransfer Transaction

Field

JSON to sign

Broadcasted JSON

Blockchain state

Type

type

+

+

+

Byte

id

+

Byte

sender

+

+

PublicKeyAccount

sender’s public key

+

+

PublicKeyAccount

fee

+

+

+

Long

timestamp

+ (opt)

+

+

Long

proofs

+

+

List[ByteStr]

version

+

+

+

Byte

assetId

+ (opt)

+

+

ByteStr

attachment

+ (opt)

+

+

number of transfers

+

+

+

List[Transfer]

transferCount

+

+

totalAmount

+

password

+ (opt)

String

height

+

JSON to sign

{
    "type": 11,
    "sender": "3N9vL3apA4j2L5PojHW8TYmfHx9Lo2ZaKPB",
    "password": "",
    "fee": 2000000,
    "version": 1,
    "transfers":
    [
        { "recipient": "3MtHszoTn399NfsH3v5foeEXRRrchEVtTRB", "amount": 100000 },
        { "recipient": "3N7BA6J9VUBfBRutuMyjF4yKTUEtrRFfHMc", "amount": 100000 }
    ]
}

Broadcasted JSON

{
    "senderPublicKey": "Fbt5fKHesnQG2CXmsKf4TC8v9oB7bsy2AY56CUopa6H3",
    "fee": 2000000,
    "type": 11,
    "transferCount": 2,
    "version": 1,
    "totalAmount": 200000,
    "attachment": "",
    "sender": "3N9vL3apA4j2L5PojHW8TYmfHx9Lo2ZaKPB",
    "proofs": [ "2gWpMWdgZCjbygCX5US3aAFftKtGPRSK3aWGJ6RDnWJf9hend5sBFAgY6u3Mp4jN8cqwaJ5o8qrKNedGN5CPN1GZ" ],
    "assetId": null,
    "transfers":
    [
        {
            "recipient": "3MtHszoTn399NfsH3v5foeEXRRrchEVtTRB",
            "amount": 100000
        },
        {
            "recipient": "3N7BA6J9VUBfBRutuMyjF4yKTUEtrRFfHMc",
            "amount": 100000
        }
    ],
    "id": "D9jUSHHcJqVAvkFMiRfDBhQbUzoSfQqd9cjaunMmtjdu",
    "timestamp": 1551450279637,
    "height": 1190
}

12. Data Transaction

Warning

The transaction has limits:

  1. "key":"value" pairs count no more than 100,

    "data": [
          {
           "key": "objectId",
           "type": "string",
           "value": "obj:123:1234"
          }, {...}
         ]
    
  2. The byte composition of the signed transaction should not exceed more than 150 KB.

Hint

You do not need to specify the senderPublicKey parameter if you are signing a transaction where the author and the sender are the same.

Field

JSON to sign

Broadcasted JSON

Blockchain state

Type

Size (Bytes)

type

+

+

+

Byte

1

id

+

Byte

1

sender

+

+

PublicKeyAccount

3264

sender’s public key

+ (opt)

+

+

PublicKeyAccount

3264

fee

+

+

+

Long

8

timestamp

+ (opt)

+

+

Long

8

proofs

+

+

List[ByteStr]

32767

version

+

+

Byte

1

authorPublicKey

+

+

PublicKeyAccount

3264

author

+

+

3264

data

+

+

+

3264

password

+ (opt)

String

32767

height

+

8

JSON to sign

{
    "type": 12,
    "version": 1,
    "sender": "3N9vL3apA4j2L5PojHW8TYmfHx9Lo2ZaKPB",
    "password": "",
    "senderPublicKey": "Fbt5fKHesnQG2CXmsKf4TC8v9oB7bsy2AY56CUopa6H3",
    "author": "3N9vL3apA4j2L5PojHW8TYmfHx9Lo2ZaKPB",
    "data": [
        {
        "key": "objectId",
        "type": "string",
        "value": "obj:123:1234"
        }
    ],
    "fee": 100000
}

Broadcasted JSON

{
"senderPublicKey": "Fbt5fKHesnQG2CXmsKf4TC8v9oB7bsy2AY56CUopa6H3",
"authorPublicKey": "Fbt5fKHesnQG2CXmsKf4TC8v9oB7bsy2AY56CUopa6H3",
"data":
[
    {
        "type": "string",
        "value": "obj:123:1234",
        "key": "objectId"
    }
],
"sender": "3N9vL3apA4j2L5PojHW8TYmfHx9Lo2ZaKPB",
"proofs": [ "2T7WQm5XW8cFHfiFkdDEic9oNiT7aFiH3TyKkARERopr1VJvzRKqHAVnQ3eiYZ3uYN8uQnPopQEH4XV8z5SgSwsf" ],
"author": "3N9vL3apA4j2L5PojHW8TYmfHx9Lo2ZaKPB",
"fee": 100000,
"id": "7dMMCQNTusahZ7DWtNGjCwAhRYpjaH1hsepRMbpn2BkD",
"type": 12,
"version": 1,
"timestamp": 1551680510183
}

13. SetScript Transaction

Field

JSON to sign

Broadcasted JSON

Blockchain state

Type

type

+

+

+

Byte

id

+

Byte

sender

+

+

PublicKeyAccount

sender’s public key

+

+

PublicKeyAccount

fee

+

+

+

Long

timestamp

+ (opt)

+

+

Long

proofs

+

+

List[ByteStr]

chainId

+

+

Byte

version

+

+

+

Byte

script

+ (opt)

+

+

Bytes

name

+

+

+

Array[Byte]

description

+ (opt)

+

+

Array[Byte]

password

+ (opt)

String

height

+

JSON to sign

{
    "type": 13,
    "version": 1,
    "sender": "3N9vL3apA4j2L5PojHW8TYmfHx9Lo2ZaKPB",
    "password": "",
    "fee": 1000000,
    "name": "faucet",
    "script": "base64:AQQAAAAHJG1hdGNoMAUAAAACdHgG+RXSzQ=="
}

Broadcasted JSON

{
    "type": 13,
    "id": "HPDypnQJHJskN8kwszF8rck3E5tQiuiM1fEN42w6PLmt",
    "sender": "3N9vL3apA4j2L5PojHW8TYmfHx9Lo2ZaKPB",
    "senderPublicKey": "Fbt5fKHesnQG2CXmsKf4TC8v9oB7bsy2AY56CUopa6H3",
    "fee": 1000000,
    "timestamp": 1545986757233,
    "proofs": [ "2QiGYS2dqh8QyN7Vu2tAYaioX5WM6rTSDPGbt4zrWS7QKTzojmR2kjppvGNj4tDPsYPbcDunqBaqhaudLyMeGFgG" ],
    "chainId": 84,
    "version": 1,
    "script": "base64:AQQAAAAHJG1hdGNoMAUAAAACdHgG+RXSzQ==",
    "name": "faucet",
    "description": "",
    "height": 3805
}

14. SponsorshipTransaction

Field

JSON to sign

Broadcasted JSON

Blockchain state

Type

type

+

+

+

Byte

id

+

Byte

sender

+

+

PublicKeyAccount

sender’s public key

+

+

PublicKeyAccount

assetId

+ (opt)

+

+

ByteStr

fee

+

+

+

Long

isEnabled

+

+

+

Boolean

timestamp

+ (opt)

+

+

Long

proofs

+

+

List[ByteStr]

chainId

+

+

Byte

version

+

+

+

Byte

script

+ (opt)

+

+

Bytes

name

+

+

+

Array[Byte]

description

+ (opt)

+

+

Array[Byte]

password

+ (opt)

String

height

+

JSON to sign

{
    "sender": "3JWDUsqyJEkVa1aivNPP8VCAa5zGuxiwD9t",
    "assetId": "G16FvJk9vabwxjQswh9CQAhbZzn3QrwqWjwnZB3qNVox",
    "fee": 100000000,
    "isEnabled": false,
    "type": 14,
    "password": "1234",
    "version": 1
}

Broadcasted JSON

{
    "type": 14,
    "id": "Ht6kpnQJHJskN8kwszF8rck3E5tQiuiM1fEN42wGfdk7",
    "sender": "3JWDUsqyJEkVa1aivNPP8VCAa5zGuxiwD9t",
    "senderPublicKey": "Gt55fKHesnQG2CXmsKf4TC8v9oB7bsy2AY56CUophy89",
    "fee": 100000000,
    "assetId": "G16FvJk9vabwxjQswh9CQAhbZzn3QrwqWjwnZB3qNVox",
    "timestamp": 1545986757233,
    "proofs": [ "5TfgYS2dqh8QyN7Vu2tAYaioX5WM6rTSDPGbt4zrWS7QKTzojmR2kjppvGNj4tDPsYPbcDunqBaqhaudLyMeGFh7" ],
    "chainId": 84,
    "version": 1,
    "isEnabled": false,
    "height": 3865
}

15. SetAssetScriptTransaction

Field

JSON to sign

Broadcasted JSON

Blockchain state

Type

type

+

+

+

Byte

id

+

Byte

sender

+

+

PublicKeyAccount

sender’s public key

+

+

PublicKeyAccount

fee

+

+

+

Long

timestamp

+ (opt)

+

+

Long

proofs

+

+

List[ByteStr]

version

+

+

+

Byte

chainId

+

+

Byte

assetId

+

+

+

ByteStr

script

+ (opt)

+

+

Bytes

password

+ (opt)

String

height

+

JSON to sign

{
    "type": 15,
    "version": 1,
    "sender": "3N9vL3apA4j2L5PojHW8TYmfHx9Lo2ZaKPB",
    "password": "",
    "fee": 100000000,
    "script": "base64:AQQAAAAHJG1hdGNoMAUAAAACdHgG+RXSzQ==",
    "assetId": "7bE3JPwZC3QcN9edctFrLAKYysjfMEk1SDjZx5gitSGg"
}

Broadcasted JSON

{
    "type": 15,
    "id": "CQpEM9AEDvgxKfgWLH2HxE82iAzpXrtqsDDcgZGPAF9J",
    "sender": "3N65yEf31ojBZUvpu4LCo7n8D73juFtheUJ",
    "senderPublicKey": "C1ADP1tNGuSLTiQrfNRPhgXx59nCrwrZFRV4AHpfKBpZ",
    "fee": 100000000,
    "timestamp": 1549448710502,
    "proofs": [ "64eodpuXQjaKQQ4GJBaBrqiBtmkjSxseKC97gn6EwB5kZtMr18mAUHPRkZaHJeJxaDyLzGEZKqhYoUknWfNhXnkf" ],
    "version": 1,
    "chainId": 84,
    "assetId": "DnK5Xfi2wXUJx9BjK9X6ZpFdTLdq2GtWH9pWrcxcmrhB",
    "script": "base64:AQQAAAAHJG1hdGNoMAUAAAACdHgG+RXSzQ==",
    "height": 61895
}

101. GenesisPermitTransaction

Field

JSON to sign

Broadcasted JSON

Blockchain state

Type

type

+

+

Byte

id

+

Byte

fee

+

Long

timestamp

+

+

Long

signature

+

ByteStr

target

+

+

ByteStr

role

+

+

String

height

102. PermissionTransaction

Field

JSON to sign

Broadcasted JSON

Blockchain state

Type

type

+

+

+

Byte

id

+

Byte

sender

+

+

PublicKeyAccount

sender’s public key

+

+

PublicKeyAccount

fee

+

Long

timestamp

+ (opt)

+

+

Long

proofs

+

+

List[ByteStr]

version

+

Byte

target

+

+

+

ByteStr

PermissionOp

+

PermissionOp

opType

+

+

String

role

+

+

String

dueTimestamp

+ (opt)

+

Option[Long]

password

+ (opt)

String

height

+

JSON to sign

{
   "type":102,
   "sender":"3GLWx8yUFcNSL3DER8kZyE4TpyAyNiEYsKG",
   "password": "",
   "senderPublicKey":"4WnvQPit2Di1iYXDgDcXnJZ5yroKW54vauNoxdNeMi2g",
   "fee":0,
   "proofs":[""],
   "target":"3GPtj5osoYqHpyfmsFv7BMiyKsVzbG1ykfL",
   "opType":"add",
   "role":"contract_developer",
   "dueTimestamp":null
 }

Broadcasted JSON

{
  "senderPublicKey": "4WnvQPit2Di1iYXDgDcXnJZ5yroKW54vauNoxdNeMi2g",
  "role": "contract_developer",
  "sender": "3GLWx8yUFcNSL3DER8kZyE4TpyAyNiEYsKG",
  "proofs": [
    "5ABJCRTKGo6jmDZCRWcLQc257CCeczmcjmtfJmbBE7TP3KsVkwvisH9kEkfYPckVCzEMKZTCd3LKAPcN8o4Git3j"
  ],
  "fee": 0,
  "opType": "add",
  "id": "8zVUH7nsDCcpwyfxiq8DCTgqL7Q23FW1KWepB9EZcFG6",
  "type": 102,
  "dueTimestamp": null,
  "timestamp": 1559048837487,
  "target": "3GPtj5osoYqHpyfmsFv7BMiyKsVzbG1ykfL"
}

103. CreateContractTransaction

Warning

The byte composition of the signed transaction should not exceed more than 150 KB.

The contractVersion field specifies the contract version, the 1 value is for the new contract, and the 2 value is for the updated contract. The contract is updated by using the 107 transaction. When you create a contract, the 104 transaction is automatically created, this transaction is calling the contract to validate it. If the contract fails or runs with error, transactions 103 and 104 will be discarded and will not fall into the block.

The feeAssetId field is optional and used only for gRPC contracts (the field value version = 2).

Field

JSON to sign

Broadcasted JSON

Blockchain state

Type

Size(Bytes)

type

+

+

+

Byte

1

id

+

Byte

1

sender

+

+

PublicKeyAccount

3264

sender’s public key

+

+

PublicKeyAccount

3264

password

+ (opt)

String

32767

fee

+

+

+

Long

8

timestamp

+ (opt)

+

+

Long

8

proofs

+

+

List[ByteStr]

32767

version

+

+

Byte

1

fee assetId

+ (opt)

Byte

1

image

+

+

+

Array[Bytes]

32767

imageHash

+

+

+

Array[Bytes]

32767

contractName

+

+

+

Array[Bytes]

32767

params

+

+

+

List[DataEntry[_]]

32767

height

+

8

JSON to sign

{
  "fee": 100000000,
  "image": "stateful-increment-contract:latest",
  "imageHash": "7d3b915c82930dd79591aab040657338f64e5d8b842abe2d73d5c8f828584b65",
  "contractName": "stateful-increment-contract",
  "sender": "3PudkbvjV1nPj1TkuuRahh4sGdgfr4YAUV2",
  "password": "",
  "params": [],
  "type": 103,
  "version": 1,
 }

Broadcasted JSON

{
    "type": 103,
    "id": "ULcq9R7PvUB2yPMrmBdxoTi3bcRmQPT3JDLLLZVj4Ky",
    "sender": "3N3YTj1tNwn8XUJ8ptGKbPuEFNa9GFnhqew",
    "senderPublicKey": "3kW7vy6nPC59BXM67n5N56rhhAv38Dws5skqDsjMVT2M",
    "fee": 500000,
    "timestamp": 1550591678479,
    "proofs": [ "yecRFZm9iBLyDy93bDVaNo1PR5Qkkic7196GAgUt9TNH1cnQphq4yGQQ8Fxj4BYA4TaqYVw5qxtWzGMPQyVeKYv" ],
    "version": 1,
    "image": "stateful-increment-contract:latest",
    "imageHash": "7d3b915c82930dd79591aab040657338f64e5d8b842abe2d73d5c8f828584b65",
    "contractName": "stateful-increment-contract",
    "params": [],
    "height": 1619
}

104. CallContractTransaction

Warning

The byte composition of the signed transaction should not exceed more than 150 KB.

Field

JSON to sign

Broadcasted JSON

Blockchain state

Type

Size(Bytes)

type

+

+

+

Byte

1

id

+

Byte

1

sender

+

+

PublicKeyAccount

3264

sender’s public key

+

+

PublicKeyAccount

3264

fee

+

+

+

Long

8

timestamp

+ (opt)

+

+

Long

8

proofs

+

+

List[ByteStr]

32767

version

+

+

Byte

1

contractVersion

+

+

+

Byte

1

contractId

+

+

+

ByteStr

32767

params

+

+

+

List[DataEntry[_]]

32767

height

+

8

password

+ (opt)

String

32767

JSON to sign

{
    "contractId": "2sqPS2VAKmK77FoNakw1VtDTCbDSa7nqh5wTXvJeYGo2",
    "fee": 10,
    "sender": "3PKyW5FSn4fmdrLcUnDMRHVyoDBxybRgP58",
    "password": "",
    "type": 104,
    "params":
    [
        {
           "type": "integer",
           "key": "a",
           "value": 1
        },
        {
           "type": "integer",
           "key": "b",
           "value": 100

        }
    ],
    "version": 1,
    "contractVersion": 1
}

Broadcasted JSON

{
    "type": 104,
    "id": "9fBrL2n5TN473g1gNfoZqaAqAsAJCuHRHYxZpLexL3VP",
    "sender": "3PKyW5FSn4fmdrLcUnDMRHVyoDBxybRgP58",
    "senderPublicKey": "2YvzcVLrqLCqouVrFZynjfotEuPNV9GrdauNpgdWXLsq",
    "fee": 10,
    "timestamp": 1549365736923,
    "proofs": [ "2q4cTBhDkEDkFxr7iYaHPAv1dzaKo5rDaTxPF5VHryyYTXxTPvN9Wb3YrsDYixKiUPXBnAyXzEcnKPFRCW9xVp4v" ],
    "version": 1,
    "contractVersion": 1,
    "contractId": "2sqPS2VAKmK77FoNakw1VtDTCbDSa7nqh5wTXvJeYGo2",
    "params":
    [
        {
        "key": "a",
        "type": "integer",
        "value": 1
        },
        {
        "key": "b",
        "type": "integer",
        "value": 100
        }
    ]
}

105. ExecutedContractTransaction

Warning

The byte composition of the signed transaction should not exceed more than 150 KB.

Field

Broadcasted JSON

Blockchain state

Type

type

+

+

Byte

id

+

Byte

sender

+

PublicKeyAccount

sender’s public key

+

+

PublicKeyAccount

fee

+

Long

timestamp

+

+

Long

proofs

+

+

List[ByteStr]

version

+

+

Byte

tx

+

+

ExecutableTransaction

results

+

+

List[DataEntry[_]]

height

+

password

+ (opt)

String

Broadcasted JSON

{
    "type": 105,
    "id": "38GmSVC5s8Sjeybzfe9RQ6p1Mb6ajb8LYJDcep8G8Umj",
    "sender": "3N3YTj1tNwn8XUJ8ptGKbPuEFNa9GFnhqew",
    "senderPublicKey": "3kW7vy6nPC59BXM67n5N56rhhAv38Dws5skqDsjMVT2M",
    "password": "",
    "fee": 500000,
    "timestamp": 1550591780234,
    "proofs": [ "5whBipAWQgFvm3myNZe6GDd9Ky8199C9qNxLBHqDNmVAUJW9gLf7t9LBQDi68CKT57dzmnPJpJkrwKh2HBSwUer6" ],
    "version": 1,
    "tx":
         {
            "type": 103,
            "id": "ULcq9R7PvUB2yPMrmBdxoTi3bcRmQPT3JDLLLZVj4Ky",
            "sender": "3N3YTj1tNwn8XUJ8ptGKbPuEFNa9GFnhqew",
            "senderPublicKey": "3kW7vy6nPC59BXM67n5N56rhhAv38Dws5skqDsjMVT2M",
            "fee": 500000,
            "timestamp": 1550591678479,
            "proofs": [ "yecRFZm9iBLyDy93bDVaNo1PR5Qkkic7196GAgUt9TNH1cnQphq4yGQQ8Fxj4BYA4TaqYVw5qxtWzGMPQyVeKYv" ],
            "version": 1,
            "image": "stateful-increment-contract:latest",
            "imageHash": "7d3b915c82930dd79591aab040657338f64e5d8b842abe2d73d5c8f828584b65",
            "contractName": "stateful-increment-contract",
            "params": [],
            "height": 1619
          },
    "results": [],
    "height": 1619
}

106. DisableContractTransaction

Field

JSON to sign

Broadcasted JSON

Blockchain state

Type

type

+

+

+

Byte

id

+

Byte

sender

+

+

PublicKeyAccount

sender’s public key

+

+

PublicKeyAccount

fee

+

+

+

Long

timestamp

+ (opt)

+

+

Long

proofs

+

+

List[ByteStr]

version

+

+

Byte

contractId

+

+

+

ByteStr

height

+

password

+ (opt)

String

JSON to sign

{
    "sender":"3N3YTj1tNwn8XUJ8ptGKbPuEFNa9GFnhqew",
    "password": "",
    "contractId":"Fz3wqAWWcPMT4M1q6H7crLKtToFJvbeLSvqjaU4ZwMpg",
    "fee":500000,
    "type":106
}

Broadcasted JSON

{
"type": 106,
"id": "8Nw34YbosEVhCx18pd81HqYac4C2pGjyLKck8NhSoGYH",
"sender": "3N3YTj1tNwn8XUJ8ptGKbPuEFNa9GFnhqew",
"senderPublicKey": "3kW7vy6nPC59BXM67n5N56rhhAv38Dws5skqDsjMVT2M",
"fee": 500000,
"proofs": [ "5GqPQkuRvG6LPXgPoCr9FogAdmhAaMbyFb5UfjQPUKdSc6BLuQSz75LAWix1ok2Z6PC5ezPpjqzqnr15i3RQmaEc" ],
"version": 1,
"contractId": "Fz3wqAWWcPMT4M1q6H7crLKtToFJvbeLSvqjaU4ZwMpg",
"height": 1632
}

107. UpdateContractTransaction

Warning

The byte composition of the signed transaction should not exceed more than 150 KB.

Field

JSON to sign

Broadcasted JSON

Blockchain state

Type

Size(Bytes)

type

+

+

+

Byte

1

id

+

Byte

1

sender

+

+

PublicKeyAccount

3264

sender’s public key

+

+

PublicKeyAccount

3264

image

+

+

+

Array[Bytes]

32767

imageHash

+

+

+

Array[Bytes]

32767

fee

+

+

+

Long

8

timestamp

+ (opt)

+

+

Long

8

proofs

+

+

List[ByteStr]

32767

version

+

+

+

Byte

1

contractId

+

+

+

ByteStr

32767

height

+

8

password

+ (opt)

String

32767

JSON to sign

{
  "image" : "registry.wvservices.com/we-sc/tdm-increment3:1028.1",
  "sender" : "3Mxxz9pBYS5fJMARJNQmzYUHxiWAtvMzSRT",
  "password": "",
  "fee" : 100000000,
  "contractId" : "EnsihTUHSNAB9RcWXJbiWT98X3hYtCw3SBzK8nHQRCWA",
  "imageHash" : "0e5d280b9acf6efd8000184ad008757bb967b5266e9ebf476031fad1488c86a3",
  "type" : 107,
  "version" : 1
 }

Broadcasted JSON

{
 "senderPublicKey":"5qBRDm74WKR5xK7LPs8vCy9QjzzqK4KCb8PL36fm55S3kEi2XZETHFgMgp3D13AwgE8bBkYrzvEvQZuabMfEyJwW",
 "tx":
 {
 "senderPublicKey":"5qBRDm74WKR5xK7LPs8vCy9QjzzqK4KCb8PL36fm55S3kEi2XZETHFgMgp3D13AwgE8bBkYrzvEvQZuabMfEyJwW",
 "image":"registry.wvservices.com/we-sc/tdm-increment3:1028.1",
 "sender":"3Mxxz9pBYS5fJMARJNQmzYUHxiWAtvMzSRT",
 "proofs":["3tNsTyteeZrxEbVSv5zPT6dr247nXsVWR5v7Khx8spypgZQUdorCQZV2guTomutUTcyxhJUjNkQW4VmSgbCtgm1Z"],
 "fee":0,
 "contractId":"EnsihTUHSNAB9RcWXJbiWT98X3hYtCw3SBzK8nHQRCWA",
 "id":"HdZdhXVveMT1vYzGTviCoGQU3aH6ZS3YtFpYujWeGCH6",
 "imageHash":"17d72ca20bf9393eb4f4496fa2b8aa002e851908b77af1d5db6abc9b8eae0217",
 "type":107,"version":1,"timestamp":1572355661572},
 "sender":"3HfRBedCpWi3vEzFSKEZDFXkyNWbWLWQmmG",
 "proofs":["28ADV8miUVN5EFjhqeFj6MADSXYjbxA3TsxSwFVs18jXAsHVaBczvnyoUSaYJsjRNmaWgXbpbduccRxpKGTs6tro"],
 "fee":0,"id":"7niVY8mjzeKqLBePvhTxFRfLu7BmcwVfqaqtbWAN8AA2",
 "type":105,
 "version":1,
 "results":[],
 "timestamp":1572355666866
 }
}

110. GenesisRegisterNodeTransaction

Field

Broadcasted JSON

Blockchain state

Type

type

+

+

Byte

id

+

Byte

fee

+

Long

timestamp

+

+

Long

signature

+

Bytes

version

+

Byte

targetPubKey

+

+

height

+

111. RegisterNodeTransaction

Field

JSON to sign

Broadcasted JSON

Blockchain state

Type

type

+

+

+

Byte

id

+

Byte

sender

+

+

PublicKeyAccount

sender’s public key

+

+

PublicKeyAccount

fee

+

+

Long

timestamp

+ (opt)

+

+

Long

proofs

+

+

List[ByteStr]

version

+

Byte

targetPubKey

+

+

+

PublicKeyAccount

nodeName

+

+

+

String

opType

+

+

+

height

+

password

+ (opt)

String

JSON to sign

{
"type": 111,
"opType": "add",
"sender":"3HYW75PpAeVukmbYo9PQ3mzSHdKUgEytUUz",
"password": "",
"targetPubKey": "apgJP9atQccdBPAgJPwH3NBVqYXrapgJP9atQccdBPAgJPwHapgJP9atQccdBPAgJPwHDKkh6A8",
"nodeName": "Node #1",
"fee": 500000,
}

112. CreatePolicyTransaction

Field

JSON to sign

Broadcasted JSON

Blockchain state

Type

type

+

+

+

Byte

id

+

+

Byte

sender

+

+

+

PublicKeyAccount

sender’s public key

+

+

PublicKeyAccount

policyName

+

+

+

String

recipients

+

+

+

Array[Byte]

owners

+

+

+

Array[Byte]

fee

+

+

+

Long

timestamp

+ (opt)

+

+

Long

proofs

+

+

List[ByteStr]

height

+

Long

description

+

+

+

String

password

+ (opt)

String

JSON to sign

 {
  "sender": "3NkZd8Xd4KsuPiNVsuphRNCZE3SqJycqv8d",
  "policyName": "Policy# 7777",
  "password":"sfgKYBFCF@#$fsdf()*%",
  "recipients": [
    "3NkZd8Xd4KsuPiNVsuphRNCZE3SqJycqv8d",
    "3NotQaBygbSvYZW4ftJ2ZwLXex4rTHY1Qzn",
    "3Nm84ERiJqKfuqSYxzMAhaJXdj2ugA7Ve7T",
        "3NtNJV44wyxRXv2jyW3yXLxjJxvY1vR88TF",
        "3NxAooHUoLsAQvxBSqjE91WK3LwWGjiiCxx"
  ],
  "fee": 15000000,
  "description": "Buy bitcoin by 1c",
  "owners": [
    "3NkZd8Xd4KsuPiNVsuphRNCZE3SqJycqv8d",
    "3NotQaBygbSvYZW4ftJ2ZwLXex4rTHY1Qzn",
    "3Nm84ERiJqKfuqSYxzMAhaJXdj2ugA7Ve7T"
  ],
  "type": 112
}

113. UpdatePolicyTransaction

Field

JSON to sign

Broadcasted JSON

Blockchain state

Type

type

+

+

+

Byte

id

+

+

Byte

sender

+

+

+

PublicKeyAccount

sender’s public key

+

+

PublicKeyAccount

policyId

+

+

+

String

recipients

+

+

+

Array[Byte]

owners

+

+

+

Array[Byte]

fee

+

+

+

Long

timestamp

+

+

Long

proofs

+

+

List[ByteStr]

height

+

Long

opType

+

+

+

description

+

+

+

String

password

+

String

JSON to sign

{
  "policyId": "7wphGbhqbmUgzuN5wzgqwqtViTiMdFezSa11fxRV58Lm",
  "password":"sfgKYBFCF@#$fsdf()*%",
  "sender": "3NkZd8Xd4KsuPiNVsuphRNCZE3SqJycqv8d",
  "recipients": [
  "3NkZd8Xd4KsuPiNVsuphRNCZE3SqJycqv8d",
  "3NotQaBygbSvYZW4ftJ2ZwLXex4rTHY1Qzn",
  "3Nm84ERiJqKfuqSYxzMAhaJXdj2ugA7Ve7T",
      "3NtNJV44wyxRXv2jyW3yXLxjJxvY1vR88TF",
      "3NxAooHUoLsAQvxBSqjE91WK3LwWGjiiCxx",
      "3NwJfjG5RpaDfxEhkwXgwD7oX21NMFCxJHL"
   ],
   "fee": 15000000,
   "opType": "add",
  "owners": [
    "3NkZd8Xd4KsuPiNVsuphRNCZE3SqJycqv8d",
    "3NotQaBygbSvYZW4ftJ2ZwLXex4rTHY1Qzn",
    "3Nm84ERiJqKfuqSYxzMAhaJXdj2ugA7Ve7T"
  ],
  "type": 113,
 }

114. PolicyDataHashTransaction

When the user sends confidential data to the network using POST /privacy/sendData, the node automatically will create the 114 transaction.

Field

Broadcasted JSON

Blockchain state

Type

type

+

+

Byte

id

+

+

Byte

sender

+

+

PublicKeyAccount

sender’s public key

+

+

PublicKeyAccount

policyId

+

+

String

dataHash

+

+

String

fee

+

+

Long

timestamp

+

+

Long

proofs

+

+

List[ByteStr]

height

+

Long