WebSocket API

Stegos Node offers experimental asynchronous WebSocket API. This API allow you to manage accounts, create and track transactions, receive notifications and so on.


Prerequisites

By default, Node starts WebSocket API server on ws://127.0.0.1:3144/ . You can override this value by providing --api-endpoint command-line option to Node or by setting STEGOS_API_ENDPOINT environment variable.

To communicate with Node, you will need API TOKEN. API TOKEN is 16-byte long AES128 encryption key encoded into 24-byte long Base64 string. This token is generated by Node automatically on the first run:

$HOME/.local/share/stegos/api.token
$HOME/Library/Application Support/stegos/api.token
C:\Users\$USER\AppData\Roaming\api.token
/data/api.token`

Protocol

Framing

API uses Text WebSocket frames. Binary frames are no currently supported.

Each Text frame contains a Base64-encoded version of AES-128 encrypted JSON payload. This design decision was dictated by the limitations of Rust’s WebSocket technology. We plan to switch to SSL/TLS in the future.

Encoding:

key = base64_decode(API_TOKEN)
payload = aes128_decode(base64_decode(websocket_text_message), key)

Decoding:

key = base64_decode(API_TOKEN)
websocket_text_message = base64_encode(aes128_encode(payload, key))

Here is basic example how to encode/decode AES messages:

import base64
import binascii
import json
import sys

from Crypto.Cipher import AES
from Crypto.Util import Counter
from Crypto import Random

def encrypt(key, plaintext):
    assert len(key) == 16

    # Choose a random, 16-byte IV.
    iv = Random.new().read(AES.block_size)

    # Convert the IV to a Python integer.
    iv_int = int(binascii.hexlify(iv), 16)

    # Create a new Counter object with IV = iv_int.
    ctr = Counter.new(AES.block_size * 8, initial_value=iv_int)

    # Create AES-CTR cipher.
    aes = AES.new(key, AES.MODE_CTR, counter=ctr)

    # Encrypt and return IV and ciphertext.
    ciphertext = aes.encrypt(plaintext)
    return iv+ciphertext

def decrypt(key, ciphertext):
    assert len(key) == 16

    # Convert the IV to a Python integer.
    iv_int = int(binascii.hexlify(ciphertext[:16]), 16)

    # Create a new Counter object with IV = iv_int.
    ctr = Counter.new(AES.block_size * 8, initial_value=iv_int)

    # Create AES-CTR cipher.
    aes = AES.new(key, AES.MODE_CTR, counter=ctr)

    # Decrypt and return the plaintext.
    plaintext = aes.decrypt(ciphertext[16:])
    return plaintext
use crypto::aes::{self, KeySize};
use crypto::symmetriccipher::SynchronousStreamCipher;
use std::iter::repeat;

pub fn encrypt(key: [u8; 16], plaintext: &[u8]) -> Vec<u8> {
    let mut gen = thread_rng();
    let mut nonce: Vec<u8> = repeat(0u8).take(16).collect();
    gen.fill_bytes(&mut nonce[..]);
    let mut cipher = aes::ctr(KeySize::KeySize128, &key.0[..], &nonce);
    let mut output: Vec<u8> = repeat(0u8).take(16 + plaintext.len()).collect();
    output[..16].copy_from_slice(&nonce[..]);
    cipher.process(&plaintext, &mut output[16..]);
    output
}

pub fn decrypt(key: [u8; 16], ciphertext: &[u8]) -> Vec<u8> {
    let mut iv: Vec<u8> = repeat(0u8).take(16).collect();
    iv[..].copy_from_slice(&ciphertext[..16]);
    let mut cipher = aes::ctr(KeySize::KeySize128, &key.0[..], &iv);
    let mut output: Vec<u8> = repeat(0u8).take(ciphertext.len() - 16).collect();
    cipher.process(&ciphertext[16..], &mut output);
    output
}
package main

import (
    "io"
    "fmt"
    "encoding/base64"
    "crypto/aes"
    "crypto/cipher" 
    "crypto/rand"
)

func encrypt(api_token []byte, payload string) []byte {
    block, err := aes.NewCipher(api_token)
    if err != nil {
        panic(err)
    }
    // The IV needs to be unique, but not secure. Therefore it's common to
    // include it at the beginning of the ciphertext.
    ciphertext := make([]byte, aes.BlockSize+len(payload))
    iv := ciphertext[:aes.BlockSize]
    if _, err := io.ReadFull(rand.Reader, iv); err != nil {
        panic(err.Error())
    }
    stream := cipher.NewCTR(block, iv)
    stream.XORKeyStream(ciphertext[aes.BlockSize:], []byte(payload))
    return ciphertext
}

func decrypt(api_token []byte, ciphertext [] byte) string {  
    if len(ciphertext) < aes.BlockSize {  
        panic("invalid ciphertext")  
    }

    block, err := aes.NewCipher(api_token)
    if err != nil {
        panic(err)
    }

    iv := ciphertext[:aes.BlockSize]
    plaintext := make([]byte, len(ciphertext) - aes.BlockSize)
    stream  := cipher.NewCTR(block, iv)
    stream.XORKeyStream(plaintext, ciphertext[aes.BlockSize:])
    return string(plaintext[:])
}

func main() {
    // API Token
    api_token_base64 := "ZgV+1oFFh0D8zL78bDU8jA=="
    api_token, err := base64.StdEncoding.DecodeString(api_token_base64)
    if err != nil {
        fmt.Println("Invalid API_TOKEN:", err)
        return
    }

    plaintext := `{"type": "unseal","account_id": "1","password": "000000"}`;
    fmt.Printf("Text: %s\n", plaintext)
    ciphertext := encrypt(api_token, plaintext)
    base64text := base64.StdEncoding.EncodeToString(ciphertext);
    fmt.Printf("Encoded Text: %s\n", base64text);
    ciphertext2, _ := base64.StdEncoding.DecodeString(base64text);
    plaintext2 := decrypt(api_token, ciphertext2);
    fmt.Printf("Decoded Text: %s\n", plaintext2)
}

Payload

Payload is just a pure JSON:

{
  "id": 100500,
  "account_id": "1",
  "type": "balance_info",
  "payment": {
    "current": 1000000,
    "available": 1000000
  },
  "public_payment": {
    "current": 0,
    "available": 0
  },
  "stake": {
    "current": 0,
    "available": 0
  },
  "current": 1000000,
  "available": 1000000,
}

There are two kinds of JSON messages:

  1. Remote Procedure Calls (RPC) from a client to the server.
  2. Out-of-band notifications from the server to a client.

Remote Procedure Calls

Remote procedure calls are similar to JSON-RPC:

Sample request:

{
   "id": 2,
   "type":"balance_info"
   "account_id": "1",
}

Sample response:

{
  "id": 2,
  "account_id": "1",
  "type": "balance_info",
  "payment": {
    "current": 1000000,
    "available": 1000000
  },
  "public_payment": {
    "current": 0,
    "available": 0
  },
  "stake": {
    "current": 0,
    "available": 0
  },
  "current": 1000000,
  "available": 1000000,
  "is_final": false
}

The protocol supports multiplexing. Client library can send multiple requests at once on the same connection and receive responses back in any order. Please note, that responses are sent as soon as they are ready. Never rely on the order of responses and use id field for tracking! Optional field id can be used to map responses to requests. This field is opaque, i.e.your client library can generate some arbitrary id for each request and server will include provided value to a reply.

Field type is a discriminator of requests and responses as well as notifications (see below). A value of type in a request doesn’t necessary matches the value of type field in a response. Some requests may return different types of responses. For example, any RPC request can end up with an error:

{
  "type": "error",
  "error": "Not enough money."
}

Notifications

Out-of-band notifications are sent by server to notify a client about some events, e.g.when block has been added or accounts’s balance has changed:

{
  "type": "balance_changed",
  "account_id": "1",
  "balance": 999996010
}

Notifications never have id field. For synchronous client library, you can filter out or notification based on type or presence of id fields.


Wallet API

Stegos Node provides API to manage accounts and sending transactions.

One Node has exactly one attached Wallet. One Wallet can hold multiple Accounts. One Account has exactly one primary Curve25519 keypair. Each Account is uniquely identified its Public Key.

Account’s Public Key can be used to receive both private and public payments. There is no special need in temporary addreses like in Bitcoin, because our private payments implements Confidental Transactios and all recepient’ addressese are always clocked.

However, for the sake of Bitcoin compatibility, we also support Virtual Public Addresses. Virtual Public Address is like a regular public keys, but it can only be used for receiving public (uncloaked) payments. All PublicUTXO sent to such addresses will be deposited to the primary keypair and can be spent as usual by using cloak API CALL. All other kinds of UTXO sent to such virtual address will be permanently lost. Each Account can have zero or more such Virtual Public Addresses. You can use public addresses to implement Bitcoin-like behaviour. For example, exchanges can use virtual public addresses to receive deposits from customers. But please never use virtual public addresses for private payments. It makes no sense since private payments are always cloaked.

Under the hood virtual public addresses implemented as deterministic key pairs generated from the primary account key + sequential uint32 number, called public_address_id. The first key will have id=1, second- id=2 and so far. However, some numbers doesn’t produce valid Curve25519 keys and should be ignored. Since all addresses are deterministically generated, there is no need in separate backup. Please remember the last used public_address_id and provide this value during recovery. Wallet will automatically re-create all public addreses up to public_address_id. This patch changes show recovery and recover account to support `public_address_id.

All public keys and addresses in API calls are encoded using bech32:

account_pkey = bech32_encode(prefix, curve25519_public_key)

Where supported prefixes are:

Wallet automatically assigns a short unique surrogate identifier to each keypair to use in API calls. This identifier is called by account_id. Please do not confuse with account_pkey which is an Account’s Public Key.

Each Account has associated password. This password is used as a seed for a key derivation function for AES-128 encryption. Encryption protects a secret key and other sensitive data. Since this password is never stored in any way, there are no possible technical ways to recover it from the node. This obviously doesn’t protect from possible leaks via side-channels or via Rubber-hose cryptanalysis.

Each Account can be recovered using 24-word Recovery Phrase. This recovery phrase is a mnemonic representation of raw account’s secret key. Since this 24-word recovery phrase is just another representation of raw Curve25519 secret key, no password is needed to recover from it.

Accounts have concept of Sealing/Unsealing:

List Accounts

Returns a list of account.

Request:

{
  "type": "accounts_info",
}

Response:

{
  "type": "accounts_info",
  "accounts": {
    "1": {
      "account_pkey": "dev1jjufnwk6u5scyj05259tpy2a7096dap0umj5uhqlynfdfua255fs5fm7w4",
      "network_pkey": "984f5b13828d4747f7442861c138eaa575d4875df29e37bfcd985c7ca27147475cabf32416cd7935f9c897a720ba6f039693765e72e0f6aadd92a9642fb61639a0370eef5e8ee3a0570e34a629515c98f56b0095b16825b50e602f70f34ca398"
    }
  }
}

Create Account

Creates a new account.

Request:

{
  "type": "create_account",
  "password": "plain-text-password"
}

Response:

{
  "type": "account_created",
  "account_id": "1"
}

Delete Account

Request:

{
  "type": "delete_account",
  "account_id": "2"
}

Response:

{
  "type": "account_deleted",
  "account_id": "2"
}

Get Recovery Phrase

Returns 24-word recovery phrase.

Unsealed: yes

Request:

{
  "type": "recovery_info"
  "account_id": "1",
}

Response:

{
  "account_id": "1",
  "type": "recovery",
  "recovery": "swear praise ginger oxygen anchor ten small planet crime cave fold chuckle foot dragon decorate guess poverty grass crew depend define twice mother update"
  "last_public_address_id": 4
}

Recover Account

Recovers an account from 24-word recovery phrase:

Request:

{
  "type": "recover_account"
  "recovery": "swear praise ginger oxygen anchor ten small planet crime cave fold chuckle foot dragon decorate guess poverty grass crew depend define twice mother update",
  "last_public_address_id": 4
}

Response:

{
  "type": "account_created",
  "account_id": "2"
}

Unseal Account

Unseals an account, i.e.loads a secret key to the memory.

Request:

{
  "type": "unseal"
  "account_id": "1",
  "password": "plain-text-password"
}

Response:

{
  "account_id": "1",
  "type": "unsealed"
}

Seal Account

Seals an account, i.e., removes an account’s secret key from memory.

Unsealed: yes

Request:

{
  "type": "seal"
  "account_id": "1",
}

Response:

{
  "account_id": "1",
  "type": "sealed"
}

Change Password

Re-encrypts an account’s sensitive data using a new password.

Must be unsealed: yes

Request:

{
  "account_id": "1",
  "type": "change_password",
  "new_password": "plain-text-password",
}

Response:

{
  "account_id": "1",
  "type": "password_changed"
}

Account Information

Returns information about account’s public key (address).

Unsealed: yes

Request:

{
  "type": "account_info",
  "account_id": "1",
}

Response:

{
  "account_id": "1",
  "type": "account_info",
  "account_pkey": "dev1jjufnwk6u5scyj05259tpy2a7096dap0umj5uhqlynfdfua255fs5fm7w4",
  "network_pkey": "984f5b13828d4747f7442861c138eaa575d4875df29e37bfcd985c7ca27147475cabf32416cd7935f9c897a720ba6f039693765e72e0f6aadd92a9642fb61639a0370eef5e8ee3a0570e34a629515c98f56b0095b16825b50e602f70f34ca398"
}

Balance Information

Returns information about current and availabe account’s balances.

Unsealed: yes

Request:

{
  "account_id": "1",
  "type": "balance_info"
}

Response:

{
  "account_id": "1",
  "type": "balance_info",
  "payment": {
    "current": 1000000,
    "available": 1000000
  },
  "public_payment": {
    "current": 0,
    "available": 0
  },
  "stake": {
    "current": 0,
    "available": 0
  },
  "current": 1000000,
  "available": 1000000,
  "is_final": false
}

Balance Notifications

Sent when an account’s balance has been changed.

Notifications:

{
  "account_id": "1",
  "type": "balance_changed",
  "payment": {
    "current": 1000000,
    "available": 1000000
  },
  "public_payment": {
    "current": 0,
    "available": 0
  },
  "stake": {
    "current": 0,
    "available": 0
  },
  "current": 1000000,
  "available": 1000000,
  "is_final": false
}

UTXO Information

Returns information about account’s UTXO.

Unsealed: yes

Request:

{
  "account_id": "1",
  "request": "unspent_info"
}

Response:

{
  "account_id": "1",
  "type": "unspent_info",
  "public_payments": [],
  "payments": [

    {
      "utxo": "13257da5cdef20d47dba473deb182f0d24c2a1ed717ba379c2b1830fdfadbd7e",
      "amount": 1000000000,
      "comment": "Gift from Stegos Leprechaun",
      "locked_timestamp": null,
      "recipient": "dev1jjufnwk6u5scyj05259tpy2a7096dap0umj5uhqlynfdfua255fs5fm7w4",
      "is_change": false
    }
  ],
  "stakes": []
}

Create Public Address

Creates a new public address.

Unsealed: yes

Request:

{
  "account_id": "1",
  "type": "create_public_address"
}

Response:

{
  "account_id": "1",
  "type": "public_address_created",
  "public_address": "dev18c98gtemyps2x29n2sc73gp4qqnqdzqufq6cdjlku003u8w64cdqhe9pxe",
  "public_address_id": 1
}

Public Addresses Information

Returns information about created public addresses.

Unsealed: yes

Request:

{
  "account_id": "1",
  "type": "public_addresses_info"
}

Response:

{
  "account_id": "1",
  "type": "public_addresses_info",
  "public_addresses": {
    "1": {
      "address": "dev18c98gtemyps2x29n2sc73gp4qqnqdzqufq6cdjlku003u8w64cdqhe9pxe"
    }
  }
}

Payments

API for creating transactions to transfer money.

Unsealed: yes

Request:

{
  "account_id": "1",
  "type": "payment",
  "recipient": "dev1jjufnwk6u5scyj05259tpy2a7096dap0umj5uhqlynfdfua255fs5fm7w4",
  "amount": 100,
  "payment_fee": 1000,
  "comment": "Test",
  "locked_timestamp": "2019-08-22T12:35:06.343300856Z",
  "with_certificate": false
}

Response:

{
  "account_id": "1",
  "type": "transaction_created",
  "tx_hash": "b9132147148715da31d9ac95ec1efee9aec374deb356b3fedefc17322c3b63c2",
  "fee": 2000,
  "outputs": [

    {
      "output_type": "payment",
      "utxo": "32cbfd8cd697bef256b78a36847269a0d39c738da3cc474f3635c21b03de1310",
      "amount": 100,
      "comment": "Test",
      "locked_timestamp": "2019-08-22T12:35:06.343300856Z",
      "recipient": "dev1jjufnwk6u5scyj05259tpy2a7096dap0umj5uhqlynfdfua255fs5fm7w4",
      "rvalue": "0dbb132afbfdcc7bfb25191f89007f27919fceaceea03b015d98458cba1a4200",
      "is_change": false
    },
    {
      "output_type": "payment",
      "utxo": "fb7b7d39265ae69cc33fe5f327a78d0ea01a508ff99265f0a92ab5fc7df9e3c6",
      "amount": 999997900,
      "comment": "Change",
      "locked_timestamp": null,
      "recipient": "dev1cn559rq08pvxkkkwdl5xcha33ql8g73npvgxkcjl57a34f8e856smqcgac",
      "is_change": true
    }


  ],
  "inputs": [

    "13257da5cdef20d47dba473deb182f0d24c2a1ed717ba379c2b1830fdfadbd7e"


  ],
  "status": "created"
}

Notifications:

{
  "account_id": "1",
  "type": "transaction_status",
  "tx_hash": "049db1e1979f2c8d876df876011f12764fb8ef5c578203dcba35bb9a8f09cfa3",
  "status": "committed",
  "epoch": 1192
}
{
  "account_id": "1",
  "type": "snowball_status",
  "state": "pool_wait"
}
{
  "account_id": "1",
  "type": "snowball_status",
  "state": "shared_keying"
}
{
  "account_id": "1",
  "type": "snowball_status",
  "state": "commitment"
}
{
  "account_id": "1",
  "type": "snowball_status",
  "state": "cloaked_vals"
}
{
  "account_id": "1",
  "type": "snowball_status",
  "state": "succeeded"
}

Cloak

Exchange all uncloaked tokens to cloaked tokens.

Unsealed: yes

Request:

{
  "account_id": "1",
  "type": "cloak_all",
  "payment_fee": 1000
}

Response:

See Payment.

Stake

Stake token into the escrow to become an validator.

Unsealed: yes

Request:

{
  "account_id": "1",
  "type": "stake",
  "amount": 2000,
  "payment_fee": 1000
}

Response:

See Payment.

Unstake

Unstake tokens from the escrow.

Unsealed: yes

Request:

{
  "type": "unstake",
  "account_id": "1",
  "amount": 2000,
  "payment_fee": 1000
}
{
  "type": "unstake_all",
  "account_id": "1",
}

Response:

See Payment.

Restake

Forcefully re-stake (refresh) expering tokens in the escrow. Usually this operation is performed automatically by *Node8.

Unsealed: no, secret key is not needed for this operation.

Request:

{
  "account_id": "1",
  "type": "restake_all"
}

Response:

See Payment.

Validate Certificate

Validate a payment certificate for a payment. This API is doesn’t require existing account.

Request:

{
  "type": "validate_certificate",
  "utxo": "0fdb42aa9433bc6f7079426ebbe0d5464ca713b2aad2bb5ff4fe163f98a80674",
  "spender": "dev1jjufnwk6u5scyj05259tpy2a7096dap0umj5uhqlynfdfua255fs5fm7w4",
  "recipient": "dev1cn559rq08pvxkkkwdl5xcha33ql8g73npvgxkcjl57a34f8e856smqcgac",
  "rvalue": "0dbb132afbfdcc7bfb25191f89007f27919fceaceea03b015d98458cba1a4200"
}

Response:

{
  "type": "certificate_valid",
  "epoch": 1181,
  "block_hash": "5e8a4429338ac775b40472d0cee6a439cbf0542c966bca9a089f1a84bdb2e680",
  "is_final": true,
  "timestamp": "2019-08-21T13:05:53.045364692Z",
  "amount": 100
}

Payment History

Validate a payment certificate for a payment. This API is doesn’t require existing account.

Request:

{
  "account_id": "1",
  "type": "history_info",
  "starting_from": "2019-08-20T13:48:40.877231494Z",
  "limit": 50
}

Response:

{                                                                                                                            [31/9149]
  "account_id": "1",
  "type": "history_info",
  "log": [

    {
      "type": "outgoing",
      "timestamp": "2019-08-21T13:36:29.038362377Z",
      "tx_hash": "e2b3b05056dc216ed514422b4b08d2b7107947fdddbfb419faa87caa10400404",
      "fee": 6000,
      "outputs": [
        {
          "output_type": "payment",
          "utxo": "17a23f878dfecd0bdbd9bfd3524b829a95eb2d6a121f4f9d08160aa3b7da789a",
          "amount": 1,
          "comment": "",
          "locked_timestamp": null,
          "recipient": "dev1cn559rq08pvxkkkwdl5xcha33ql8g73npvgxkcjl57a34f8e856smqcgac",
          "is_change": false
        },
        {
          "output_type": "payment",
          "utxo": "2ddb5b4b52ff2f54341c2f03e18e053843e964e86a4d48abb65f80c2ad09231d",
          "amount": 999986699,
          "comment": "Change",
          "locked_timestamp": null,
          "recipient": "dev1cn559rq08pvxkkkwdl5xcha33ql8g73npvgxkcjl57a34f8e856smqcgac",
          "is_change": true
        }
      ],
      "inputs": [                                                                                                             [2/9149]
        "5f8778d614aa6264269f62b5edb18f983e8da12b045b0cb314619456b930981e",
        "cc2a9b0268a36409a65166e4063abb88b4fe541e0c4a79eae4b66a3990a94868",
        "cef3b6ca7aa04383ee20c95b9c0071d751fa6b19e6ca75760e86380d402ed597",
        "ab55e0f121b3e3eff5c12f436abf3d1238171d86b3bd107f2ced160562dd1829",
        "0274559883bcf3668ec6751392633524854010267be6fcfc9a10c3c0d5cc4751",
        "d817af24a0344596c95f5c34d4afe4fe1fa2e184283267313ac878c1f912e90f"
      ],
      "status": "committed",
      "epoch": 1213
    },
    {
      "type": "incoming",
      "timestamp": "2019-08-21T13:36:30.798523887Z",
      "output_type": "payment",
      "utxo": "17a23f878dfecd0bdbd9bfd3524b829a95eb2d6a121f4f9d08160aa3b7da789a",
      "amount": 1,
      "comment": "",
      "locked_timestamp": null,
      "recipient": "dev1cn559rq08pvxkkkwdl5xcha33ql8g73npvgxkcjl57a34f8e856smqcgac",
      "is_change": false
    },
    {
      "type": "incoming",
      "timestamp": "2019-08-21T13:36:30.799013899Z",
      "output_type": "payment",
      "utxo": "2ddb5b4b52ff2f54341c2f03e18e053843e964e86a4d48abb65f80c2ad09231d",
      "amount": 999986699,
      "comment": "Change",
      "locked_timestamp": null,
      "recipient": "dev14ehru5zmyjuc64m25t8k9kqv4q95h0y20cwm5csgkpgups9e2ersmdp3e4",
      "is_change": true
    }
  ]
}

Node API

Status Information

Return information about the current Node status.

Request:

{
  "type": "status_info"
}

Response:

{
  "type": "status_info",
  "is_synchronized": false,
  "epoch": 16,
  "offset": 2,
  "view_change": 0,
  "last_block_hash": "2a4eae2807d771170c41ade13bc405ce95d54b5c1cc7e3a674ddfa17e427a70a",
  "last_macro_block_hash": "1e17d6048385f79eb2d8ba2b3ded80f76c9121d175575b0cd1d47d3aade18150",
  "last_macro_block_timestamp": "2019-09-25T14:17:56.647442627Z",
  "local_timestamp": "2019-09-25T14:23:26.304454862Z"
}

Status Notification

Subscribe for Node status changes.

Request:

{
  "type": "subscribe_status"
}

Response:

{
  "type": "subscribed_status",
  "is_synchronized": false,
  "epoch": 16,
  "offset": 2,
  "view_change": 0,
  "last_block_hash": "2a4eae2807d771170c41ade13bc405ce95d54b5c1cc7e3a674ddfa17e427a70a",
  "last_macro_block_hash": "1e17d6048385f79eb2d8ba2b3ded80f76c9121d175575b0cd1d47d3aade18150",
  "last_macro_block_timestamp": "2019-09-25T14:17:56.647442627Z",
  "local_timestamp": "2019-09-25T14:25:15.436308374Z"
}

Notifications:

{
  "type": "status_changed",
  "is_synchronized": false,
  "epoch": 16,
  "offset": 2,
  "view_change": 0,
  "last_block_hash": "2a4eae2807d771170c41ade13bc405ce95d54b5c1cc7e3a674ddfa17e427a70a",
  "last_macro_block_hash": "1e17d6048385f79eb2d8ba2b3ded80f76c9121d175575b0cd1d47d3aade18150",
  "last_macro_block_timestamp": "2019-09-25T14:17:56.647442627Z",
  "local_timestamp": "2019-09-25T14:26:31.882240890Z"
}

Blockchain Information

Get information about a micro/macro block.

Request:

{
  "type": "macro_block_info",
  "epoch": 93
}

Response:

{
  "type": "macro_block_info",
  "version": 1,
  "previous": "eb9d911f710a0981baf3aee80e19feff75265201ec27abd316ed8b3b070a43ba",
  "epoch": 93,
  "view_change": 0,
  "pkey": "4c42d597fd4135c2a71dfba93efe89a2c838e26f6686577866a172fde5159ed2f3226d02bdd927aa820b356953fc2108f11783fa7bf5590db66acfceb1a1e485c1c79bfa6aa6d3a44bbbd23a3ef7fa88f7f884e563e56dcb3698cf592a250b84",
  "random": {
    "rand": "fe265874359300b6d9a5a85ff5df7861ff7042b4f2882dffce17edeba15aeb4c",
    "proof": "5c194027a5b9e90e5c4a500a6452b8227a650b908de019940c4c5b8400e6ffa7f4e6592256e649bc28cc2125abea94b7"
  },
  "difficulty": 200,
  "timestamp": "2019-09-25T14:57:28.337620308Z",
  "block_reward": 1464000000,
  "activity_map": "1111",
  "gamma": "0fdf7cd24abdf28f8d55b6d705d5253347cd570022252cdebee4572a53b7d2a0",
  "inputs_range_hash": "8a06abe726ebf49e173d516e4d257c4058bb41ece18e37bf2ca48925a1841c00",
  "inputs_len": 3,
  "outputs_range_hash": "06015764beb6577ef6a75ca553b1bff27dd55803777e87bc8115c167b972d2f3",
  "outputs_len": 2,
  "multisig": "1c17b1c3314c45f2bf06c0331334937d4873cbc787bcedb0f83780b6d1dfa2e3160f7d948817ec332b384599036587a2",
  "multisigmap": "111",
  "inputs": [
    "02d5725fab23aadf1ff549e4f36fb5d0899d00eeeb91f969c46c37a96720e86b",
    "254dff707e3f9cb5c7459a08c67d915127b100abced4b72dddf6e9ba0fd112d7",
    "6fb29c0a14f41be998d261f03c261855b9dac9773c57c650e99c9721fff4f3a2"
  ],
  "outputs": [
    {
      "type": "payment_output",
      "recipient": "dev12qtqazg63j460dqhm7cmujss5fc8aknu4sdzs5arfp9xc87s5c0svf3gex",
      "cloaking_hint": "100bf913d354c61525fa3ddf4c78cb6f320af025fc1b70a3038f79586640d818",
      "proof": {
        "vcmt": "070984a4e9f42672f971098b17911f78af206452aa736de2cfaba4d6185efa20",
        "proof": "ac48626d6a3f6191e14012515e205db84ee4e4fd9a81ef4769bc6dbd6d66f96512b8681697e0c0c4302ac13f85639141433494056532f3e68a688523c2c20862bee7097165648e0d3f4e02ec5f408bb8e42fd2537cbd15c512cf22299932c8674e49ff00922a7de26b0efe82bd444543f2e9d3d8a2f9aed3d2755196da298c2390bde019ca75beaede27626533422bab75d42044cc4b8f9da332d5e36de3fb05830e9d8658a7a2a45cf5bd2a2510474acc6fe53e8d1e12190c4efed1e40a25037c689bce4ac73e258754e79a109a230b6e069824caccbf3c3f10901ae0571e01a4631dea48e6b9b679e376ad086be40593c9d96cd34bc9eaea5e6f755172bc172a3f282432d7d48410983cce33372057dcc4650ea752ec973c4bd0f75e1adf1d92af048f0cd4e9b6cf78af73f1e6b5c14ea2e22e13ec10f10c73ab3ec467210f40de60c10bf7ec01558978c1d2c3f3d9a74543f6132da0f8121a84892923b0666eba643e0051d2c7a5e4acec65664c628b8398fc13f2c3c360e47c0d6d07ee5a9e3185518f728a2cf89090f77c24850f559b6471be4367cf906c9eeff3fff834203ab6262e35fe92e700f23ea4e52244211b1785fa4e83d44d1cb68e18612330200d616d7c1b95ee0d4564704ca3ac4ead0e9fdb2ba6b91af3a6e9d403acdd3d8ea1daa75a6ad5b5556c6baa8707de48aa15b3167bd8cf39f565f81e70aa503ca87d60b35a8bbb0690e3ba19c0282a16a2edd2cd4ef9db2c70dd1a7a127ead00c87c669b2fad3439c49e63eb900c8e8f3481e207912b3df839eae4c0791a534230913a79067675872fd0a59f1bb66f963eef5402521483c9e794b0ad34cfc341fbbc5c5452de7577695915808000e2c19eb6a7bc862a3bcd979ee0b49e553a09b975ed382b1d3602e530a3d402e3d0ec164ce0d9a649376066ef88bba687a10b"
      },
      "payload": {
        "ag": "1f24dda40d0f1d9816e8ddf58b2a66f229bc8f98b0995838d239468dc2b7c43c",
        "ctxt": "c8fffa56f1ed26c77552e00af3bfadb82ceb540f6c9bd08939156d3338d79c0a1208c8d79a20d134367c8e0ec36802f55a2925657fd5c46fa87035eb72248bd00e64d3f8301bfcd3973617ced9b129769fd642fa3a12087a3760eee3332e08ac9b270d2fd1e7bb775f96c9d9dde4cc59496a582992551f2eefb949345b79a6f7d4097bfbe3dcfe93214fb9ee48cd3af785267348f4a86b6e2886fee310e725e6c24c6f998f89da9415e0c8187a3e24c16c678cd46fa752bb69232f7a003e15b5ca6910b107a5d0cb06bdef1d2121ffd45210f92aea5c6414131dd97081e92999fd497880eace1ad457daff816a5fe28936142cc1dc716c45da47edd95c7b1ed7ee7cf7ed9b94820f8986b38e2b20f48c115214ce6606fbb8e684e7671fa006f2a90bc2dce9d97b87fe3794b3f3cb0ddd3224bff65772c36165264118a2d74f3d426babe20c840b6f8ea6df728e2048bdc58bd6cd9bb65826b2bd056b0536a4f2ae77f14cee57502210342d06fe8ad79ffb2ae5cc2f2492604703ecc6c733a87b6c73a40a0e335af6e6aca0cbbf7d91e482b864f6af7c01abcfaaa9331183b747c0db5285c98584873f99ba8b18299c25799a0e9e4e2624aa8756684ceecc0cf22ca5b3881752a13971b9e939900448598a885887941dc1703cc5b9b025243ae4a5e02fb2b4202a342c68322e62e52a41edf3f18d9d38efd1a5fd66ad486c45fe5d4bd06a8f5fdbc40bab38db6e735ae5edcedceb8c9d2d08d45625d499965f5ef2623d575a4710cf046e95e1bf481dd904083734d4d77594c48f39380fdbda2471f66bf1c52d13dfc4e6702ad47d1b267ddc67dcb2f5b79d8502d7decc9c50d4da80b099d4485d0035957bb4238b9dffc196b94c9ff0c97d27731b2aae5b1df28e5a20044e8f3b5fd19b50d5694baac9145e06cf874d68c0fe22001a7bb0146b962852e633d5a41cff72967375c80306f4a3e2dd7cd4a64a0d0c80791ede081c7184264d0e354ef184f39b4b0a873548b9aa989def07e7d602db752ec77618d27c281070548b3ed7cc496f32f4192c20b2b013ff2f1dbca4731eb2a6070d30b06085998a50c4b008d3c27f59b5728b2f6cc68655679cc261f7dbebac1dc0972dcf86f44815140762ef473562b94c2c5ab230f25890dccd58fd5dd4ba2bfa05e60481e8410711837c7c414b0fdde428ddbb806b52ae7839bcad2ef7d8b1a12f976176e6691dd09d3aa247e85fb57fa155d3a66c812d84fdc72b91d07ae6037dc687a47609db8d25bdd5ddd53dee8cadbc43e90ece29c38c99d9dee499c0b0660ae81f39d87253d7d70dc9113d6c0682b329ed082db8b3c43763d11d84fe1ffae19fb582e79c308f2341153254385851239d9877d86891958b040a3add6571b13919a32a3864988d602748953a9fd9bdbeb75a4a0e00af6a1a0f6b5b998eeccfbd"
      }
    },
    {
      "type": "stake_output",
      "recipient": "dev16m74qnh5wrvqrc5pplar9t4v5z9mlykxp86a6n9yqyxw9qxq9a6qeajzdu",
      "validator": "9069a834e26b5d7eef9a196f036ad2737315d4c2f64cedd860313b45520e570aa2d2579503f22bdd4d13b8254352ef00f1667fa7effd8a702c027538fb645a767d744639f799e2bdba726964226d52fd87cbf027072ec928c87c6e0de23d2784",
      "amount": 50000000000,
      "serno": -7367979089502813811,
      "signature": "8e8a478ccc680401ad16759bff1c56654f1cdb80af13dcdcaa9a0fb76f6c9be291a47ce6b6fca12f5d2a4f9aaaaf6e80"
    }
  ],
  "validators": [
    {
      "network_pkey": "4c42d597fd4135c2a71dfba93efe89a2c838e26f6686577866a172fde5159ed2f3226d02bdd927aa820b356953fc2108f11783fa7bf5590db66acfceb1a1e485c1c79bfa6aa6d3a44bbbd23a3ef7fa88f7f884e563e56dcb3698cf592a250b84",
      "account_pkey": "dev1yfervqtkg47r7nl3732fl94wealp65tg652c8jpdt90f2u8ng3asw5dn3x",
      "slots": 253
    },
    {
      "network_pkey": "9069a834e26b5d7eef9a196f036ad2737315d4c2f64cedd860313b45520e570aa2d2579503f22bdd4d13b8254352ef00f1667fa7effd8a702c027538fb645a767d744639f799e2bdba726964226d52fd87cbf027072ec928c87c6e0de23d2784",
      "account_pkey": "dev16m74qnh5wrvqrc5pplar9t4v5z9mlykxp86a6n9yqyxw9qxq9a6qeajzdu",
      "slots": 259
    },
    {
      "network_pkey": "4f57360ea2750ddb9900a63ac3b1a3878f068bfcbbd6e029ecb3ad5d894539a431b1a39058a320b97b6e300cb8d4ef0d3661e52c11d016e525c7eebc7d8fb882e560cd55a1121a05e23ba2364e9aed9014037a4d26bc75a3e93e5f25aff19eb4",
      "account_pkey": "dev1qrtm3zxj05hksr3hewn4m7x0nl2w4hdtucfxchvrg0vyjwfgupps74cjyf",
      "slots": 255
    },
    {
      "network_pkey": "d9c2d567da672da9c9175eb5e37f8ac869bdff8f293ce8523cf34a2a18391751d256262938cf87c922b92d49dbd15202f69e78c47cb24254022ab13c791f8c24bf3259bb16ebae1663909baadd75ce90844fb85531e86ebe98b54322a8a56db6",
      "account_pkey": "dev1jn6nkexcc25a9z7vc3yakmm7p2v507gs0t4llpqs30knwcdhkues9hn2kp",
      "slots": 233
    }
  ],
  "facilitator": "d9c2d567da672da9c9175eb5e37f8ac869bdff8f293ce8523cf34a2a18391751d256262938cf87c922b92d49dbd15202f69e78c47cb24254022ab13c791f8c24bf3259bb16ebae1663909baadd75ce90844fb85531e86ebe98b54322a8a56db6",
  "awards": {
    "budget": 2928000000,
    "difficulty": 3,
    "validators_activity": {
      "dev1qrtm3zxj05hksr3hewn4m7x0nl2w4hdtucfxchvrg0vyjwfgupps74cjyf": {
        "status": "active"
      },
      "dev1yfervqtkg47r7nl3732fl94wealp65tg652c8jpdt90f2u8ng3asw5dn3x": {
        "status": "active"
      },
      "dev1jn6nkexcc25a9z7vc3yakmm7p2v507gs0t4llpqs30knwcdhkues9hn2kp": {
        "status": "active"
      },
      "dev16m74qnh5wrvqrc5pplar9t4v5z9mlykxp86a6n9yqyxw9qxq9a6qeajzdu": {
        "status": "active"
      }
    }
  },
  "payout": {
    "recipient": "dev16m74qnh5wrvqrc5pplar9t4v5z9mlykxp86a6n9yqyxw9qxq9a6qeajzdu",
    "amount": 6588000000
  }
}

Request:

{
  "type": "micro_block_info",
  "epoch": 95,
  "offset": 1
}

Response:

{
  "type": "micro_block_info",
  "version": 1,
  "previous": "91fea1bfad29ff167785b87e6813427cef3bf256fcc351c6f437d890dc308f6a",
  "epoch": 95,
  "offset": 1,
  "view_change": 0,
  "view_change_proof": null,
  "pkey": "9069a834e26b5d7eef9a196f036ad2737315d4c2f64cedd860313b45520e570aa2d2579503f22bdd4d13b8254352ef00f1667fa7effd8a702c027538fb645a767d744639f799e2bdba726964226d52fd87cbf027072ec928c87c6e0de23d2784",
  "random": {
    "rand": "a1b8cb7a20ec652aac300307202271674ff0cf50c374617dcf6ed283dc908540",
    "proof": "c3aca57d14ccaed4965255291adbb89b184479384d6353f1e5cc5f86d358943ba1c426749e7bd78e53e1f65fc13e99a9"
  },
  "solution": "d8509988e7e42eff6dc8e03023ee547905d648996f56601e022587791e338f7b",
  "timestamp": "2019-09-27T12:40:56.511676995Z",
  "transactions_range_hash": "903b58175d87ff80f25d4b695b306c359b3de4e7649dc3f11bab173ed6efe6ae",
  "sig": "abe93960881f2f6c646947f20d230997f2720c16825eef0ea71c65ade25d6d364d9b7889b5448a38f48b74f57a587faa",
  "transactions": [
    {
      "type": "coinbase_transaction",
      "block_reward": 24000000,
      "block_fee": 0,
      "gamma": "097c6efc4e4ed16a788e97f0db4e7f62efc6590bd43327efd459f240f793f7f9",
      "txouts": [
        {
          "type": "payment_output",
          "recipient": "dev19rp03dcaar0gante3jutghx44maa5yc3mxa5ayhfcpy24zl6euzslz9vyv",
          "cloaking_hint": "2e563c8ef22fafd58c41a2258d92788888cd71b0a6d1ab0909ae4a7f0b769fc4",
          "proof": {
            "vcmt": "760138113651a380e271ed361c5aac2ce220d3eff307d24b9d02a6963e7edbf2",
            "proof": "40c075bc1d1f87f07f625be88566a18ea79d1f61f34bd2f23958d6570eb2304d5ad331dc3849724bb19387a8f3fdc82b698342cc298ba000e958a5e49e35b265089bacdf43ec372c87a36846a44acf2fbb3049f62151780ae8396ce085adfe6fb82b5045af2275c0343f5d15e1961332b262714b53a752be54af0d59b307ad2e6b2d172482c02455883969814d768d651bb5126d0e7a81380014b9f00ea1950d1d1d41dce0ebf5b218753a9579c1c5ac5011f8aaf8f80f66574536c2cc31350f5173ca125f9c7e273832a4036b77659857cb9209300a385857fc282709b54f076a70678eb6a525051e7d991035311ce2b3545db4b194cb03d4fe070e8d040702c858782faf5643eee47b7f40c4b385bf2eef2b00789ecb0456a5b42098d4775166c8296fa32a412574735c0cac0f0dd1eb83b250eb88f0db533dbcb9fb8de95a1c5049c10c70a6d8d40e2060f6fa3f31f706469950408e7c3db75f880ce96833562e26f30d96bdcefbdebb91a39248469321827f36f08f941f29fd38fbe09f22cc110feddb458215c0e03362cfdccf2f17d3fbaf39e1b939d71794beedf0004116fab7336712468a41b2219c1376b6e2785dc85f52c4b63ecc184d0b12fb65381618dd2c937260196d25b99c1d800c9dc2608271e60dbe636d32c3cb1602dc03f244d96fb9732325127fa34cabffc457a4765bb2818f06a3834478d7b583ac5bca13a348700c9c1b2f9a0e8c24809420d96870241a3c08dd1c12b6acbd2dca42ea791f632af1b822d967aaaddd39b138c8edf755b01ee4deb7a5fccc8c2f4d7b3a0e4ff1a59c6c7f3ece3b42513bb7a3b96b32a0896ad176c367ee4d2b6d66327336a8080cce80d323833d4aab2dd7b5797e5636c4138806bfcf701fff230701121a99570c7a1b9d60b8caec8807e66ad44edf978d79cd9f9a7467f0b70e8709"
          },
          "payload": {
            "ag": "0293da37550b5e73d9ce523476ad8ae6c9313819a5fabcaf3d70cdf555251480",
            "ctxt": "ec6e6e010d144e8a973f654484dab4fb49e1458985385ba3606a4138dd21404aeb22cb033113ace445c1b2a4203dcb5422c658fabad7718d386272578c00528923bb15b9bd86ce5477c1bf451feb42df65312d15559ff1ffbfc6e4aa63e0703eb512d6a34cdf2d579af881c5dc3ab6ef39c1b7c4c45ce9658b55305da958d08ae89aee23bfb02a5ea31fc9487f84db10a8cb7abdd9c6264a960b72fb31a1574c9415dacbdfa9488a4cb28219ca83ab447a67dd720ec7532c341e99fbd2783aaadeb596d0771baee98847a71356ef1b83a14ada464a515a37f033661cb8491307f65073e88423343f4f79167834926a21394df57efe68d22929a8b987482314a3c3724436946c8540a4a4f5f949fbd22c0811e0448e77fd5423bff7214f8de12c924208e4b6aaef3440e44afb6ac898869ff01de5aea01d4e10d78ad160d5729ed8a4097ef33ef1ef5d9b1269de6c711753baa6b6f1172cb7b98df2c0bcaf63129115905ccd858e7e7eee23d393a5a8b7ce095a88a8dfb6a5b22604740bed0f1b1ef6c1c174dd3e677ca490e7c66daca2df8660f3bac81221d185581c29dbaf73bcb59d8ec1bc9759d9130cab22db74111977775e1b9ee5cd55fc7d3a3d3fad689ff48164e72e9e5471c6af8ef2aafcc98d0e727eff312516238c32e890c8342be0e5763fadbd24a8ae58c55940756622d6c999bced8b9087e7b0b3cca5b379f9bbce66c759740070635148249b9592d81a7b5ac11cd417331b7cf03e7b1f6b902c8601cfafd620f923e6f90c1e1c13d5d5958000ccfa59989c25930d0fb5df7574382061e31b9d0d4f2c8f6a36e4d8fb792ec9315d3aebc588d9399b60554655731bc5d48c39e6920d56799d5990d5138e74829fe33ab3635c37360a542eecbf7f18be80324b409e77596096db4a5560597757006d75263af4943fd1825fe0ec27525bdaa0b87bd1ddbdd8b890fe8bb10cab1c59e1b75a66f15deab8e2a4b141545f26677ba91417fdb89837cbb4cd7e3bd65a7804854512a0f084f2f85714a75c1cb220f0213f08860d4fba062b238ac3813d7db948d49b20b4a8e8f7c345b2bca7071e038d48f5bda53d79dd055eea6f523ecbd0e8e6779da8c6e25b5edcc21a559de8c419ca4c4dbf14c3241c9f2bc0690c8326f89287811b77779b671d0ba8a233bc5e272169c4ff51da8e9906cd9f8f8459009daf5780a982d9cc0c430e2cd1994b09b5a97def4bb58f654bd68c16303318e82477463a10ebebf02bbbec118b7932d34004bc59942f0dead53f9a4cfcb899dc1da5801455274d2519cd089cd8add9cc375e1f374e9c4cd98f9def5d5ccb4193890160b89ea11adce7131cc654686c828e727ac03eaecd748da8f2de82c7d5531a1e73b337d82340859de3573a9b8604741cfa97a2708aa25d7b9ed5017e6849af8ac21ab9a30165865a08"
          }
        }
      ]
    }
  ]
}

Blockchain Notifications

Subscribe for the raw Blockchain changes.

{
  "type": "subscribe_chain",
  "epoch": 15,
  "offset": 59
}

Response:

{
  "type": "subscribed_chain",
  "current_epoch": 16,
  "current_offset": 2
}

Notifications:

{
  "type": "macro_block_committed",
  "version": 1,
  "previous": "eb9d911f710a0981baf3aee80e19feff75265201ec27abd316ed8b3b070a43ba",
  "epoch": 93,
  "view_change": 0,
  "pkey": "4c42d597fd4135c2a71dfba93efe89a2c838e26f6686577866a172fde5159ed2f3226d02bdd927aa820b356953fc2108f11783fa7bf5590db66acfceb1a1e485c1c79bfa6aa6d3a44bbbd23a3ef7fa88f7f884e563e56dcb3698cf592a250b84",
  "random": {
    "rand": "fe265874359300b6d9a5a85ff5df7861ff7042b4f2882dffce17edeba15aeb4c",
    "proof": "5c194027a5b9e90e5c4a500a6452b8227a650b908de019940c4c5b8400e6ffa7f4e6592256e649bc28cc2125abea94b7"
  },
  "difficulty": 200,
  "timestamp": "2019-09-25T14:57:28.337620308Z",
  "block_reward": 1464000000,
  "activity_map": "1111",
  "gamma": "0fdf7cd24abdf28f8d55b6d705d5253347cd570022252cdebee4572a53b7d2a0",
  "inputs_range_hash": "8a06abe726ebf49e173d516e4d257c4058bb41ece18e37bf2ca48925a1841c00",
  "inputs_len": 3,
  "outputs_range_hash": "06015764beb6577ef6a75ca553b1bff27dd55803777e87bc8115c167b972d2f3",
  "outputs_len": 64,
  "multisig": "1c17b1c3314c45f2bf06c0331334937d4873cbc787bcedb0f83780b6d1dfa2e3160f7d948817ec332b384599036587a2",
  "multisigmap": "111",
  "inputs": [
    "02d5725fab23aadf1ff549e4f36fb5d0899d00eeeb91f969c46c37a96720e86b",
    "254dff707e3f9cb5c7459a08c67d915127b100abced4b72dddf6e9ba0fd112d7",
    "6fb29c0a14f41be998d261f03c261855b9dac9773c57c650e99c9721fff4f3a2"
  ],
  "outputs": [
    {
      "type": "payment_output",
      "recipient": "dev12qtqazg63j460dqhm7cmujss5fc8aknu4sdzs5arfp9xc87s5c0svf3gex",
      "cloaking_hint": "100bf913d354c61525fa3ddf4c78cb6f320af025fc1b70a3038f79586640d818",
      "proof": {
        "vcmt": "070984a4e9f42672f971098b17911f78af206452aa736de2cfaba4d6185efa20",
        "proof": "ac48626d6a3f6191e14012515e205db84ee4e4fd9a81ef4769bc6dbd6d66f96512b8681697e0c0c4302ac13f85639141433494056532f3e68a688523c2c20862bee7097165648e0d3f4e02ec5f408bb8e42fd2537cbd15c512cf22299932c8674e49ff00922a7de26b0efe82bd444543f2e9d3d8a2f9aed3d2755196da298c2390bde019ca75beaede27626533422bab75d42044cc4b8f9da332d5e36de3fb05830e9d8658a7a2a45cf5bd2a2510474acc6fe53e8d1e12190c4efed1e40a25037c689bce4ac73e258754e79a109a230b6e069824caccbf3c3f10901ae0571e01a4631dea48e6b9b679e376ad086be40593c9d96cd34bc9eaea5e6f755172bc172a3f282432d7d48410983cce33372057dcc4650ea752ec973c4bd0f75e1adf1d92af048f0cd4e9b6cf78af73f1e6b5c14ea2e22e13ec10f10c73ab3ec467210f40de60c10bf7ec01558978c1d2c3f3d9a74543f6132da0f8121a84892923b0666eba643e0051d2c7a5e4acec65664c628b8398fc13f2c3c360e47c0d6d07ee5a9e3185518f728a2cf89090f77c24850f559b6471be4367cf906c9eeff3fff834203ab6262e35fe92e700f23ea4e52244211b1785fa4e83d44d1cb68e18612330200d616d7c1b95ee0d4564704ca3ac4ead0e9fdb2ba6b91af3a6e9d403acdd3d8ea1daa75a6ad5b5556c6baa8707de48aa15b3167bd8cf39f565f81e70aa503ca87d60b35a8bbb0690e3ba19c0282a16a2edd2cd4ef9db2c70dd1a7a127ead00c87c669b2fad3439c49e63eb900c8e8f3481e207912b3df839eae4c0791a534230913a79067675872fd0a59f1bb66f963eef5402521483c9e794b0ad34cfc341fbbc5c5452de7577695915808000e2c19eb6a7bc862a3bcd979ee0b49e553a09b975ed382b1d3602e530a3d402e3d0ec164ce0d9a649376066ef88bba687a10b"
      },
      "payload": {
        "ag": "1f24dda40d0f1d9816e8ddf58b2a66f229bc8f98b0995838d239468dc2b7c43c",
        "ctxt": "c8fffa56f1ed26c77552e00af3bfadb82ceb540f6c9bd08939156d3338d79c0a1208c8d79a20d134367c8e0ec36802f55a2925657fd5c46fa87035eb72248bd00e64d3f8301bfcd3973617ced9b129769fd642fa3a12087a3760eee3332e08ac9b270d2fd1e7bb775f96c9d9dde4cc59496a582992551f2eefb949345b79a6f7d4097bfbe3dcfe93214fb9ee48cd3af785267348f4a86b6e2886fee310e725e6c24c6f998f89da9415e0c8187a3e24c16c678cd46fa752bb69232f7a003e15b5ca6910b107a5d0cb06bdef1d2121ffd45210f92aea5c6414131dd97081e92999fd497880eace1ad457daff816a5fe28936142cc1dc716c45da47edd95c7b1ed7ee7cf7ed9b94820f8986b38e2b20f48c115214ce6606fbb8e684e7671fa006f2a90bc2dce9d97b87fe3794b3f3cb0ddd3224bff65772c36165264118a2d74f3d426babe20c840b6f8ea6df728e2048bdc58bd6cd9bb65826b2bd056b0536a4f2ae77f14cee57502210342d06fe8ad79ffb2ae5cc2f2492604703ecc6c733a87b6c73a40a0e335af6e6aca0cbbf7d91e482b864f6af7c01abcfaaa9331183b747c0db5285c98584873f99ba8b18299c25799a0e9e4e2624aa8756684ceecc0cf22ca5b3881752a13971b9e939900448598a885887941dc1703cc5b9b025243ae4a5e02fb2b4202a342c68322e62e52a41edf3f18d9d38efd1a5fd66ad486c45fe5d4bd06a8f5fdbc40bab38db6e735ae5edcedceb8c9d2d08d45625d499965f5ef2623d575a4710cf046e95e1bf481dd904083734d4d77594c48f39380fdbda2471f66bf1c52d13dfc4e6702ad47d1b267ddc67dcb2f5b79d8502d7decc9c50d4da80b099d4485d0035957bb4238b9dffc196b94c9ff0c97d27731b2aae5b1df28e5a20044e8f3b5fd19b50d5694baac9145e06cf874d68c0fe22001a7bb0146b962852e633d5a41cff72967375c80306f4a3e2dd7cd4a64a0d0c80791ede081c7184264d0e354ef184f39b4b0a873548b9aa989def07e7d602db752ec77618d27c281070548b3ed7cc496f32f4192c20b2b013ff2f1dbca4731eb2a6070d30b06085998a50c4b008d3c27f59b5728b2f6cc68655679cc261f7dbebac1dc0972dcf86f44815140762ef473562b94c2c5ab230f25890dccd58fd5dd4ba2bfa05e60481e8410711837c7c414b0fdde428ddbb806b52ae7839bcad2ef7d8b1a12f976176e6691dd09d3aa247e85fb57fa155d3a66c812d84fdc72b91d07ae6037dc687a47609db8d25bdd5ddd53dee8cadbc43e90ece29c38c99d9dee499c0b0660ae81f39d87253d7d70dc9113d6c0682b329ed082db8b3c43763d11d84fe1ffae19fb582e79c308f2341153254385851239d9877d86891958b040a3add6571b13919a32a3864988d602748953a9fd9bdbeb75a4a0e00af6a1a0f6b5b998eeccfbd"
      }
    },
    {
      "type": "stake_output",
      "recipient": "dev16m74qnh5wrvqrc5pplar9t4v5z9mlykxp86a6n9yqyxw9qxq9a6qeajzdu",
      "validator": "9069a834e26b5d7eef9a196f036ad2737315d4c2f64cedd860313b45520e570aa2d2579503f22bdd4d13b8254352ef00f1667fa7effd8a702c027538fb645a767d744639f799e2bdba726964226d52fd87cbf027072ec928c87c6e0de23d2784",
      "amount": 50000000000,
      "serno": -7367979089502813811,
      "signature": "8e8a478ccc680401ad16759bff1c56654f1cdb80af13dcdcaa9a0fb76f6c9be291a47ce6b6fca12f5d2a4f9aaaaf6e80"
    }
  ],
  "validators": [
    {
      "network_pkey": "4c42d597fd4135c2a71dfba93efe89a2c838e26f6686577866a172fde5159ed2f3226d02bdd927aa820b356953fc2108f11783fa7bf5590db66acfceb1a1e485c1c79bfa6aa6d3a44bbbd23a3ef7fa88f7f884e563e56dcb3698cf592a250b84",
      "account_pkey": "dev1yfervqtkg47r7nl3732fl94wealp65tg652c8jpdt90f2u8ng3asw5dn3x",
      "slots": 253
    },
    {
      "network_pkey": "9069a834e26b5d7eef9a196f036ad2737315d4c2f64cedd860313b45520e570aa2d2579503f22bdd4d13b8254352ef00f1667fa7effd8a702c027538fb645a767d744639f799e2bdba726964226d52fd87cbf027072ec928c87c6e0de23d2784",
      "account_pkey": "dev16m74qnh5wrvqrc5pplar9t4v5z9mlykxp86a6n9yqyxw9qxq9a6qeajzdu",
      "slots": 259
    },
    {
      "network_pkey": "4f57360ea2750ddb9900a63ac3b1a3878f068bfcbbd6e029ecb3ad5d894539a431b1a39058a320b97b6e300cb8d4ef0d3661e52c11d016e525c7eebc7d8fb882e560cd55a1121a05e23ba2364e9aed9014037a4d26bc75a3e93e5f25aff19eb4",
      "account_pkey": "dev1qrtm3zxj05hksr3hewn4m7x0nl2w4hdtucfxchvrg0vyjwfgupps74cjyf",
      "slots": 255
    },
    {
      "network_pkey": "d9c2d567da672da9c9175eb5e37f8ac869bdff8f293ce8523cf34a2a18391751d256262938cf87c922b92d49dbd15202f69e78c47cb24254022ab13c791f8c24bf3259bb16ebae1663909baadd75ce90844fb85531e86ebe98b54322a8a56db6",
      "account_pkey": "dev1jn6nkexcc25a9z7vc3yakmm7p2v507gs0t4llpqs30knwcdhkues9hn2kp",
      "slots": 233
    }
  ],
  "facilitator": "d9c2d567da672da9c9175eb5e37f8ac869bdff8f293ce8523cf34a2a18391751d256262938cf87c922b92d49dbd15202f69e78c47cb24254022ab13c791f8c24bf3259bb16ebae1663909baadd75ce90844fb85531e86ebe98b54322a8a56db6",
  "awards": {
    "budget": 2928000000,
    "difficulty": 3,
    "validators_activity": {
      "dev1qrtm3zxj05hksr3hewn4m7x0nl2w4hdtucfxchvrg0vyjwfgupps74cjyf": {
        "status": "active"
      },
      "dev1yfervqtkg47r7nl3732fl94wealp65tg652c8jpdt90f2u8ng3asw5dn3x": {
        "status": "active"
      },
      "dev1jn6nkexcc25a9z7vc3yakmm7p2v507gs0t4llpqs30knwcdhkues9hn2kp": {
        "status": "active"
      },
      "dev16m74qnh5wrvqrc5pplar9t4v5z9mlykxp86a6n9yqyxw9qxq9a6qeajzdu": {
        "status": "active"
      }
    }
  },
  "payout": {
    "recipient": "dev16m74qnh5wrvqrc5pplar9t4v5z9mlykxp86a6n9yqyxw9qxq9a6qeajzdu",
    "amount": 6588000000
  }
}
{
  "type": "micro_block_prepared",
  "version": 1,
  "previous": "91fea1bfad29ff167785b87e6813427cef3bf256fcc351c6f437d890dc308f6a",
  "epoch": 95,
  "offset": 1,
  "view_change": 0,
  "view_change_proof": null,
  "pkey": "9069a834e26b5d7eef9a196f036ad2737315d4c2f64cedd860313b45520e570aa2d2579503f22bdd4d13b8254352ef00f1667fa7effd8a702c027538fb645a767d744639f799e2bdba726964226d52fd87cbf027072ec928c87c6e0de23d2784",
  "random": {
    "rand": "a1b8cb7a20ec652aac300307202271674ff0cf50c374617dcf6ed283dc908540",
    "proof": "c3aca57d14ccaed4965255291adbb89b184479384d6353f1e5cc5f86d358943ba1c426749e7bd78e53e1f65fc13e99a9"
  },
  "solution": "d8509988e7e42eff6dc8e03023ee547905d648996f56601e022587791e338f7b",
  "timestamp": "2019-09-27T12:40:56.511676995Z",
  "transactions_range_hash": "903b58175d87ff80f25d4b695b306c359b3de4e7649dc3f11bab173ed6efe6ae",
  "sig": "abe93960881f2f6c646947f20d230997f2720c16825eef0ea71c65ade25d6d364d9b7889b5448a38f48b74f57a587faa",
  "transactions": [
    {
      "type": "coinbase_transaction",
      "block_reward": 24000000,
      "block_fee": 0,
      "gamma": "097c6efc4e4ed16a788e97f0db4e7f62efc6590bd43327efd459f240f793f7f9",
      "txouts": [
        {
          "type": "payment_output",
          "recipient": "dev19rp03dcaar0gante3jutghx44maa5yc3mxa5ayhfcpy24zl6euzslz9vyv",
          "cloaking_hint": "2e563c8ef22fafd58c41a2258d92788888cd71b0a6d1ab0909ae4a7f0b769fc4",
          "proof": {
            "vcmt": "760138113651a380e271ed361c5aac2ce220d3eff307d24b9d02a6963e7edbf2",
            "proof": "40c075bc1d1f87f07f625be88566a18ea79d1f61f34bd2f23958d6570eb2304d5ad331dc3849724bb19387a8f3fdc82b698342cc298ba000e958a5e49e35b265089bacdf43ec372c87a36846a44acf2fbb3049f62151780ae8396ce085adfe6fb82b5045af2275c0343f5d15e1961332b262714b53a752be54af0d59b307ad2e6b2d172482c02455883969814d768d651bb5126d0e7a81380014b9f00ea1950d1d1d41dce0ebf5b218753a9579c1c5ac5011f8aaf8f80f66574536c2cc31350f5173ca125f9c7e273832a4036b77659857cb9209300a385857fc282709b54f076a70678eb6a525051e7d991035311ce2b3545db4b194cb03d4fe070e8d040702c858782faf5643eee47b7f40c4b385bf2eef2b00789ecb0456a5b42098d4775166c8296fa32a412574735c0cac0f0dd1eb83b250eb88f0db533dbcb9fb8de95a1c5049c10c70a6d8d40e2060f6fa3f31f706469950408e7c3db75f880ce96833562e26f30d96bdcefbdebb91a39248469321827f36f08f941f29fd38fbe09f22cc110feddb458215c0e03362cfdccf2f17d3fbaf39e1b939d71794beedf0004116fab7336712468a41b2219c1376b6e2785dc85f52c4b63ecc184d0b12fb65381618dd2c937260196d25b99c1d800c9dc2608271e60dbe636d32c3cb1602dc03f244d96fb9732325127fa34cabffc457a4765bb2818f06a3834478d7b583ac5bca13a348700c9c1b2f9a0e8c24809420d96870241a3c08dd1c12b6acbd2dca42ea791f632af1b822d967aaaddd39b138c8edf755b01ee4deb7a5fccc8c2f4d7b3a0e4ff1a59c6c7f3ece3b42513bb7a3b96b32a0896ad176c367ee4d2b6d66327336a8080cce80d323833d4aab2dd7b5797e5636c4138806bfcf701fff230701121a99570c7a1b9d60b8caec8807e66ad44edf978d79cd9f9a7467f0b70e8709"
          },
          "payload": {
            "ag": "0293da37550b5e73d9ce523476ad8ae6c9313819a5fabcaf3d70cdf555251480",
            "ctxt": "ec6e6e010d144e8a973f654484dab4fb49e1458985385ba3606a4138dd21404aeb22cb033113ace445c1b2a4203dcb5422c658fabad7718d386272578c00528923bb15b9bd86ce5477c1bf451feb42df65312d15559ff1ffbfc6e4aa63e0703eb512d6a34cdf2d579af881c5dc3ab6ef39c1b7c4c45ce9658b55305da958d08ae89aee23bfb02a5ea31fc9487f84db10a8cb7abdd9c6264a960b72fb31a1574c9415dacbdfa9488a4cb28219ca83ab447a67dd720ec7532c341e99fbd2783aaadeb596d0771baee98847a71356ef1b83a14ada464a515a37f033661cb8491307f65073e88423343f4f79167834926a21394df57efe68d22929a8b987482314a3c3724436946c8540a4a4f5f949fbd22c0811e0448e77fd5423bff7214f8de12c924208e4b6aaef3440e44afb6ac898869ff01de5aea01d4e10d78ad160d5729ed8a4097ef33ef1ef5d9b1269de6c711753baa6b6f1172cb7b98df2c0bcaf63129115905ccd858e7e7eee23d393a5a8b7ce095a88a8dfb6a5b22604740bed0f1b1ef6c1c174dd3e677ca490e7c66daca2df8660f3bac81221d185581c29dbaf73bcb59d8ec1bc9759d9130cab22db74111977775e1b9ee5cd55fc7d3a3d3fad689ff48164e72e9e5471c6af8ef2aafcc98d0e727eff312516238c32e890c8342be0e5763fadbd24a8ae58c55940756622d6c999bced8b9087e7b0b3cca5b379f9bbce66c759740070635148249b9592d81a7b5ac11cd417331b7cf03e7b1f6b902c8601cfafd620f923e6f90c1e1c13d5d5958000ccfa59989c25930d0fb5df7574382061e31b9d0d4f2c8f6a36e4d8fb792ec9315d3aebc588d9399b60554655731bc5d48c39e6920d56799d5990d5138e74829fe33ab3635c37360a542eecbf7f18be80324b409e77596096db4a5560597757006d75263af4943fd1825fe0ec27525bdaa0b87bd1ddbdd8b890fe8bb10cab1c59e1b75a66f15deab8e2a4b141545f26677ba91417fdb89837cbb4cd7e3bd65a7804854512a0f084f2f85714a75c1cb220f0213f08860d4fba062b238ac3813d7db948d49b20b4a8e8f7c345b2bca7071e038d48f5bda53d79dd055eea6f523ecbd0e8e6779da8c6e25b5edcc21a559de8c419ca4c4dbf14c3241c9f2bc0690c8326f89287811b77779b671d0ba8a233bc5e272169c4ff51da8e9906cd9f8f8459009daf5780a982d9cc0c430e2cd1994b09b5a97def4bb58f654bd68c16303318e82477463a10ebebf02bbbec118b7932d34004bc59942f0dead53f9a4cfcb899dc1da5801455274d2519cd089cd8add9cc375e1f374e9c4cd98f9def5d5ccb4193890160b89ea11adce7131cc654686c828e727ac03eaecd748da8f2de82c7d5531a1e73b337d82340859de3573a9b8604741cfa97a2708aa25d7b9ed5017e6849af8ac21ab9a30165865a08"
          }
        }
      ]
    }
  ]
}
{
  "type": "micro_block_reverted",
  "version": 1,
  "previous": "91fea1bfad29ff167785b87e6813427cef3bf256fcc351c6f437d890dc308f6a",
  "epoch": 95,
  "offset": 1,
  "view_change": 0,
  "view_change_proof": null,
  "pkey": "9069a834e26b5d7eef9a196f036ad2737315d4c2f64cedd860313b45520e570aa2d2579503f22bdd4d13b8254352ef00f1667fa7effd8a702c027538fb645a767d744639f799e2bdba726964226d52fd87cbf027072ec928c87c6e0de23d2784",
  "random": {
    "rand": "a1b8cb7a20ec652aac300307202271674ff0cf50c374617dcf6ed283dc908540",
    "proof": "c3aca57d14ccaed4965255291adbb89b184479384d6353f1e5cc5f86d358943ba1c426749e7bd78e53e1f65fc13e99a9"
  },
  "solution": "d8509988e7e42eff6dc8e03023ee547905d648996f56601e022587791e338f7b",
  "timestamp": "2019-09-27T12:40:56.511676995Z",
  "transactions_range_hash": "903b58175d87ff80f25d4b695b306c359b3de4e7649dc3f11bab173ed6efe6ae",
  "sig": "abe93960881f2f6c646947f20d230997f2720c16825eef0ea71c65ade25d6d364d9b7889b5448a38f48b74f57a587faa",
  "transactions": [
    {
      "type": "coinbase_transaction",
      "block_reward": 24000000,
      "block_fee": 0,
      "gamma": "097c6efc4e4ed16a788e97f0db4e7f62efc6590bd43327efd459f240f793f7f9",
      "txouts": [
        {
          "type": "payment_output",
          "recipient": "dev19rp03dcaar0gante3jutghx44maa5yc3mxa5ayhfcpy24zl6euzslz9vyv",
          "cloaking_hint": "2e563c8ef22fafd58c41a2258d92788888cd71b0a6d1ab0909ae4a7f0b769fc4",
          "proof": {
            "vcmt": "760138113651a380e271ed361c5aac2ce220d3eff307d24b9d02a6963e7edbf2",
            "proof": "40c075bc1d1f87f07f625be88566a18ea79d1f61f34bd2f23958d6570eb2304d5ad331dc3849724bb19387a8f3fdc82b698342cc298ba000e958a5e49e35b265089bacdf43ec372c87a36846a44acf2fbb3049f62151780ae8396ce085adfe6fb82b5045af2275c0343f5d15e1961332b262714b53a752be54af0d59b307ad2e6b2d172482c02455883969814d768d651bb5126d0e7a81380014b9f00ea1950d1d1d41dce0ebf5b218753a9579c1c5ac5011f8aaf8f80f66574536c2cc31350f5173ca125f9c7e273832a4036b77659857cb9209300a385857fc282709b54f076a70678eb6a525051e7d991035311ce2b3545db4b194cb03d4fe070e8d040702c858782faf5643eee47b7f40c4b385bf2eef2b00789ecb0456a5b42098d4775166c8296fa32a412574735c0cac0f0dd1eb83b250eb88f0db533dbcb9fb8de95a1c5049c10c70a6d8d40e2060f6fa3f31f706469950408e7c3db75f880ce96833562e26f30d96bdcefbdebb91a39248469321827f36f08f941f29fd38fbe09f22cc110feddb458215c0e03362cfdccf2f17d3fbaf39e1b939d71794beedf0004116fab7336712468a41b2219c1376b6e2785dc85f52c4b63ecc184d0b12fb65381618dd2c937260196d25b99c1d800c9dc2608271e60dbe636d32c3cb1602dc03f244d96fb9732325127fa34cabffc457a4765bb2818f06a3834478d7b583ac5bca13a348700c9c1b2f9a0e8c24809420d96870241a3c08dd1c12b6acbd2dca42ea791f632af1b822d967aaaddd39b138c8edf755b01ee4deb7a5fccc8c2f4d7b3a0e4ff1a59c6c7f3ece3b42513bb7a3b96b32a0896ad176c367ee4d2b6d66327336a8080cce80d323833d4aab2dd7b5797e5636c4138806bfcf701fff230701121a99570c7a1b9d60b8caec8807e66ad44edf978d79cd9f9a7467f0b70e8709"
          },
          "payload": {
            "ag": "0293da37550b5e73d9ce523476ad8ae6c9313819a5fabcaf3d70cdf555251480",
            "ctxt": "ec6e6e010d144e8a973f654484dab4fb49e1458985385ba3606a4138dd21404aeb22cb033113ace445c1b2a4203dcb5422c658fabad7718d386272578c00528923bb15b9bd86ce5477c1bf451feb42df65312d15559ff1ffbfc6e4aa63e0703eb512d6a34cdf2d579af881c5dc3ab6ef39c1b7c4c45ce9658b55305da958d08ae89aee23bfb02a5ea31fc9487f84db10a8cb7abdd9c6264a960b72fb31a1574c9415dacbdfa9488a4cb28219ca83ab447a67dd720ec7532c341e99fbd2783aaadeb596d0771baee98847a71356ef1b83a14ada464a515a37f033661cb8491307f65073e88423343f4f79167834926a21394df57efe68d22929a8b987482314a3c3724436946c8540a4a4f5f949fbd22c0811e0448e77fd5423bff7214f8de12c924208e4b6aaef3440e44afb6ac898869ff01de5aea01d4e10d78ad160d5729ed8a4097ef33ef1ef5d9b1269de6c711753baa6b6f1172cb7b98df2c0bcaf63129115905ccd858e7e7eee23d393a5a8b7ce095a88a8dfb6a5b22604740bed0f1b1ef6c1c174dd3e677ca490e7c66daca2df8660f3bac81221d185581c29dbaf73bcb59d8ec1bc9759d9130cab22db74111977775e1b9ee5cd55fc7d3a3d3fad689ff48164e72e9e5471c6af8ef2aafcc98d0e727eff312516238c32e890c8342be0e5763fadbd24a8ae58c55940756622d6c999bced8b9087e7b0b3cca5b379f9bbce66c759740070635148249b9592d81a7b5ac11cd417331b7cf03e7b1f6b902c8601cfafd620f923e6f90c1e1c13d5d5958000ccfa59989c25930d0fb5df7574382061e31b9d0d4f2c8f6a36e4d8fb792ec9315d3aebc588d9399b60554655731bc5d48c39e6920d56799d5990d5138e74829fe33ab3635c37360a542eecbf7f18be80324b409e77596096db4a5560597757006d75263af4943fd1825fe0ec27525bdaa0b87bd1ddbdd8b890fe8bb10cab1c59e1b75a66f15deab8e2a4b141545f26677ba91417fdb89837cbb4cd7e3bd65a7804854512a0f084f2f85714a75c1cb220f0213f08860d4fba062b238ac3813d7db948d49b20b4a8e8f7c345b2bca7071e038d48f5bda53d79dd055eea6f523ecbd0e8e6779da8c6e25b5edcc21a559de8c419ca4c4dbf14c3241c9f2bc0690c8326f89287811b77779b671d0ba8a233bc5e272169c4ff51da8e9906cd9f8f8459009daf5780a982d9cc0c430e2cd1994b09b5a97def4bb58f654bd68c16303318e82477463a10ebebf02bbbec118b7932d34004bc59942f0dead53f9a4cfcb899dc1da5801455274d2519cd089cd8add9cc375e1f374e9c4cd98f9def5d5ccb4193890160b89ea11adce7131cc654686c828e727ac03eaecd748da8f2de82c7d5531a1e73b337d82340859de3573a9b8604741cfa97a2708aa25d7b9ed5017e6849af8ac21ab9a30165865a08"
          }
        }
      ]
    }
  ]
}

Pop Micro Block

Pop the last micro block. For debug purposes only.

{
  "type": "pop_micro_block"
}
{
  "type": "micro_block_popped"
}

Escrow Information

Show UTXO in the escrow,

Request:

{
  "type": "escrow_info"
}

Response:

{
  "type": "escrow_info",
  "validators": [

    {
      "network_pkey": "c4dad2cd223433429ebd4bb25e25e447c6f1d97d9ac97336a02fe0321129224a6b30d69fe6f7c29e9af1e7328e033607a91e5d732673d4b


bbbd38e666ddf86d99a9dc709513b5537d7e723349ecacdb1992c861dce8e49ac6fb329f703646985",

      "active_stake": 100000000000,
      "expired_stake": 0,
      "stakes": [
        {
          "utxo": "2cc4cd0ba92efe9ee3f55fe7253ba2d8d2bbc488c3275c293ae084e30d94a58a",
          "account_pkey": "7fLGYDXAwrD4miZaFwSQ5Ts6RRGmZheFAdhVNhu6wqGcXyJXLcn",
          "active_until_epoch": 1200,
          "is_active": true,
          "amount": 100000000000
        }
      ]
    },


  ]
}

Election Information

Request:

{
  "type": "election_info"
}

Response:

{
  "type": "election_info",
  "epoch": 1199,
  "offset": 40,
  "view_change": 0,
  "slots_count": 1000,
  "current_leader": "ba6419bc26c8505a83222815a2c0459a43a377f9331b481c522aaa2473b0b3cd48cba7fd953b51303c45e018b17a310efce926b8ac11be8904a0ac74150ee8c503b616925a6742031668b421054aba0469e6fa223131a57a5370ac630a5091b5",
}

Enable Restaking

Request:

{
  "type": "enable_restaking"
}
{
  "type": "restaking_enabled"
}

Response:

{
  "type": "disable_restaking"
}
{
  "type": "restaking_disabled"
}

Use Cases

Transaction Tracking

1) Initiate a new transaction by using payment , secure_payment or public_payment call:

{
  "type": "secure_payment",
  "recipient": "7eAYuCBLQJNomPM7dHEmAp3Ku7H3wv76MdqpRBiuYdJseNwqcfw",
  "amount": 1,
  "payment_fee": 1000,
  "comment": "",
  "locked_timestamp": null,
  "with_certificate": false
}

See Payment for details.

2) Wait until TX is created by the Wallet:

{
  "account_id": "1",
  "type": "transaction_created",
  "tx_hash": "3de346b3c41f173b931f18bb9baf300afaa4724052c01efa008333f8a0e881d4",
  "fee": 2000,
  "outputs": [
    {
      "output_type": "payment",
      "utxo": "17c6556fbe25ccc7e7e8adb3e2000366cdef08e19d36478b5716c24778ecb3b2",
      "amount": 1,
      "comment": "",
      "locked_timestamp": null,
      "recipient": "dev1cn559rq08pvxkkkwdl5xcha33ql8g73npvgxkcjl57a34f8e856smqcgac",
      "is_change": false
    },
    {
      "output_type": "payment",
      "utxo": "eb05b05c5dd4c6f972b85f5848ccaa75fc7d49cb3b10009f6559e0274e92dd16",
      "amount": 999982699,
      "comment": "Change",
      "locked_timestamp": null,
      "recipient": "dev14ehru5zmyjuc64m25t8k9kqv4q95h0y20cwm5csgkpgups9e2ersmdp3e4",
      "is_change": true
    }
  ],
  "inputs": [
    "299512da5957b689b0862ef080cc64e54593ab6d1db74b426608a60ce7f1df2f",
    "ae485d68ef6dbc4b17a6ad61befbb8ce072e10341eb2f827246bd321cf8b4b07"
  ],
  "status": "created"
}

TX has been created and sent to the Node. For Snowball ( secure_payment ) transactions you will also see intermediate snowball_status notifications between secure_payment request and transaction_created response:

{
  "account_id": "1",
  "type": "snowball_status",
  "state": "pool_wait"
}
{
  "account_id": "1",
  "type": "snowball_status",
  "state": "commitment"
}
{
  "account_id": "1",
  "type": "snowball_status",
  "state": "cloaked_vals"
}
{
  "account_id": "1",
  "type": "snowball_status",
  "state": "signature"
}
{
  "account_id": "1",
  "type": "snowball_status",
  "state": "succeeded"
}

3) Wait until TX is accepted into a mempool:

{
  "account_id": "1",
  "type": "transaction_status",
  "tx_hash": "3de346b3c41f173b931f18bb9baf300afaa4724052c01efa008333f8a0e881d4",
  "status": "accepted"
}

TX has been accepted into Node’s mempool.

4) Wait until the transaction is added to a block:

{
  "account_id": "1",
  "type": "transaction_status",
  "tx_hash": "3de346b3c41f173b931f18bb9baf300afaa4724052c01efa008333f8a0e881d4",
  "status": "prepared",
  "epoch": 1230,
  "offset": 56
}

TX has been added to the blockchain.

5) Wait until TX is finalized by consensus:

{
  "account_id": "1",
  "type": "transaction_status",
  "tx_hash": "3de346b3c41f173b931f18bb9baf300afaa4724052c01efa008333f8a0e881d4",
  "status": "committed",
  "epoch": 1230,
}

TX has been finalized by PoS consensus.