{
    "openrpc": "1.0.0-rc1",
    "info": {
        "title": "Radix Core JSON-RPC API",
        "version": "3.0.0"
    },
    "methods": [
        {
            "name": "tokens.get_native_token",
            "summary": "Returns information about the native token of the network.",
            "servers": [
                {
                    "name": "archive",
                    "url": "http://./archive"
                }
            ],
            "params": [],
            "result": {
                "$ref": "#/components/responses/tokenInfo"
            },
            "examples": [
                {
                    "name": "nativeTokenExamples",
                    "params": [],
                    "result": {
                        "name": "nativeTokenExample",
                        "value": {
                            "name": "Rad",
                            "rri": "xrd_tr1qyf0x76s",
                            "symbol": "XRD",
                            "description": "The native token of the Radix network",
                            "granularity": "1",
                            "isSupplyMutable": false,
                            "currentSupply": "2147483648",
                            "tokenInfoURL": "http://www.radixdlt.com",
                            "iconURL": "http://www.image.radixdlt.com"
                        }
                    }
                }
            ]
        },
        {
            "name": "tokens.get_info",
            "summary": "Return token information on the provided RRI.",
            "servers": [
                {
                    "name": "archive",
                    "url": "http://./archive"
                }
            ],
            "params": [
                {
                    "name": "rri",
                    "required": true,
                    "schema": {
                        "$ref": "#/components/schemas/rri"
                    }
                }
            ],
            "result": {
                "$ref": "#/components/responses/tokenInfo"
            },
            "examples": [
                {
                    "name": "tokenInfoExamples",
                    "params": [],
                    "result": {
                        "name": "tokenInfoExample",
                        "value": {
                            "name": "Rad",
                            "rri": "xrd_tr1qyf0x76s",
                            "symbol": "XRD",
                            "description": "The native token of the Radix network",
                            "granularity": "1",
                            "isSupplyMutable": false,
                            "currentSupply": "2147483648",
                            "tokenInfoURL": "http://www.radixdlt.com",
                            "iconURL": "http://www.image.radixdlt.com"
                        }
                    }
                }
            ]
        },
        {
            "name": "account.get_balances",
            "summary": "Get the token balances for an address.",
            "servers": [
                {
                    "name": "archive",
                    "url": "http://./archive"
                }
            ],
            "params": [
                {
                    "name": "address",
                    "required": true,
                    "schema": {
                        "$ref": "#/components/schemas/address"
                    }
                }
            ],
            "result": {
                "name": "tokenBalances",
                "schema": {
                    "type": "object",
                    "properties": {
                        "owner": {
                            "$ref": "#/components/schemas/address"
                        },
                        "tokenBalances": {
                            "type": "array",
                            "items": [
                                {
                                    "type": "object",
                                    "properties": {
                                        "rri": {
                                            "$ref": "#/components/schemas/rri"
                                        },
                                        "amount": {
                                            "$ref": "#/components/schemas/amount"
                                        }
                                    },
                                    "additionalProperties": false,
                                    "required": [
                                        "rri",
                                        "amount"
                                    ]
                                }
                            ]
                        }
                    },
                    "required": [
                        "owner",
                        "tokenBalances"
                    ],
                    "additionalProperties": false
                }
            },
            "examples": [
                {
                    "name": "tokenBalancesExamples",
                    "params": [],
                    "result": {
                        "name": "tokenBalancesExample",
                        "value": {
                            "owner": "brx1qspqljn9rg7x97s3rcvyzal2uxr5q22d9xn8nc4rpq8vq08kg4ch8yqhs9dq6",
                            "tokenBalances": [
                                {
                                    "rri": "xrd_tr1qyf0x76s",
                                    "amount": "100"
                                }
                            ]
                        }
                    }
                }
            ]
        },
        {
            "name": "account.get_transaction_history",
            "summary": "Get the paginated transaction history for an address.",
            "servers": [
                {
                    "name": "archive",
                    "url": "http://./archive"
                }
            ],
            "params": [
                {
                    "name": "address",
                    "required": true,
                    "schema": {
                        "$ref": "#/components/schemas/address"
                    }
                },
                {
                    "name": "size",
                    "required": true,
                    "schema": {
                        "type": "integer",
                        "minimum": 1
                    }
                },
                {
                    "name": "cursor",
                    "required": false,
                    "schema": {
                        "type": "string"
                    }
                },
                {
                    "name": "verbose",
                    "required": false,
                    "schema": {
                        "type": "boolean"
                    }
                }
            ],
            "result": {
                "name": "transactionHistory",
                "schema": {
                    "type": "object",
                    "properties": {
                        "cursor": {
                            "type": "string"
                        },
                        "transactions": {
                            "type": "array",
                            "items": {
                                "$ref": "#/components/schemas/transaction"
                            }
                        },
                        "totalCount": {
                            "type": "number"
                        }
                    },
                    "required": [
                        "transactions",
                        "totalCount"
                    ],
                    "additionalProperties": false
                }
            },
            "examples": [
                {
                    "name": "transactionHistoryExamples",
                    "params": [],
                    "result": {
                        "name": "transactionHistoryExample",
                        "value": {
                            "cursor": "cursor",
                            "transactions": [
                                {
                                    "txID": "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef",
                                    "sentAt": "1995-12-17T03:24:00",
                                    "fee": "100",
                                    "message": "00004578616d706c65206d657373616765",
                                    "actions": [
                                        {
                                            "type": "TokenTransfer",
                                            "from": "brx1qspqljn9rg7x97s3rcvyzal2uxr5q22d9xn8nc4rpq8vq08kg4ch8yqhs9dq6",
                                            "to": "brx1qsp0mejfswrmcy5xf9up2ve7zez7w2th0fw4ne8js0u0q22vya7kg8getv7av",
                                            "amount": "100",
                                            "rri": "xrd_tr1qyf0x76s"
                                        },
                                        {
                                            "type": "StakeTokens",
                                            "from": "brx1qspqljn9rg7x97s3rcvyzal2uxr5q22d9xn8nc4rpq8vq08kg4ch8yqhs9dq6",
                                            "validator": "vb1qvx0emaq0tua6md7wu9c047mm5krrwnlfl8c7ws3jm2s9uf4vxcyvrwrazy",
                                            "amount": "100"
                                        },
                                        {
                                            "type": "UnstakeTokens",
                                            "to": "brx1qspqljn9rg7x97s3rcvyzal2uxr5q22d9xn8nc4rpq8vq08kg4ch8yqhs9dq6",
                                            "validator": "vb1qvx0emaq0tua6md7wu9c047mm5krrwnlfl8c7ws3jm2s9uf4vxcyvrwrazy",
                                            "amount": "100"
                                        },
                                        {
                                            "type": "Other"
                                        }
                                    ]
                                }
                            ]
                        }
                    }
                }
            ]
        },
        {
            "name": "account.get_stake_positions",
            "summary": "Get stakes that have not been requested to be unstaked.",
            "servers": [
                {
                    "name": "archive",
                    "url": "http://./archive"
                }
            ],
            "params": [
                {
                    "name": "address",
                    "required": true,
                    "schema": {
                        "$ref": "#/components/schemas/address"
                    }
                }
            ],
            "result": {
                "name": "stakePositions",
                "schema": {
                    "type": "array",
                    "items": [
                        {
                            "type": "object",
                            "properties": {
                                "validator": {
                                    "$ref": "#/components/schemas/address"
                                },
                                "amount": {
                                    "$ref": "#/components/schemas/amount"
                                }
                            },
                            "required": [
                                "validator",
                                "amount"
                            ],
                            "additionalProperties": false
                        }
                    ]
                }
            },
            "examples": [
                {
                    "name": "stakePositionsExamples",
                    "params": [],
                    "result": {
                        "name": "stakePositionsExample",
                        "value": [
                            {
                                "validator": "vb1qvx0emaq0tua6md7wu9c047mm5krrwnlfl8c7ws3jm2s9uf4vxcyvrwrazy",
                                "amount": "100"
                            }
                        ]
                    }
                }
            ]
        },
        {
            "name": "account.get_unstake_positions",
            "summary": "Get unstake history for an address.",
            "servers": [
                {
                    "name": "archive",
                    "url": "http://./archive"
                }
            ],
            "params": [
                {
                    "name": "address",
                    "required": true,
                    "schema": {
                        "$ref": "#/components/schemas/address"
                    }
                }
            ],
            "result": {
                "name": "unstakePositions",
                "schema": {
                    "type": "array",
                    "items": [
                        {
                            "type": "object",
                            "properties": {
                                "amount": {
                                    "$ref": "#/components/schemas/amount"
                                },
                                "validator": {
                                    "$ref": "#/components/schemas/address"
                                },
                                "epochsUntil": {
                                    "type": "integer"
                                },
                                "withdrawTxID": {
                                    "$ref": "#/components/schemas/txID"
                                }
                            },
                            "additionalProperties": false,
                            "required": [
                                "amount",
                                "validator",
                                "epochsUntil",
                                "withdrawTxID"
                            ]
                        }
                    ]
                }
            },
            "examples": [
                {
                    "name": "unstakePositionsExamples",
                    "params": [],
                    "result": {
                        "name": "unstakePositionsExample",
                        "value": [
                            {
                                "amount": "100",
                                "validator": "vb1qvx0emaq0tua6md7wu9c047mm5krrwnlfl8c7ws3jm2s9uf4vxcyvrwrazy",
                                "epochsUntil": 1000,
                                "withdrawTxID": "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef"
                            }
                        ]
                    }
                }
            ]
        },
        {
            "name": "transactions.lookup_transaction",
            "summary": "Get a transaction from its txID.",
            "servers": [
                {
                    "name": "archive",
                    "url": "http://./archive"
                }
            ],
            "params": [
                {
                    "name": "txID",
                    "required": true,
                    "schema": {
                        "$ref": "#/components/schemas/txID"
                    }
                }
            ],
            "result": {
                "name": "transaction",
                "schema": {
                    "$ref": "#/components/schemas/transaction"
                }
            },
            "examples": [
                {
                    "name": "lookupTransactionExamples",
                    "params": [],
                    "result": {
                        "name": "lookupTransactionExample",
                        "value": {
                            "txID": "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef",
                            "sentAt": "1995-12-17T03:24:00",
                            "fee": "100",
                            "message": "00004578616d706c65206d657373616765",
                            "actions": [
                                {
                                    "type": "TokenTransfer",
                                    "from": "brx1qspqljn9rg7x97s3rcvyzal2uxr5q22d9xn8nc4rpq8vq08kg4ch8yqhs9dq6",
                                    "to": "brx1qsp0mejfswrmcy5xf9up2ve7zez7w2th0fw4ne8js0u0q22vya7kg8getv7av",
                                    "amount": "100",
                                    "rri": "xrd_tr1qyf0x76s"
                                },
                                {
                                    "type": "StakeTokens",
                                    "from": "brx1qspqljn9rg7x97s3rcvyzal2uxr5q22d9xn8nc4rpq8vq08kg4ch8yqhs9dq6",
                                    "validator": "vb1qvx0emaq0tua6md7wu9c047mm5krrwnlfl8c7ws3jm2s9uf4vxcyvrwrazy",
                                    "amount": "100"
                                },
                                {
                                    "type": "UnstakeTokens",
                                    "to": "brx1qspqljn9rg7x97s3rcvyzal2uxr5q22d9xn8nc4rpq8vq08kg4ch8yqhs9dq6",
                                    "validator": "vb1qvx0emaq0tua6md7wu9c047mm5krrwnlfl8c7ws3jm2s9uf4vxcyvrwrazy",
                                    "amount": "100"
                                },
                                {
                                    "type": "Other"
                                }
                            ]
                        }
                    }
                }
            ]
        },
        {
            "name": "transactions.get_transaction_status",
            "summary": "Returns the status of a transaction.",
            "servers": [
                {
                    "name": "archive",
                    "url": "http://./archive"
                }
            ],
            "params": [
                {
                    "name": "txID",
                    "required": true,
                    "schema": {
                        "$ref": "#/components/schemas/txID"
                    }
                }
            ],
            "result": {
                "name": "transactionStatus",
                "schema": {
                    "type": "object",
                    "properties": {
                        "txID": {
                            "type": "string"
                        },
                        "status": {
                            "type": "string",
                            "enum": [
                                "PENDING",
                                "CONFIRMED",
                                "FAILED"
                            ]
                        },
                        "failure": {
                            "type": "string",
                            "enum": [
                                "TRANSACTION_NOT_FOUND"
                            ]
                        }
                    },
                    "additionalProperties": false,
                    "required": [
                        "txID",
                        "status"
                    ]
                }
            },
            "examples": [
                {
                    "name": "txStatusExamples",
                    "params": [],
                    "result": {
                        "name": "txStatusExample",
                        "value": {
                            "txID": "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef",
                            "status": "CONFIRMED"
                        }
                    }
                }
            ]
        },
        {
            "name": "validators.get_next_epoch_set",
            "summary": "Get a paginated validator list, ordered by XRD staked descending.",
            "servers": [
                {
                    "name": "archive",
                    "url": "http://./archive"
                }
            ],
            "params": [
                {
                    "name": "size",
                    "required": true,
                    "schema": {
                        "type": "integer",
                        "minimum": 1
                    }
                },
                {
                    "name": "cursor",
                    "required": false,
                    "schema": {
                        "type": "string"
                    }
                }
            ],
            "result": {
                "name": "validatorsResponse",
                "schema": {
                    "type": "object",
                    "properties": {
                        "cursor": {
                            "type": "string"
                        },
                        "validators": {
                            "type": "array",
                            "items": {
                                "$ref": "#/components/schemas/validator"
                            }
                        }
                    },
                    "additionalProperties": false,
                    "required": [
                        "cursor",
                        "validators"
                    ]
                }
            },
            "examples": [
                {
                    "name": "validatorsExamples",
                    "params": [],
                    "result": {
                        "name": "validatorsExample",
                        "value": {
                            "cursor": "cursor",
                            "validators": [
                                {
                                    "address": "vb1qvx0emaq0tua6md7wu9c047mm5krrwnlfl8c7ws3jm2s9uf4vxcyvrwrazy",
                                    "ownerAddress": "brx1qspqljn9rg7x97s3rcvyzal2uxr5q22d9xn8nc4rpq8vq08kg4ch8yqhs9dq6",
                                    "name": "Cerby",
                                    "infoURL": "http://www.radixdlt.com",
                                    "validatorFee": "100",
                                    "registered": true,
                                    "totalDelegatedStake": "100",
                                    "ownerDelegation": "100",
                                    "isExternalStakeAccepted": true,
                                    "proposalsMissed": 0,
                                    "proposalsCompleted": 10,
                                    "uptimePercentage": "100.00"
                                }
                            ]
                        }
                    }
                }
            ]
        },
        {
            "name": "validators.lookup_validator",
            "summary": "Lookup a single validator by its validator address.",
            "servers": [
                {
                    "name": "archive",
                    "url": "http://./archive"
                }
            ],
            "params": [
                {
                    "name": "validatorAddress",
                    "required": true,
                    "schema": {
                        "$ref": "#/components/schemas/validatorAddress"
                    }
                }
            ],
            "result": {
                "name": "lookupValidatorResponse",
                "schema": {
                    "$ref": "#/components/schemas/validator"
                }
            },
            "examples": [
                {
                    "name": "lookupValidatorExample",
                    "params": [],
                    "result": {
                        "name": "lookupValidatorExample",
                        "value": {
                            "address": "vb1qvx0emaq0tua6md7wu9c047mm5krrwnlfl8c7ws3jm2s9uf4vxcyvrwrazy",
                            "ownerAddress": "brx1qspqljn9rg7x97s3rcvyzal2uxr5q22d9xn8nc4rpq8vq08kg4ch8yqhs9dq6",
                            "name": "Cerby",
                            "infoURL": "http://www.radixdlt.com",
                            "totalDelegatedStake": "100",
                            "validatorFee": "100",
                            "registered": true,
                            "ownerDelegation": "100",
                            "isExternalStakeAccepted": true,
                            "proposalsMissed": 0,
                            "proposalsCompleted": 10,
                            "uptimePercentage": "100.00"
                        }
                    }
                }
            ]
        },
        {
            "name": "network.get_id",
            "summary": "Get the network id, a number that uniquely identifies the network. This network id must match the one used to derive addresses.",
            "servers": [
                {
                    "name": "archive",
                    "url": "http://./archive"
                }
            ],
            "params": [],
            "result": {
                "name": "networkId",
                "schema": {
                    "type": "object",
                    "properties": {
                        "networkId": {
                            "$ref": "#/components/schemas/networkId"
                        }
                    },
                    "required": [
                        "networkId"
                    ],
                    "additionalProperties": false
                }
            }
        },
        {
            "name": "network.get_throughput",
            "summary": "Returns the average number of transaction per second committed to the ledger.",
            "servers": [
                {
                    "name": "archive",
                    "url": "http://./archive"
                }
            ],
            "params": [],
            "result": {
                "name": "networkTransactionThroughput",
                "schema": {
                    "type": "object",
                    "properties": {
                        "tps": {
                            "type": "integer",
                            "minimum": 0
                        }
                    },
                    "additionalProperties": false,
                    "required": [
                        "tps"
                    ]
                }
            }
        },
        {
            "name": "network.get_demand",
            "summary": "Average number of transactions submitted to the mempool per second.",
            "servers": [
                {
                    "name": "archive",
                    "url": "http://./archive"
                }
            ],
            "params": [],
            "result": {
                "name": "networkTransactionDemand",
                "schema": {
                    "type": "object",
                    "properties": {
                        "tps": {
                            "type": "integer",
                            "minimum": 0
                        }
                    },
                    "additionalProperties": false,
                    "required": [
                        "tps"
                    ]
                }
            }
        },
        {
            "name": "construction.build_transaction",
            "summary": "Get an unsigned transaction.",
            "servers": [
                {
                    "name": "construction",
                    "url": "http://./construction"
                }
            ],
            "params": [
                {
                    "name": "actions",
                    "required": true,
                    "schema": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/actions"
                        }
                    }
                },
                {
                    "name": "feePayer",
                    "required": true,
                    "schema": {
                        "$ref": "#/components/schemas/address"
                    }
                },
                {
                    "name": "message",
                    "required": false,
                    "schema": {
                        "type": "string"
                    }
                },
                {
                    "name": "disableResourceAllocationAndDestroy",
                    "required": false,
                    "schema": {
                        "type": "boolean"
                    }
                }
            ],
            "result": {
                "name": "transaction",
                "schema": {
                    "type": "object",
                    "properties": {
                        "transaction": {
                            "type": "object",
                            "properties": {
                                "blob": {
                                    "type": "string"
                                },
                                "hashOfBlobToSign": {
                                    "type": "string"
                                },
                                "notifications": {
                                    "type": "array",
                                    "items": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "type": {
                                                    "type": "string"
                                                },
                                                "symbol": {
                                                    "type": "string"
                                                },
                                                "rri": {
                                                    "type": "string"
                                                }
                                            },
                                            "additionalProperties": false,
                                            "required": [
                                                "type"
                                            ]
                                        }
                                    ]
                                }
                            },
                            "additionalProperties": false,
                            "required": [
                                "blob",
                                "hashOfBlobToSign"
                            ]
                        },
                        "fee": {
                            "$ref": "#/components/schemas/amount"
                        }
                    },
                    "additionalProperties": false,
                    "required": [
                        "transaction",
                        "fee"
                    ]
                }
            },
            "errors": [
                {
                    "code": -1100,
                    "message": "ERROR_CALL_DATA",
                    "data": "Submitted transaction resulted to invalid RadixEngine procedure call"
                },
                {
                    "code": -1101,
                    "message": "ERROR_CONSTRAINT_VIOLATION",
                    "data": "Submitted transaction resulted to constraint machine error"
                },
                {
                    "code": -1102,
                    "message": "ERROR_DEFAULT_SYSTEM_LOAN",
                    "data": "Reserve fee deposit not enough to cover basic txn fee"
                },
                {
                    "code": -1103,
                    "message": "ERROR_DELEGATION_NOT_ALLOWED",
                    "data": "Delegation not allowed by owner."
                },
                {
                    "code": -1104,
                    "message": "ERROR_INVALID_HASHED_KEY",
                    "data": "Hashed key does not match expected key or has invalid type"
                },
                {
                    "code": -1105,
                    "message": "ERROR_INVALID_PERMISSION",
                    "data": "Mismatch between expected and actual procedure permissions"
                },
                {
                    "code": -1106,
                    "message": "ERROR_INVALID_RESOURCE",
                    "data": "Attempt to withdraw or deposit resource which does not match existing resource"
                },
                {
                    "code": -1107,
                    "message": "ERROR_INVALID_VIRTUAL_SUBSTATE",
                    "data": "Invalid substate reference during transaction processing"
                },
                {
                    "code": -1108,
                    "message": "ERROR_LOCAL_SUBSTATE_NOT_FOUND",
                    "data": "Invalid reference to local substate during transaction processing"
                },
                {
                    "code": -1109,
                    "message": "ERROR_MINIMUM_STAKE",
                    "data": "Attempt to stake amount below the minimum"
                },
                {
                    "code": -1110,
                    "message": "ERROR_MISMATCH",
                    "data": "Mismatch between expected and actual particles during transaction processing"
                },
                {
                    "code": -1111,
                    "message": "ERROR_MISSING_PROCEDURE",
                    "data": "Unknown or missing procedure is referenced during transaction processing"
                },
                {
                    "code": -1112,
                    "message": "ERROR_MULTIPLE_FEE_RESERVE_DEPOSIT",
                    "data": "Attempt to make more than one fee reserve deposit during transaction processing"
                },
                {
                    "code": -1113,
                    "message": "ERROR_NOT_AUTHORIZED",
                    "data": "Provided key is not authorized to perform requested action"
                },
                {
                    "code": -1114,
                    "message": "ERROR_NOT_A_RESOURCE",
                    "data": "Provided address does not represent a resource"
                },
                {
                    "code": -1115,
                    "message": "ERROR_NOT_ENOUGH_RESERVE",
                    "data": "Attempt to charge more fee than exists in fee reserve"
                },
                {
                    "code": -1116,
                    "message": "ERROR_NOT_ENOUGH_RESOURCES",
                    "data": "Withdraw or unstake amount exceeds available funds"
                },
                {
                    "code": -1117,
                    "message": "ERROR_PROCEDURE",
                    "data": "Error triggered during procedure execution during transaction processing"
                },
                {
                    "code": -1118,
                    "message": "ERROR_RESERVED_SYMBOL",
                    "data": "Attempt to use reserved symbol for new token"
                },
                {
                    "code": -1119,
                    "message": "ERROR_RESERVE_NOT_EMPTY",
                    "data": "The fee reserve is not empty upon transaction execution"
                },
                {
                    "code": -1120,
                    "message": "ERROR_RESOURCE_ALLOCATION_AND_DESTRUCTION",
                    "data": "Allocation and destruction of resources not enabled."
                },
                {
                    "code": -1121,
                    "message": "ERROR_SIGNED_SYSTEM",
                    "data": "System updates should not be signed."
                },
                {
                    "code": -1122,
                    "message": "ERROR_SUBSTATE_NOT_FOUND",
                    "data": "Substate with specified ID is not found during transaction processing"
                },
                {
                    "code": -1123,
                    "message": "ERROR_VIRTUAL_PARENT_STATE_DOES_NOT_EXIST",
                    "data": "Virtual parent substate with specified ID is not found during transaction processing"
                },
                {
                    "code": -1124,
                    "message": "ERROR_VIRTUAL_SUBSTATE_ALREADY_DOWN",
                    "data": "Virtual substate is already down and is not available"
                },
                {
                    "code": -1200,
                    "message": "INVALID_ACCOUNT_ADDRESS",
                    "data": "Provided account address is invalid"
                },
                {
                    "code": -1201,
                    "message": "INVALID_ACTION_DATA",
                    "data": "Provided action data are invalid"
                },
                {
                    "code": -1202,
                    "message": "INVALID_AID_LENGTH",
                    "data": "Provided AID string has incorrect length"
                },
                {
                    "code": -1203,
                    "message": "INVALID_AID_STRING",
                    "data": "Provided AID string is 'null'"
                },
                {
                    "code": -1204,
                    "message": "INVALID_PAGE_SIZE",
                    "data": "Provided page size is incorrect"
                },
                {
                    "code": -1205,
                    "message": "INVALID_PUBLIC_KEY",
                    "data": "Provided public key is invalid"
                },
                {
                    "code": -1206,
                    "message": "INVALID_RESOURCE_ADDRESS",
                    "data": "Provided resource address is invalid"
                },
                {
                    "code": -1207,
                    "message": "INVALID_SIGNATURE_DER",
                    "data": "Provided signature DER is invalid"
                },
                {
                    "code": -1208,
                    "message": "INVALID_TX_ID",
                    "data": "Provided transaction ID is invalid"
                },
                {
                    "code": -1209,
                    "message": "INVALID_VALIDATOR_ADDRESS",
                    "data": "Provided validator address is invalid"
                },
                {
                    "code": -1210,
                    "message": "INVALID_VALUE_OUT_OF_RANGE",
                    "data": "Provided parameter has value outside of allowed range"
                },
                {
                    "code": -1300,
                    "message": "MISSING_ACTION_FIELD",
                    "data": "Required field is not present in action definition"
                },
                {
                    "code": -1301,
                    "message": "MISSING_PARAMETER",
                    "data": "The required parameter is missing"
                },
                {
                    "code": -1400,
                    "message": "MUST_MATCH_TX_ID",
                    "data": "Provided transaction ID does not match provided transaction"
                },
                {
                    "code": -1500,
                    "message": "UNABLE_TO_ADD_TO_MEMPOOL",
                    "data": "Unable to add transaction to mempool: mempool is full"
                },
                {
                    "code": -1502,
                    "message": "UNABLE_TO_MAKE_SIGNATURE_RECOVERABLE",
                    "data": "Unable to convert signature to recoverable"
                },
                {
                    "code": -1503,
                    "message": "UNABLE_TO_PARSE_BOOLEAN",
                    "data": "Unable to parse boolean value"
                },
                {
                    "code": -1504,
                    "message": "UNABLE_TO_PARSE_FLOAT",
                    "data": "Unable to parse float number"
                },
                {
                    "code": -1505,
                    "message": "UNABLE_TO_PARSE_HEX_STRING",
                    "data": "The provided value is not a correct hexadecimal string"
                },
                {
                    "code": -1506,
                    "message": "UNABLE_TO_PARSE_INT",
                    "data": "Unable to parse integer number"
                },
                {
                    "code": -1507,
                    "message": "UNABLE_TO_PARSE_UINT",
                    "data": "Unable to parse unsigned integer number"
                },
                {
                    "code": -1508,
                    "message": "UNABLE_TO_PREPARE_TX",
                    "data": "Unable to prepare transaction"
                },
                {
                    "code": -1510,
                    "message": "UNABLE_TO_SUBMIT_TX",
                    "data": "Transaction submission failed"
                },
                {
                    "code": -1511,
                    "message": "UNKNOWN_ACTION",
                    "data": "Unknown action name"
                },
                {
                    "code": -1513,
                    "message": "UNKNOWN_RRI",
                    "data": "Unknown RRI"
                },
                {
                    "code": -1514,
                    "message": "UNKNOWN_TX_ID",
                    "data": "Transaction with provided id is not found"
                },
                {
                    "code": -1515,
                    "message": "UNSUPPORTED_ACTION",
                    "data": "Provided action type is not supported"
                }
            ]
        },
        {
            "name": "construction.finalize_transaction",
            "summary": "Finalizes a signed transaction before submitting it.",
            "servers": [
                {
                    "name": "construction",
                    "url": "http://./construction"
                }
            ],
            "params": [
                {
                    "name": "blob",
                    "required": true,
                    "schema": {
                        "type": "string"
                    }
                },
                {
                    "name": "signatureDER",
                    "required": true,
                    "schema": {
                        "type": "string"
                    }
                },
                {
                    "name": "publicKeyOfSigner",
                    "required": true,
                    "schema": {
                        "type": "string"
                    }
                },
                {
                    "name": "immediateSubmit",
                    "required": false,
                    "schema": {
                        "type": "boolean"
                    }
                }
            ],
            "result": {
                "name": "finalizeResult",
                "schema": {
                    "type": "object",
                    "properties": {
                        "txID": {
                            "$ref": "#/components/schemas/txID"
                        },
                        "blob": {
                            "type": "string"
                        }
                    },
                    "additionalProperties": false,
                    "required": [
                        "txID"
                    ]
                }
            }
        },
        {
            "name": "construction.submit_transaction",
            "summary": "Submits a transaction to be dispatched to Radix network.",
            "servers": [
                {
                    "name": "construction",
                    "url": "http://./construction"
                }
            ],
            "params": [
                {
                    "name": "blob",
                    "required": true,
                    "schema": {
                        "type": "string"
                    }
                },
                {
                    "name": "txID",
                    "required": false,
                    "schema": {
                        "$ref": "#/components/schemas/txID"
                    }
                }
            ],
            "result": {
                "name": "submissionResult",
                "schema": {
                    "type": "object",
                    "properties": {
                        "txID": {
                            "$ref": "#/components/schemas/txID"
                        }
                    },
                    "additionalProperties": false,
                    "required": [
                        "txID"
                    ]
                }
            },
            "errors": [
            ]
        },
        {
            "name": "account.get_info",
            "summary": "Your account's address and balances.",
            "servers": [
                {
                    "name": "account",
                    "url": "http://./account"
                }
            ],
            "params": [],
            "result": {
                "name": "accountGetInfoResult",
                "schema": {
                    "type": "object",
                    "properties": {
                        "address": {
                            "$ref": "#/components/schemas/validatorAddress"
                        },
                        "balance": {
                            "type": "object",
                            "properties": {
                                "tokens": {
                                    "type": "array",
                                    "items": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "rri": {
                                                    "type": "string"
                                                },
                                                "amount": {
                                                    "$ref": "#/components/schemas/amount"
                                                }
                                            },
                                            "additionalProperties": false,
                                            "required": [
                                                "rri",
                                                "amount"
                                            ]
                                        }
                                    ]
                                },
                                "stakes": {
                                    "type": "array",
                                    "items": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "delegate": {
                                                    "$ref": "#/components/schemas/validatorAddress"
                                                },
                                                "amount": {
                                                    "$ref": "#/components/schemas/amount"
                                                }
                                            },
                                            "additionalProperties": false,
                                            "required": [
                                                "delegate",
                                                "amount"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "additionalProperties": false,
                    "required": [
                        "address",
                        "balance"
                    ]
                }
            }
        },
        {
            "name": "account.submit_transaction_single_step",
            "summary": "One step transaction submission. Resulting transaction is signed with nodes' private key",
            "servers": [
                {
                    "name": "account",
                    "url": "http://./account"
                }
            ],
            "params": [
                {
                    "name": "actions",
                    "required": true,
                    "schema": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/actions"
                        }
                    }
                },
                {
                    "name": "message",
                    "required": false,
                    "schema": {
                        "type": "string"
                    }
                },
                {
                    "name": "disableResourceAllocationAndDestroy",
                    "required": false,
                    "schema": {
                        "type": "boolean"
                    }
                }
            ],
            "result": {
                "name": "submissionResult",
                "schema": {
                    "type": "object",
                    "properties": {
                        "txID": {
                            "$ref": "#/components/schemas/txID"
                        }
                    },
                    "additionalProperties": false,
                    "required": [
                        "txID"
                    ]
                }
            },
            "errors": [
            ]
        },
        {
            "name": "api.get_configuration",
            "summary": "Get active configuration parameters for api",
            "servers": [
                {
                    "name": "system",
                    "url": "http://./system"
                }
            ],
            "params": [],
            "result": {
                "name": "configurationResult",
                "schema": {
                    "type": "object",
                    "properties": {
                        "endpoints": {
                            "type": "array",
                            "items": [
                                {
                                    "type": "string"
                                }
                            ]
                        }
                    },
                    "additionalProperties": false,
                    "required": [
                        "endpoints"
                    ]
                }
            }
        },
        {
            "name": "api.get_data",
            "summary": "Get data for api",
            "servers": [
                {
                    "name": "system",
                    "url": "http://./system"
                }
            ],
            "params": [],
            "result": {
                "name": "apiDataResult",
                "schema": {
                    "type": "object",
                    "properties": {
                        "elapsed": {
                            "type": "object",
                            "properties": {
                                "apidb": {
                                    "type": "object",
                                    "properties": {
                                        "balance": {
                                            "type": "object",
                                            "properties": {
                                                "read": {
                                                    "type": "integer"
                                                },
                                                "write": {
                                                    "type": "integer"
                                                }
                                            }
                                        },
                                        "flush": {
                                            "type": "object",
                                            "properties": {
                                                "time": {
                                                    "type": "integer"
                                                }
                                            }
                                        },
                                        "transaction": {
                                            "type": "object",
                                            "properties": {
                                                "read": {
                                                    "type": "integer"
                                                },
                                                "write": {
                                                    "type": "integer"
                                                }
                                            }
                                        },
                                        "token": {
                                            "type": "object",
                                            "properties": {
                                                "read": {
                                                    "type": "integer"
                                                },
                                                "write": {
                                                    "type": "integer"
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        },
                        "count": {
                            "type": "object",
                            "properties": {
                                "apidb": {
                                    "type": "object",
                                    "properties": {
                                        "flush": {
                                            "type": "object",
                                            "properties": {
                                                "count": {
                                                    "type": "integer"
                                                }
                                            }
                                        },
                                        "balance": {
                                            "type": "object",
                                            "properties": {
                                                "total": {
                                                    "type": "integer"
                                                },
                                                "read": {
                                                    "type": "integer"
                                                },
                                                "bytes": {
                                                    "type": "object",
                                                    "properties": {
                                                        "read": {
                                                            "type": "integer"
                                                        },
                                                        "write": {
                                                            "type": "integer"
                                                        }
                                                    }
                                                },
                                                "write": {
                                                    "type": "integer"
                                                }
                                            }
                                        },
                                        "queue": {
                                            "type": "object",
                                            "properties": {
                                                "size": {
                                                    "type": "integer"
                                                }
                                            }
                                        },
                                        "transaction": {
                                            "type": "object",
                                            "properties": {
                                                "total": {
                                                    "type": "integer"
                                                },
                                                "read": {
                                                    "type": "integer"
                                                },
                                                "bytes": {
                                                    "type": "object",
                                                    "properties": {
                                                        "read": {
                                                            "type": "integer"
                                                        },
                                                        "write": {
                                                            "type": "integer"
                                                        }
                                                    }
                                                },
                                                "write": {
                                                    "type": "integer"
                                                }
                                            }
                                        },
                                        "token": {
                                            "type": "object",
                                            "properties": {
                                                "total": {
                                                    "type": "integer"
                                                },
                                                "read": {
                                                    "type": "integer"
                                                },
                                                "bytes": {
                                                    "type": "object",
                                                    "properties": {
                                                        "read": {
                                                            "type": "integer"
                                                        },
                                                        "write": {
                                                            "type": "integer"
                                                        }
                                                    }
                                                },
                                                "write": {
                                                    "type": "integer"
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        {
            "name": "bft.get_configuration",
            "summary": "Get active configuration parameters for consensus",
            "servers": [
                {
                    "name": "system",
                    "url": "http://./system"
                }
            ],
            "params": [],
            "result": {
                "name": "bftConfigurationResult",
                "schema": {
                    "type": "object",
                    "properties": {
                        "pacemakerTimeout": {
                            "type": "integer"
                        },
                        "bftSyncPatienceMs": {
                            "type": "integer"
                        }
                    }
                }
            }
        },
        {
            "name": "bft.get_data",
            "summary": "Get data for consensus",
            "servers": [
                {
                    "name": "system",
                    "url": "http://./system"
                }
            ],
            "params": [],
            "result": {
                "name": "bftDataResult",
                "schema": {
                    "type": "object",
                    "properties": {
                        "stateVersion": {
                            "type": "integer"
                        },
                        "voteQuorums": {
                            "type": "integer"
                        },
                        "rejected": {
                            "type": "integer"
                        },
                        "vertexStoreRebuilds": {
                            "type": "integer"
                        },
                        "vertexStoreForks": {
                            "type": "integer"
                        },
                        "sync": {
                            "type": "object",
                            "properties": {
                                "requestTimeouts": {
                                    "type": "integer"
                                },
                                "requestsSent": {
                                    "type": "integer"
                                }
                            }
                        },
                        "timeout": {
                            "type": "integer"
                        },
                        "vertexStoreSize": {
                            "type": "integer"
                        },
                        "processed": {
                            "type": "integer"
                        },
                        "consensusEvents": {
                            "type": "integer"
                        },
                        "indirectParent": {
                            "type": "integer"
                        },
                        "proposalsMade": {
                            "type": "integer"
                        },
                        "timedOutViews": {
                            "type": "integer"
                        },
                        "timeoutQuorums": {
                            "type": "integer"
                        }
                    }
                }
            }
        },
        {
            "name": "mempool.get_configuration",
            "summary": "Get active configuration parameters for mempool",
            "servers": [
                {
                    "name": "system",
                    "url": "http://./system"
                }
            ],
            "params": [],
            "result": {
                "name": "mempoolConfigurationResult",
                "schema": {
                    "type": "object",
                    "properties": {
                        "maxSize": {
                            "type": "integer"
                        },
                        "throttleMs": {
                            "type": "integer"
                        }
                    }
                }
            }
        },
        {
            "name": "mempool.get_data",
            "summary": "Get data for mempool",
            "servers": [
                {
                    "name": "system",
                    "url": "http://./system"
                }
            ],
            "params": [],
            "result": {
                "name": "mempoolDataResult",
                "schema": {
                    "type": "object",
                    "properties": {
                        "maxcount": {
                            "type": "integer"
                        },
                        "relayerSentCount": {
                            "type": "integer"
                        },
                        "count": {
                            "type": "integer"
                        },
                        "addSuccess": {
                            "type": "integer"
                        },
                        "proposedTransaction": {
                            "type": "integer"
                        },
                        "errors": {
                            "type": "object",
                            "properties": {
                                "other": {
                                    "type": "integer"
                                },
                                "hook": {
                                    "type": "integer"
                                },
                                "conflict": {
                                    "type": "integer"
                                }
                            }
                        }
                    }
                }
            }
        },
        {
            "name": "ledger.get_latest_proof",
            "summary": "Get the latest known ledger proof",
            "servers": [
                {
                    "name": "system",
                    "url": "http://./system"
                }
            ],
            "params": [],
            "result": {
                "name": "ledgerProofResult",
                "schema": {
                    "type": "object",
                    "properties": {
                        "opaque": {
                            "type": "string"
                        },
                        "sigs": {
                            "type": "array",
                            "items": {
                                "type": "object",
                                "properties": {
                                    "key": {
                                        "type": "string"
                                    },
                                    "signature": {
                                        "type": "string"
                                    },
                                    "timestamp": {
                                        "type": "integer"
                                    }
                                }
                            }
                        },
                        "header": {
                            "type": "object",
                            "properties": {
                                "view": {
                                    "type": "integer"
                                },
                                "epoch": {
                                    "type": "integer"
                                },
                                "accumulator": {
                                    "type": "string"
                                },
                                "version": {
                                    "type": "integer"
                                },
                                "timestamp": {
                                    "type": "integer"
                                }
                            }
                        }
                    }
                }
            }
        },
        {
            "name": "ledger.get_latest_epoch_proof",
            "summary": "Get the latest known ledger epoch proof",
            "servers": [
                {
                    "name": "system",
                    "url": "http://./system"
                }
            ],
            "params": [],
            "result": {
                "name": "ledgerProofResult",
                "schema": {
                    "type": "object",
                    "properties": {
                        "opaque": {
                            "type": "string"
                        },
                        "sigs": {
                            "type": "array",
                            "items": {
                                "type": "object",
                                "properties": {
                                    "key": {
                                        "type": "string"
                                    },
                                    "signature": {
                                        "type": "string"
                                    },
                                    "timestamp": {
                                        "type": "integer"
                                    }
                                }
                            }
                        },
                        "header": {
                            "type": "object",
                            "properties": {
                                "view": {
                                    "type": "integer"
                                },
                                "epoch": {
                                    "type": "integer"
                                },
                                "accumulator": {
                                    "type": "string"
                                },
                                "version": {
                                    "type": "integer"
                                },
                                "timestamp": {
                                    "type": "integer"
                                }
                            }
                        }
                    }
                }
            }
        },
        {
            "name": "radix_engine.get_configuration",
            "summary": "Get active configuration parameters for radix engine",
            "servers": [
                {
                    "name": "system",
                    "url": "http://./system"
                }
            ],
            "params": [],
            "result": {
                "name": "radixEngineConfigurationResult",
                "schema": {
                    "type": "array",
                    "items": {
                        "type": "object",
                        "properties": {
                            "name": {
                                "type": "string"
                            },
                            "epoch": {
                                "type": "number"
                            },
                            "version": {
                                "type": "string"
                            },
                            "config": {
                                "type": "object",
                                "properties": {
                                    "maxValidators": {
                                        "type": "integer"
                                    },
                                    "maxTransactionsPerRound": {
                                        "type": "integer"
                                    },
                                    "maxRoundsPerEpoch": {
                                        "type": "integer"
                                    },
                                    "minimumCompletedProposalsPercentage": {
                                        "type": "integer"
                                    },
                                    "unstakingDelayEpochLength": {
                                        "type": "integer"
                                    },
                                    "tokenSymbolPattern": {
                                        "type": "string"
                                    },
                                    "feeTable": {
                                        "type": "object",
                                        "properties": {
                                            "perByteFee": {
                                                "$ref": "#/components/schemas/amount"
                                            },
                                            "perUpSubstateFee": {
                                                "type": "object"
                                            }
                                        }
                                    }
                                }
                            },
                            "validatorFeeIncreaseDebouncerEpochLength": {
                                "type": "number"
                            },
                            "minimumStake": {
                                "$ref": "#/components/schemas/amount"
                            },
                            "reservedSymbols": {
                                "type": "array",
                                "items": {
                                    "type": "string"
                                }
                            },
                            "maxTransactionSize": {
                                "type": "number"
                            },
                            "rewardsPerProposal": {
                                "$ref": "#/components/schemas/amount"
                            }
                        }
                    }
                }
            }
        },
        {
            "name": "radix_engine.get_data",
            "summary": "Get data for radix engine",
            "servers": [
                {
                    "name": "system",
                    "url": "http://./system"
                }
            ],
            "params": [],
            "result": {
                "name": "radixEngineDataResult",
                "schema": {
                    "type": "object",
                    "properties": {
                        "invalidProposedCommands": {
                            "type": "integer"
                        },
                        "systemTransactions": {
                            "type": "integer"
                        },
                        "userTransactions": {
                            "type": "integer"
                        }
                    }
                }
            }
        },
        {
            "name": "sync.get_configuration",
            "summary": "Get active configuration parameters for sync",
            "servers": [
                {
                    "name": "system",
                    "url": "http://./system"
                }
            ],
            "params": [],
            "result": {
                "name": "syncConfigurationResult",
                "schema": {
                    "type": "object",
                    "properties": {
                        "maxLedgerUpdatesRate": {
                            "type": "number"
                        },
                        "requestTimeout": {
                            "type": "integer"
                        },
                        "syncCheckInterval": {
                            "type": "integer"
                        },
                        "syncCheckMaxPeers": {
                            "type": "integer"
                        },
                        "ledgerStatusUpdateMaxPeersToNotify": {
                            "type": "integer"
                        }
                    }
                }
            }
        },
        {
            "name": "sync.get_data",
            "summary": "Get data for sync",
            "servers": [
                {
                    "name": "system",
                    "url": "http://./system"
                }
            ],
            "params": [],
            "result": {
                "name": "syncDataResult",
                "schema": {
                    "type": "object",
                    "properties": {
                        "processed": {
                            "type": "integer"
                        },
                        "targetStateVersion": {
                            "type": "integer"
                        },
                        "remoteRequestsProcessed": {
                            "type": "integer"
                        },
                        "invalidCommandsReceived": {
                            "type": "integer"
                        },
                        "lastReadMillis": {
                            "type": "integer"
                        },
                        "targetCurrentDiff": {
                            "type": "integer"
                        }
                    }
                }
            }
        },
        {
            "name": "networking.get_configuration",
            "summary": "Get active configuration parameters for networking",
            "servers": [
                {
                    "name": "system",
                    "url": "http://./system"
                }
            ],
            "params": [],
            "result": {
                "name": "networkingConfigurationResult",
                "schema": {
                    "type": "object",
                    "properties": {
                        "defaultPort": {
                            "type": "integer"
                        },
                        "discoveryInterval": {
                            "type": "integer"
                        },
                        "listenAddress": {
                            "type": "string"
                        },
                        "listenPort": {
                            "type": "integer"
                        },
                        "broadcastPort": {
                            "type": "integer"
                        },
                        "peerConnectionTimeout": {
                            "type": "integer"
                        },
                        "maxInboundChannels": {
                            "type": "integer"
                        },
                        "maxOutboundChannels": {
                            "type": "integer"
                        },
                        "channelBufferSize": {
                            "type": "integer"
                        },
                        "peerLivenessCheckInterval": {
                            "type": "integer"
                        },
                        "pingTimeout": {
                            "type": "integer"
                        },
                        "seedNodes": {
                            "type": "array",
                            "items": [
                                {
                                    "type": "string"
                                }
                            ]
                        },
                        "nodeAddress": {
                            "type": "string"
                        }
                    }
                }
            }
        },
        {
            "name": "networking.get_peers",
            "summary": "Get information about connected peer nodes",
            "servers": [
                {
                    "name": "system",
                    "url": "http://./system"
                }
            ],
            "params": [],
            "result": {
                "name": "getPeersResult",
                "schema": {
                    "type": "array",
                    "items": [
                        {
                            "type": "object",
                            "properties": {
                                "address": {
                                    "$ref": "#/components/schemas/nodeAddress"
                                },
                                "channels": {
                                    "type": "array",
                                    "items": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "type": {
                                                    "type": "string"
                                                },
                                                "localPort": {
                                                    "type": "integer"
                                                },
                                                "uri": {
                                                    "type": "string"
                                                }
                                            }
                                        }
                                    ]
                                }
                            }
                        }
                    ]
                }
            }
        },
        {
            "name": "networking.get_address_book",
            "summary": "Get information about known peer nodes",
            "servers": [
                {
                    "name": "system",
                    "url": "http://./system"
                }
            ],
            "params": [],
            "result": {
                "name": "getAddressBookResult",
                "schema": {
                    "type": "array",
                    "items": [
                        {
                            "type": "object",
                            "properties": {
                                "address": {
                                    "$ref": "#/components/schemas/nodeAddress"
                                },
                                "banned": {
                                    "type": "boolean"
                                },
                                "knownAddresses": {
                                    "type": "array",
                                    "items": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "uri": {
                                                    "type": "string"
                                                },
                                                "blacklisted": {
                                                    "type": "boolean"
                                                },
                                                "latestConnectionStatus": {
                                                    "type": "string"
                                                }
                                            }
                                        }
                                    ]
                                }
                            }
                        }
                    ]
                }
            }
        },
        {
            "name": "networking.get_data",
            "summary": "Get data for networking",
            "servers": [
                {
                    "name": "system",
                    "url": "http://./system"
                }
            ],
            "params": [],
            "result": {
                "name": "networkingDataResult",
                "schema": {
                    "type": "object",
                    "properties": {
                        "messages": {
                            "type": "object",
                            "properties": {
                                "inbound": {
                                    "type": "object",
                                    "properties": {
                                        "processed": {
                                            "type": "integer"
                                        },
                                        "discarded": {
                                            "type": "integer"
                                        },
                                        "received": {
                                            "type": "integer"
                                        }
                                    }
                                },
                                "outbound": {
                                    "type": "object",
                                    "properties": {
                                        "processed": {
                                            "type": "integer"
                                        },
                                        "aborted": {
                                            "type": "integer"
                                        },
                                        "pending": {
                                            "type": "integer"
                                        },
                                        "sent": {
                                            "type": "integer"
                                        }
                                    }
                                }
                            }
                        },
                        "networking": {
                            "type": "object",
                            "properties": {
                                "udp": {
                                    "type": "object",
                                    "properties": {
                                        "droppedMessages": {
                                            "type": "integer"
                                        }
                                    }
                                },
                                "tcp": {
                                    "type": "object",
                                    "properties": {
                                        "outOpened": {
                                            "type": "integer"
                                        },
                                        "droppedMessages": {
                                            "type": "integer"
                                        },
                                        "inOpened": {
                                            "type": "integer"
                                        },
                                        "closed": {
                                            "type": "integer"
                                        }
                                    }
                                },
                                "receivedBytes": {
                                    "type": "integer"
                                },
                                "sentBytes": {
                                    "type": "integer"
                                }
                            }
                        }
                    }
                }
            }
        },
        {
            "name": "checkpoints.get_checkpoints",
            "summary": "Get genesis txn and proof,",
            "servers": [
                {
                    "name": "system",
                    "url": "http://./system"
                }
            ],
            "params": [],
            "result": {
                "name": "checkpointsResult",
                "schema": {
                    "type": "object",
                    "properties": {
                        "txn": {
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        },
                        "proof": {
                            "type": "object",
                            "properties": {
                                "opaque": {
                                    "type": "string"
                                },
                                "sigs": {
                                    "type": "array",
                                    "items": {
                                        "type": "object",
                                        "properties": {
                                            "address": {
                                                "type": "string"
                                            },
                                            "signature": {
                                                "type": "string"
                                            },
                                            "timestamp": {
                                                "type": "integer"
                                            }
                                        }
                                    }
                                },
                                "header": {
                                    "type": "object",
                                    "properties": {
                                        "view": {
                                            "type": "integer"
                                        },
                                        "nextValidators": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "stake": {
                                                        "type": "string"
                                                    },
                                                    "address": {
                                                        "type": "string"
                                                    }
                                                }
                                            }
                                        },
                                        "epoch": {
                                            "type": "integer"
                                        },
                                        "accumulator": {
                                            "type": "string"
                                        },
                                        "version": {
                                            "type": "integer"
                                        },
                                        "timestamp": {
                                            "type": "integer"
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        {
            "name": "validation.get_node_info",
            "summary": "Get information about node as a validator - stakes, registration status, etc.",
            "servers": [
                {
                    "name": "system",
                    "url": "http://./validation"
                }
            ],
            "params": [],
            "result": {
                "name": "nodeInfoResult",
                "schema": {
                    "type": "object",
                    "properties": {
                        "address": {
                            "$ref": "#/components/schemas/validatorAddress"
                        },
                        "allowDelegation": {
                            "type": "boolean"
                        },
                        "name": {
                            "type": "string"
                        },
                        "url": {
                            "type": "string"
                        },
                        "epochInfo": {
                            "type": "object",
                            "properties": {
                                "current": {
                                    "type": "object",
                                    "properties": {
                                        "registered": {
                                            "type": "boolean"
                                        },
                                        "owner": {
                                            "$ref": "#/components/schemas/address"
                                        },
                                        "validatorFee": {
                                            "type": "string"
                                        },
                                        "stakes": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "amount": {
                                                        "$ref": "#/components/schemas/amount"
                                                    },
                                                    "delegator": {
                                                        "$ref": "#/components/schemas/address"
                                                    }
                                                }
                                            }
                                        },
                                        "totalStake": {
                                            "$ref": "#/components/schemas/amount"
                                        },
                                        "proposalsCompleted": {
                                            "type": "number"
                                        },
                                        "proposalsMissed": {
                                            "type": "number"
                                        },
                                        "uptimePercentage": {
                                            "type": "string"
                                        }
                                    }
                                },
                                "updates": {
                                    "type": "object",
                                    "properties": {
                                        "validatorFee": {
                                            "type": "string"
                                        },
                                        "registered": {
                                            "type": "boolean"
                                        },
                                        "owner": {
                                            "$ref": "#/components/schemas/address"
                                        },
                                        "stakes": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "amount": {
                                                        "$ref": "#/components/schemas/amount"
                                                    },
                                                    "delegator": {
                                                        "$ref": "#/components/schemas/address"
                                                    }
                                                }
                                            }
                                        },
                                        "unstakes": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "amount": {
                                                        "$ref": "#/components/schemas/amount"
                                                    },
                                                    "delegator": {
                                                        "$ref": "#/components/schemas/address"
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "additionalProperties": false,
                    "required": [
                        "address",
                        "totalStake",
                        "stakes",
                        "owner",
                        "validatorFee",
                        "registered",
                        "allowDelegation"
                    ]
                }
            }
        },
        {
            "name": "validation.get_current_epoch_data",
            "summary": "Get information about the current epoch's validator set",
            "servers": [
                {
                    "name": "system",
                    "url": "http://./validation"
                }
            ],
            "params": [],
            "result": {
                "name": "currentEpochDataResult",
                "schema": {
                    "type": "object",
                    "properties": {
                        "validators": {
                            "type": "array",
                            "items": {
                                "type": "object",
                                "properties": {
                                    "address": {
                                        "$ref": "#/components/schemas/validatorAddress"
                                    },
                                    "totalDelegatedStake": {
                                        "$ref": "#/components/schemas/amount"
                                    },
                                    "proposalsMissed": {
                                        "type": "number"
                                    },
                                    "proposalsCompleted": {
                                        "type": "number"
                                    },
                                    "uptimePercentage": {
                                        "type": "string"
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    ],
    "components": {
        "schemas": {
            "actions": {
                "anyOf": [
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "type": "string",
                                "enum": [
                                    "TokenTransfer"
                                ]
                            },
                            "from": {
                                "$ref": "#/components/schemas/address"
                            },
                            "to": {
                                "$ref": "#/components/schemas/address"
                            },
                            "amount": {
                                "$ref": "#/components/schemas/amount"
                            },
                            "rri": {
                                "$ref": "#/components/schemas/rri"
                            }
                        },
                        "required": [
                            "type",
                            "from",
                            "to",
                            "amount",
                            "rri"
                        ]
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "type": "string",
                                "enum": [
                                    "StakeTokens"
                                ]
                            },
                            "from": {
                                "$ref": "#/components/schemas/address"
                            },
                            "validator": {
                                "$ref": "#/components/schemas/validatorAddress"
                            },
                            "amount": {
                                "$ref": "#/components/schemas/amount"
                            }
                        },
                        "additionalProperties": false,
                        "required": [
                            "type",
                            "from",
                            "validator",
                            "amount"
                        ]
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "type": "string",
                                "enum": [
                                    "UnstakeTokens"
                                ]
                            },
                            "to": {
                                "$ref": "#/components/schemas/address"
                            },
                            "validator": {
                                "$ref": "#/components/schemas/validatorAddress"
                            },
                            "amount": {
                                "$ref": "#/components/schemas/amount"
                            }
                        },
                        "required": [
                            "type",
                            "to",
                            "validator",
                            "amount"
                        ],
                        "additionalProperties": false
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "type": "string",
                                "enum": [
                                    "BurnTokens"
                                ]
                            },
                            "from": {
                                "$ref": "#/components/schemas/address"
                            },
                            "rri": {
                                "$ref": "#/components/schemas/rri"
                            },
                            "amount": {
                                "$ref": "#/components/schemas/amount"
                            }
                        },
                        "required": [
                            "type",
                            "from",
                            "rri",
                            "amount"
                        ],
                        "additionalProperties": false
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "type": "string",
                                "enum": [
                                    "MintTokens"
                                ]
                            },
                            "to": {
                                "$ref": "#/components/schemas/address"
                            },
                            "rri": {
                                "$ref": "#/components/schemas/rri"
                            },
                            "amount": {
                                "$ref": "#/components/schemas/amount"
                            }
                        },
                        "required": [
                            "type",
                            "to",
                            "rri",
                            "amount"
                        ],
                        "additionalProperties": false
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "type": "string",
                                "enum": [
                                    "RegisterValidator"
                                ]
                            },
                            "validator": {
                                "$ref": "#/components/schemas/validatorAddress"
                            }
                        },
                        "required": [
                            "type",
                            "validator"
                        ],
                        "additionalProperties": false
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "type": "string",
                                "enum": [
                                    "UnregisterValidator"
                                ]
                            },
                            "validator": {
                                "$ref": "#/components/schemas/validatorAddress"
                            }
                        },
                        "required": [
                            "type",
                            "validator"
                        ],
                        "additionalProperties": false
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "type": "string",
                                "enum": [
                                    "UpdateValidatorMetadata"
                                ]
                            },
                            "validator": {
                                "$ref": "#/components/schemas/validatorAddress"
                            },
                            "name": {
                                "type": "string"
                            },
                            "url": {
                                "type": "string"
                            }
                        },
                        "required": [
                            "type",
                            "validator"
                        ],
                        "additionalProperties": false
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "type": "string",
                                "enum": [
                                    "UpdateValidatorFee"
                                ]
                            },
                            "validator": {
                                "$ref": "#/components/schemas/validatorAddress"
                            },
                            "validatorFee": {
                                "type": "number"
                            }
                        },
                        "required": [
                            "type",
                            "validator",
                            "validatorFee"
                        ],
                        "additionalProperties": false
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "type": "string",
                                "enum": [
                                    "UpdateAllowDelegationFlag"
                                ]
                            },
                            "validator": {
                                "$ref": "#/components/schemas/validatorAddress"
                            },
                            "allowDelegation": {
                                "type": "boolean"
                            }
                        },
                        "required": [
                            "type",
                            "validator",
                            "allowDelegation"
                        ],
                        "additionalProperties": false
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "type": "string",
                                "enum": [
                                    "UpdateValidatorOwnerAddress"
                                ]
                            },
                            "validator": {
                                "$ref": "#/components/schemas/validatorAddress"
                            },
                            "owner": {
                                "$ref": "#/components/schemas/address"
                            }
                        },
                        "required": [
                            "type",
                            "validator",
                            "owner"
                        ],
                        "additionalProperties": false
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "type": "string",
                                "enum": [
                                    "CreateFixedSupplyToken"
                                ]
                            },
                            "to": {
                                "$ref": "#/components/schemas/address"
                            },
                            "publicKeyOfSigner": {
                                "$ref": "#/components/schemas/pubKey"
                            },
                            "symbol": {
                                "type": "string"
                            },
                            "name": {
                                "type": "string"
                            },
                            "description": {
                                "type": "string"
                            },
                            "iconUrl": {
                                "type": "string"
                            },
                            "tokenUrl": {
                                "type": "string"
                            },
                            "supply": {
                                "$ref": "#/components/schemas/amount"
                            }
                        },
                        "required": [
                            "type",
                            "to",
                            "publicKeyOfSigner",
                            "symbol",
                            "name",
                            "description",
                            "iconUrl",
                            "tokenUrl",
                            "supply"
                        ],
                        "additionalProperties": false
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "type": "string",
                                "enum": [
                                    "CreateMutableSupplyToken"
                                ]
                            },
                            "publicKeyOfSigner": {
                                "$ref": "#/components/schemas/pubKey"
                            },
                            "symbol": {
                                "type": "string"
                            },
                            "name": {
                                "type": "string"
                            },
                            "description": {
                                "type": "string"
                            },
                            "iconUrl": {
                                "type": "string"
                            },
                            "tokenUrl": {
                                "type": "string"
                            }
                        },
                        "required": [
                            "type",
                            "publicKeyOfSigner",
                            "symbol",
                            "name"
                        ],
                        "additionalProperties": false
                    },
                    {
                        "type": "object",
                        "properties": {
                            "type": {
                                "type": "string",
                                "enum": [
                                    "Other"
                                ]
                            }
                        },
                        "required": [
                            "type"
                        ],
                        "additionalProperties": false
                    }
                ]
            },
            "transaction": {
                "type": "object",
                "properties": {
                    "txID": {
                        "$ref": "#/components/schemas/txID"
                    },
                    "sentAt": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "fee": {
                        "$ref": "#/components/schemas/amount"
                    },
                    "message": {
                        "type": "string"
                    },
                    "actions": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/actions"
                        }
                    }
                },
                "required": [
                    "txID",
                    "sentAt",
                    "fee",
                    "actions"
                ]
            },
            "validator": {
                "type": "object",
                "properties": {
                    "address": {
                        "$ref": "#/components/schemas/validatorAddress"
                    },
                    "ownerAddress": {
                        "$ref": "#/components/schemas/address"
                    },
                    "name": {
                        "type": "string"
                    },
                    "infoURL": {
                        "$ref": "#/components/schemas/url"
                    },
                    "totalDelegatedStake": {
                        "$ref": "#/components/schemas/amount"
                    },
                    "ownerDelegation": {
                        "$ref": "#/components/schemas/amount"
                    },
                    "validatorFee": {
                        "type": "string"
                    },
                    "registered": {
                        "type": "boolean"
                    },
                    "isExternalStakeAccepted": {
                        "type": "boolean"
                    },
                    "proposalsCompleted": {
                        "type": "number"
                    },
                    "proposalsMissed": {
                        "type": "number"
                    },
                    "uptimePercentage": {
                        "type": "string"
                    }
                },
                "additionalProperties": false,
                "required": [
                    "address",
                    "ownerAddress",
                    "totalDelegatedStake",
                    "ownerDelegation",
                    "registered",
                    "validatorFee",
                    "isExternalStakeAccepted"
                ]
            },
            "int32": {
                "type": "integer",
                "minimum": -2147483648,
                "maximum": 2147483648
            },
            "networkId": {
                "type": "integer",
                "minimum": 0,
                "maximum": 1
            },
            "amount": {
                "type": "string",
                "pattern": "^[0-9]+$"
            },
            "hostPort": {
                "type": "string",
                "pattern": "^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9])\\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\\-]*[A-Za-z0-9]):[0-9]+$"
            },
            "rri": {
                "type": "string",
                "pattern": "^[!\\\"#$%&'()*+,-.\\/0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\\[\\\\\\]\\^_`abcdefghijklmnopqrstuvwxyz{|}~]{1,83}_r[rb]1[023456789ACDEFGHJKLMNPQRSTUVWXYZacdefghjklmnpqrstuvwxyz]{6,90}$"
            },
            "url": {
                "type": "string",
                "pattern": "^https?:\/\/(www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\\+.~#?&//=]*)$"
            },
            "address": {
                "type": "string",
                "pattern": "^(r|t|d)dx[0-9]?1[023456789ACDEFGHJKLMNPQRSTUVWXYZacdefghjklmnpqrstuvwxyz]{6,69}$"
            },
            "pubKey": {
                "type": "string",
                "pattern": "^[0123456789abcdef]+$"
            },
            "nodeAddress": {
                "type": "string",
                "pattern": "^(r|t|d)n[0-9]?1[023456789ACDEFGHJKLMNPQRSTUVWXYZacdefghjklmnpqrstuvwxyz]{6,69}$"
            },
            "validatorAddress": {
                "type": "string",
                "pattern": "^(r|t|d)v[0-9]?1[023456789ACDEFGHJKLMNPQRSTUVWXYZacdefghjklmnpqrstuvwxyz]{6,69}$"
            },
            "txID": {
                "type": "string",
                "pattern": "^[0123456789abcdef]{64}$",
                "maxLength": 64,
                "minLength": 64
            }
        },
        "responses": {
            "tokenInfo": {
                "name": "tokenInfo",
                "schema": {
                    "type": "object",
                    "properties": {
                        "name": {
                            "type": "string"
                        },
                        "rri": {
                            "$ref": "#/components/schemas/rri"
                        },
                        "symbol": {
                            "type": "string"
                        },
                        "description": {
                            "type": "string"
                        },
                        "granularity": {
                            "$ref": "#/components/schemas/amount"
                        },
                        "isSupplyMutable": {
                            "type": "boolean"
                        },
                        "currentSupply": {
                            "$ref": "#/components/schemas/amount"
                        },
                        "tokenInfoURL": {
                            "$ref": "#/components/schemas/url"
                        },
                        "iconURL": {
                            "$ref": "#/components/schemas/url"
                        }
                    },
                    "additionalProperties": false,
                    "required": [
                        "name",
                        "rri",
                        "symbol",
                        "granularity",
                        "isSupplyMutable",
                        "currentSupply",
                        "tokenInfoURL",
                        "iconURL"
                    ]
                }
            }
        }
    }
}
