API Reference¶
Below you can find a list of available endpoints that can be used to interact with the Stratis Full Node and the respective blockchain.
There is also a public facing instance of the Stratis Full Node API available here:
The endpoints here are restricted to stop malicious behaviour.
Stratis Core API Reference¶
- POST /api/AddressBook/address¶
Adds an entry to the address book.
- Status Codes:
200 OK – The address book entry was added
400 Bad Request – Invalid address book entry request or unexpected exception occurred
409 Conflict – Address book entry already exists
500 Internal Server Error – The request is null
- DELETE /api/AddressBook/address¶
Removes an entry from the address book.
- Query Parameters:
label (string) – The label of the entry to remove.
- Status Codes:
200 OK – The address book entry was removed
400 Bad Request – Unexpected exception occurred
404 Not Found – Address book entry not found
500 Internal Server Error – The label is null or empty
- GET /api/AddressBook¶
Gets the address book entries with the option to implement pagination
For example, specifying a value of 40 for skip and a value of 20 for take gets entries 21 to 40. If neither skip or take arguments are provided, then the entire address book is retrieved. An address book can be accessed from a wallet, but it is a standalone feature, which is not attached to any wallet.
- Query Parameters:
skip (integer) – A value representing how many entries to skip before retrieving the first entry.
take (integer) – A value representing how many entries to retrieve.
- Status Codes:
200 OK – Returns the address book
400 Bad Request – Unexpected exception occurred
404 Not Found – Address book was not found
- GET /api/BlockStore/addressindexertip¶
Retrieves the Stratis.Bitcoin.Features.BlockStore.Controllers.BlockStoreController.addressIndexer’s tip.
- Status Codes:
200 OK – Returns the address indexer tip
400 Bad Request – Unexpected exception occurred
- GET /api/BlockStore/block¶
Retrieves the block which matches the supplied block hash.
- Query Parameters:
Hash (string) – The hash of the required block. (Required)
ShowTransactionDetails (boolean) – A flag that indicates whether to return each block transaction complete with details or simply return transaction hashes (TX IDs).
OutputJson (boolean) –
- Status Codes:
200 OK – Returns data about the block or block not found message
400 Bad Request – Block hash invalid, or an unexpected exception occurred
- GET /api/BlockStore/GetBlockCount¶
Gets the current consensus tip height.
This is an API implementation of an RPC call.
- Status Codes:
200 OK – Returns the block count
400 Bad Request – Unexpected exception occurred
- GET /api/BlockStore/getaddressesbalances¶
Provides balance of the given addresses confirmed with at least minConfirmations confirmations.
- Query Parameters:
addresses (string) – A comma delimited set of addresses that will be queried.
minConfirmations (integer) – Only blocks below consensus tip less this parameter will be considered.
- Status Codes:
200 OK – Returns balances for the requested addresses
400 Bad Request – Unexpected exception occurred
- GET /api/BlockStore/getverboseaddressesbalances¶
Provides verbose balance data of the given addresses.
- Query Parameters:
addresses (string) – A comma delimited set of addresses that will be queried.
- Status Codes:
200 OK – Returns balances for the requested addresses
400 Bad Request – Unexpected exception occurred
- GET /api/ConnectionManager/addnode¶
Sends a command to the connection manager.
This is an API implementation of an RPC call.
- Query Parameters:
endpoint (string) – The endpoint in string format. Specify an IP address. The default port for the network will be added automatically.
command (string) – The command to run. {add, remove, onetry}
- Status Codes:
200 OK – The node was added
400 Bad Request – An exception occurred
- GET /api/ConnectionManager/getpeerinfo¶
Gets information about this node.
This is an API implementation of an RPC call.
- Status Codes:
200 OK – Returns peer information list
400 Bad Request – Unexpected exception occurred
- GET /api/Consensus/deploymentflags¶
Get the threshold states of softforks currently being deployed.
Allowable states are: Defined, Started, LockedIn, Failed, Active.
- Status Codes:
200 OK – Returns the list of deployment flags
400 Bad Request – Unexpected exception occurred
- GET /api/Consensus/getbestblockhash¶
Gets the hash of the block at the consensus tip.
This is an API implementation of an RPC call.
- Status Codes:
200 OK – Returns the block hash
400 Bad Request – Unexpected exception occurred
- GET /api/Consensus/getblockhash¶
Gets the hash of the block at a given height.
This is an API implementation of an RPC call.
- Query Parameters:
height (integer) – The height of the block to get the hash for.
- Status Codes:
200 OK – Returns the block hash
400 Bad Request – Unexpected exception occurred
- GET /api/Dashboard/Stats¶
Gets a web page containing the last log output for this node.
- Status Codes:
200 OK – Returns webpage result
- GET /api/Dashboard/AsyncLoopsStats¶
Returns a web page with Async Loops statistics
- Status Codes:
200 OK – Returns webpage result
- GET /api/DefaultVoting/fedmembers¶
Retrieves a list of active federation members.
- Status Codes:
200 OK – Returns the active members
400 Bad Request – Unexpected exception occurred
- GET /api/DefaultVoting/pendingpolls¶
Retrieves a list of active polls.
- Status Codes:
200 OK – Returns the active polls
400 Bad Request – Unexpected exception occurred
- GET /api/DefaultVoting/finishedpolls¶
Retrieves a list of finished polls.
- Status Codes:
200 OK – Returns the finished polls
400 Bad Request – Unexpected exception occurred
- GET /api/DefaultVoting/whitelistedhashes¶
Retrieves a list of whitelisted hashes.
- Status Codes:
200 OK – Returns the hashes
400 Bad Request – Unexpected exception occurred
- POST /api/DefaultVoting/schedulevote-whitelisthash¶
Votes to add a hash to the whitelist.
- Status Codes:
200 OK – Voted to add hash to whitelist
400 Bad Request – Invalid request, node is not a federation member, or an unexpected exception occurred
500 Internal Server Error – The request is null
- POST /api/DefaultVoting/schedulevote-removehash¶
Votes to remove a hash from the whitelist.
- Status Codes:
200 OK – Voted to remove hash from whitelist
400 Bad Request – Invalid request, node is not a federation member, or an unexpected exception occurred
500 Internal Server Error – The request is null
- GET /api/DefaultVoting/scheduledvotes¶
Retrieves the scheduled voting data.
- Status Codes:
200 OK – Returns the voting data
400 Bad Request – Unexpected exception occurred
- GET /api/Diagnostic/GetConnectedPeersInfo¶
Returns the connected peers with some information
- Status Codes:
200 OK – Returns connected peers information
400 Bad Request – Unexpected exception occurred
- GET /api/Diagnostic/GetStatus¶
Gets the Diagnostic Feature status.
- Status Codes:
200 OK – Returns the status
400 Bad Request – Unexpected exception occurred
- GET /api/Diagnostic/GetPeerStatistics¶
Returns the connected peers with some statistical information.
- Query Parameters:
connectedOnly (boolean) – if set to {true} returns statistics related to connected peers only.
- Status Codes:
200 OK – Returns connected peers statistics
400 Bad Request – Unexpected exception occurred
- GET /api/Diagnostic/StartCollectingPeerStatistics¶
Starts collecting peers statistics.
- Status Codes:
200 OK – Peer statistics collection started
400 Bad Request – Unexpected exception occurred
- GET /api/Diagnostic/StopCollectingPeerStatistics¶
Stops collecting peers statistics.
Stopping a running peer statistic collecotr doesn’t clear obtained results.
- Status Codes:
200 OK – Peer statistics collection stopped
400 Bad Request – Unexpected exception occurred
- POST /api/FederationVoting/schedulevote-addfedmember¶
Votes to add a federation member.
- Status Codes:
200 OK – Voted to add member
400 Bad Request – Invalid request, node is not a federation member, or an unexpected exception occurred
500 Internal Server Error – The request is null
- POST /api/FederationVoting/schedulevote-kickfedmember¶
Votes to kick a federation member.
- Status Codes:
200 OK – Voted to kick member
400 Bad Request – Invalid request, node is not a federation member, or an unexpected exception occurred
500 Internal Server Error – The request is null
- GET /api/Mempool/getrawmempool¶
Gets a hash of each transaction in the memory pool.
A list of the TX IDs for all the transactions in the mempool are retrieved.
- Status Codes:
200 OK – Returns memory pool transactions
400 Bad Request – Unexpected exception occurred
- POST /api/Network/disconnect¶
Disconnects a connected peer.
- Status Codes:
200 OK – Peer disconnected
400 Bad Request – Unexpected exception occurred
- POST /api/Network/setban¶
Adds or remove a peer from the node’s banned peers list.
- Status Codes:
200 OK – Ban status updated
400 Bad Request – An exception occurred
- GET /api/Network/getbans¶
Retrieves a list of all banned peers.
- Status Codes:
200 OK – Returns banned peers
400 Bad Request – Unexpected exception occurred
- POST /api/Network/clearbanned¶
Clears the node of all banned peers.
See “https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Simple_requests”
- Status Codes:
200 OK – Bans cleared
400 Bad Request – Unexpected exception occurred
- GET /api/Node/status¶
Gets general information about this node.
Including the version, protocol version, network name, coin ticker, and consensus height.
- Status Codes:
200 OK – Returns node information
- GET /api/Node/getblockheader¶
Gets the block header of a block identified by a block hash.
Binary serialization is not supported with this method.
- Query Parameters:
hash (string) – The hash of the block to retrieve.
isJsonFormat (boolean) – A flag that specifies whether to return the block header in the JSON format. Defaults to true. A value of false is currently not supported.
- Status Codes:
200 OK – Returns block header
400 Bad Request – Unexpected exception occurred
- GET /api/Node/getrawtransaction¶
Gets a raw transaction that is present on this full node.
This method first searches the transaction pool and then tries the block store.
Requires txindex=1, otherwise only transactions that spend or create UTXOs for a stored wallet can be returned.
- Query Parameters:
trxid (string) – The transaction ID (a hash of the trancaction).
verbose (boolean) – A flag that specifies whether to return verbose information about the transaction.
- Status Codes:
200 OK – Returns the transaction
400 Bad Request – Unexpected exception occurred
- POST /api/Node/decoderawtransaction¶
Gets a JSON representation for a given transaction in hex format.
- Status Codes:
200 OK – Returns the transaction
400 Bad Request – Invalid request or unexpected exception occurred
- GET /api/Node/validateaddress¶
Validates a bech32 or base58 bitcoin address.
- Query Parameters:
address (string) – A Bitcoin address to validate in a string format.
- Status Codes:
200 OK – Returns validation result
400 Bad Request – Unexpected exception occurred
- GET /api/Node/gettxout¶
Gets the unspent outputs of a specific vout in a transaction.
An API implementation of RPC call.
- Query Parameters:
trxid (string) – The transaction ID as a hash string.
vout (integer) – The vout to get the unspent outputs for.
includeMemPool (boolean) – A flag that specifies whether to include transactions in the mempool.
- Status Codes:
200 OK – Returns transaction output
400 Bad Request – Unexpected exception occurred
- POST /api/Node/shutdown¶
Triggers a shutdown of this node.
See https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Simple_requests
- Status Codes:
200 OK – Node was shutdown
- PUT /api/Node/loglevels¶
Changes the log levels for the specified loggers.
- Status Codes:
200 OK – Log level updated
400 Bad Request – Request is invalid or an unexpected exception occurred
500 Internal Server Error – Request is null
- GET /api/Node/logrules¶
Get the enabled log rules.
- Status Codes:
200 OK – Returns log rules
400 Bad Request – Unexpected exception occurred
- GET /api/Node/asyncloops¶
Get the currently running async loops/delegates/tasks for diagnostic purposes.
- Status Codes:
200 OK – Returns running tasks
400 Bad Request – Unexpected exception occurred
- POST /api/RPC/callbyname¶
Makes a Remote Procedural Call method by name.
- Status Codes:
200 OK – Returns method response
400 Bad Request – An exception occurred
405 Method Not Allowed – RPC is disabled
500 Internal Server Error – Body is null
- GET /api/RPC/listmethods¶
Lists the available Remote Procedural Call methods on this node.
- Status Codes:
200 OK – Returns available methods
400 Bad Request – Unexpected exception occurred
405 Method Not Allowed – RPC is disabled
- GET /api/SmartContracts/code¶
Gets the bytecode for a smart contract as a hexadecimal string.
The bytecode is decompiled to C# source, which is returned as well. Be aware, it is the bytecode which is being executed, so this is the source of truth.
- Query Parameters:
address (string) – The address of the smart contract to retrieve as bytecode and C# source.
- Status Codes:
200 OK – Returns code response (may be unsuccessful)
- GET /api/SmartContracts/balance¶
Gets the balance of a smart contract.
This method only works for smart contract addresses.
- Query Parameters:
address (string) – The address of the smart contract to retrieve the balance for.
- Status Codes:
200 OK – Returns balance
- GET /api/SmartContracts/storage¶
Gets a single piece of smart contract data, which was stored as a key–value pair using the SmartContract.PersistentState property.
The method performs a lookup in the smart contract state database for the supplied smart contract address and key. The value associated with the given key, deserialized for the specified data type, is returned.
If the key does not exist or deserialization fails, the method returns the default value for the specified type.
- Query Parameters:
ContractAddress (string) – The address of the smart contract. (Required)
StorageKey (string) – The key for the piece of stored data to retrieve. (Required)
DataType (string) – The stored data type. (Required)
- Status Codes:
200 OK – Returns data response (may be unsuccessful)
400 Bad Request – Invalid request
- GET /api/SmartContracts/receipt¶
Gets a smart contract transaction receipt.
Receipts contain information about how a smart contract transaction was executed. This includes the value returned from a smart contract call and how much gas was used.
- Query Parameters:
txHash (string) – A hash of the smart contract transaction (the transaction ID).
- Status Codes:
200 OK – Returns transaction receipt
400 Bad Request – Transaction not found
- GET /api/SmartContracts/receipt-search¶
Searches a Smart Contract’s receipts for those which match a specific event.
The SmartContract.Log() function is capable of storing C# structs, and structs are used to store information about different events occurring on the smart contract.
For example, a “TransferLog” struct could contain “From” and “To” fields and be used to log when a smart contract makes a transfer of funds from one wallet to another. The log entries are held inside the smart contract, indexed using the name of the struct, and are linked to individual transaction receipts.
Therefore, it is possible to return a smart contract’s transaction receipts which match a specific event (as defined by the struct name).
- Query Parameters:
contractAddress (string) – The address of the smart contract to retrieve the receipts for.
eventName (string) – The name of the event struct to retrieve matching receipts for.
- Status Codes:
200 OK – Returns requested receipts
500 Internal Server Error – Contract does not exist
- POST /api/SmartContracts/build-create¶
Builds a transaction to create a smart contract.
Although the transaction is created, the smart contract is not deployed on the network, and no gas or fees are consumed. Instead the created transaction is returned as a hexadecimal string within a JSON object.
Transactions built using this method can be deployed using /api/SmartContractWallet/send-transaction. However, unless there is a need to closely examine the transaction before deploying it, you should use api/SmartContracts/build-and-send-create.
- Status Codes:
200 OK – Returns create contract response
400 Bad Request – Invalid request or failed to build transaction
- POST /api/SmartContracts/build-call¶
Builds a transaction to call a smart contract method.
Although the transaction is created, the call is not made, and no gas or fees are consumed. Instead the created transaction is returned as a JSON object.
Transactions built using this method can be deployed using /api/SmartContractWallet/send-transaction. However, unless there is a need to closely examine the transaction before deploying it, you should use api/SmartContracts/build-and-send-call.
- Status Codes:
200 OK – Returns call contract response
400 Bad Request – Invalid request or failed to build transaction
- POST /api/SmartContracts/build-transaction¶
Builds a transaction to transfer funds on a smart contract network.
- Status Codes:
200 OK – Returns transaction response
400 Bad Request – Invalid request or unexpected exception occurred
- POST /api/SmartContracts/estimate-fee¶
Gets a fee estimate for a specific smart contract account-based transfer transaction.
This differs from fee estimation on standard networks due to the way inputs must be selected for account-based transfers.
- Status Codes:
200 OK – Returns estimated fee
400 Bad Request – Invalid request or unexpected exception occurred
- POST /api/SmartContracts/build-and-send-create¶
Builds a transaction to create a smart contract and then broadcasts the transaction to the network.
If the deployment is successful, methods on the smart contract can be subsequently called.
- Status Codes:
200 OK – Returns create transaction response
400 Bad Request – Invalid request, failed to build transaction, or cannot broadcast transaction
403 Forbidden – No connected peers
- POST /api/SmartContracts/build-and-send-call¶
Builds a transaction to call a smart contract method and then broadcasts the transaction to the network.
If the call is successful, any changes to the smart contract balance or persistent data are propagated across the network.
- Status Codes:
200 OK – Returns call transaction response
400 Bad Request – Invalid request or cannot broadcast transaction
403 Forbidden – No connected peers
- POST /api/SmartContracts/local-call¶
Makes a local call to a method on a smart contract that has been successfully deployed.
A transaction is not created as the call is never propagated across the network. All persistent data held by the smart contract is copied before the call is made.
Only this copy is altered by the call and the actual data is unaffected. Even if an amount of funds are specified to send with the call, no funds are in fact sent.
The purpose of this function is to query and test methods.
- Status Codes:
200 OK – Returns call response
400 Bad Request – Invalid request
500 Internal Server Error – Unable to deserialize method parameters
- GET /api/SmartContracts/address-balances¶
Gets all addresses owned by a wallet which have a balance associated with them.
This method effectively returns the balance of all the UTXOs associated with a wallet.
In a case where multiple UTXOs are associated with one address, the amounts are tallied to give a total for that address.
- Query Parameters:
walletName (string) – The name of the wallet to retrieve the addresses from.
- Status Codes:
200 OK – Returns address balances
- GET /api/SmartContractWallet/account-addresses¶
Gets a smart contract account address.
This is a single address to use for all smart contract interactions.
Smart contracts send funds to and store data at this address. For example, an ERC-20 token would store tokens allocated to a user at this address, although the actual data could, in fact, be anything. The address stores a history of smart contract create/call transactions.
It also holds a UTXO list/balance based on UTXOs sent to it from smart contracts or user wallets. Once a smart contract has written data to this address, you need to use the address to provide gas and fees for smart contract calls involving that stored data (for that smart contract deployment).
In the case of specific ERC-20 tokens allocated to you, using this address would be a requirement if you were to, for example, send some of the tokens to an exchange. It is therefore recommended that in order to keep an intact history and avoid complications, you use the single smart contract address provided by this function for all interactions with smart contracts.
In addition, a smart contract address can be used to identify a contract deployer. Some methods, such as a withdrawal method on an escrow smart contract, should only be executed by the deployer, and in this case, it is the smart contract account address that identifies the deployer.
- Note that this account differs from “account 0”, which is the “default
holder of multiple addresses”. Other address holding accounts can be created, but they should not be confused with the smart contract account, which is represented by a single address.
- Query Parameters:
walletName (string) – The name of the wallet to retrieve a smart contract account address for.
- Status Codes:
200 OK – Returns account addresses
400 Bad Request – Wallet name not provided or unexpected exception occurred
- GET /api/SmartContractWallet/address-balance¶
Gets the balance at a specific wallet address in STRAX (or the respective token/coin).
This method gets the UTXOs at the address that the wallet can spend.
The function can be used to query the balance at a smart contract account address supplied by /api/SmartContractWallet/account-addresses.
- Query Parameters:
address (string) –
- Status Codes:
200 OK – Returns address balance
- GET /api/SmartContractWallet/history¶
Gets the history of a specific wallet address.
This includes the smart contract create and call transactions.
This method can be used to query the balance at a smart contract account address supplied by /api/SmartContractWallet/account-addresses.
It is advisable to use /api/SmartContractWallet/account-addresses to generate an address for all smart contract interactions. If this has been done, and that address is supplied to this method, a list of all smart contract interactions for a wallet will be returned.
- Query Parameters:
WalletName (string) –
Address (string) –
Skip (integer) – An optional value allowing (with Take) pagination of the wallet’s history. If given, the member specifies the numbers of records in the wallet’s history to skip before beginning record retrieval; otherwise the wallet history records are retrieved starting from 0.
Take (integer) – An optional value allowing (with Skip) pagination of the wallet’s history. If given, the member specifies the number of records in the wallet’s history to retrieve in this call; otherwise all wallet history records are retrieved.
- Status Codes:
200 OK – Returns transaction history
400 Bad Request – Invalid request or unexpected exception occurred
500 Internal Server Error – Request is null
- POST /api/SmartContractWallet/create¶
Builds a transaction to create a smart contract and then broadcasts the transaction to the network.
If the deployment is successful, methods on the smart contract can be subsequently called.
- Status Codes:
200 OK – Returns build transaction response
400 Bad Request – Invalid request, failed to build transaction, or could not broadcast transaction
- POST /api/SmartContractWallet/call¶
Builds a transaction to call a smart contract method and then broadcasts the transaction to the network.
If the call is successful, any changes to the smart contract balance or persistent data are propagated across the network.
- Status Codes:
200 OK – Returns build transaction response
400 Bad Request – Invalid request, failed to build transaction, or could not broadcast transaction
- POST /api/SmartContractWallet/send-transaction¶
Broadcasts a transaction, which either creates a smart contract or calls a method on a smart contract.
If the contract deployment or method call are successful gas and fees are consumed.
- Status Codes:
200 OK – Returns the broadcast transaction
400 Bad Request – Invalid request, failed to broadcast transaction or unexpected exception occurred
500 Internal Server Error – Request is null, or no peers are connected
- GET /api/Wallet/mnemonic¶
Generates a mnemonic to use for an HD wallet.
- Query Parameters:
language (string) – The language for the words in the mnemonic. The options are: English, French, Spanish, Japanese, ChineseSimplified and ChineseTraditional.
wordCount (integer) – The number of words in the mnemonic. The options are: 12,15,18,21 or 24.
- Status Codes:
200 OK – Returns mnemonic
400 Bad Request – Unexpected exception occurred
- POST /api/Wallet/create¶
Creates a new wallet on this node.
- Status Codes:
200 OK – Returns mnemonic
400 Bad Request – Invalid request or problem creating wallet
409 Conflict – Wallet already exists
500 Internal Server Error – Request is null
- POST /api/Wallet/signmessage¶
Signs a message and returns the signature.
- Status Codes:
200 OK – Returns signature
400 Bad Request – Invalid request or unexpected exception occurred
500 Internal Server Error – Request is null
- POST /api/Wallet/verifymessage¶
Verifies the signature of a message.
- Status Codes:
200 OK – Returns verification result
400 Bad Request – Invalid request or unexpected exception occurred
500 Internal Server Error – Request is null
- POST /api/Wallet/load¶
Loads a previously created wallet.
- Status Codes:
200 OK – Wallet loaded
400 Bad Request – Invalid request or unexpected exception occurred
403 Forbidden – Incorrect password
404 Not Found – Wallet not found
500 Internal Server Error – Request is null
- POST /api/Wallet/recover¶
Recovers an existing wallet.
- Status Codes:
200 OK – Wallet recovered
400 Bad Request – Invalid request or unexpected exception occurred
404 Not Found – Wallet not found
409 Conflict – Wallet already exists
500 Internal Server Error – Request is null
- POST /api/Wallet/recover-via-extpubkey¶
Recovers a wallet using its extended public key.
Note that the recovered wallet will not have a private key and is only suitable for returning the wallet history using further API calls.
- Status Codes:
200 OK – Wallet recovered
400 Bad Request – Invalid request or unexpected exception occurred
404 Not Found – Wallet not found
409 Conflict – Wallet already exists
500 Internal Server Error – Request is null
- GET /api/Wallet/general-info¶
Gets some general information about a wallet.
This includes the network the wallet is for, the creation date and time for the wallet, the height of the blocks the wallet currently holds, and the number of connected nodes.
- Query Parameters:
Name (string) – (Required)
- Status Codes:
200 OK – Returns wallet information
400 Bad Request – Invalid request or unexpected exception occurred
500 Internal Server Error – Request is null
- GET /api/Wallet/history¶
Gets the history of a wallet.
This includes the transactions held by the entire wallet or a single account if one is specified.
- Query Parameters:
WalletName (string) – The name of the wallet to recover the history for. (Required)
AccountName (string) – Optional. The name of the account to recover the history for. If no account name is specified, the entire history of the wallet is recovered.
Address (string) – Optional. If set, will filter the transaction history for all transactions made to or from the given address.
Skip (integer) – An optional value allowing (with Take) pagination of the wallet’s history. If given, the member specifies the numbers of records in the wallet’s history to skip before beginning record retrieval; otherwise the wallet history records are retrieved starting from 0.
Take (integer) – An optional value allowing (with Skip) pagination of the wallet’s history. If given, the member specifies the number of records in the wallet’s history to retrieve in this call; otherwise all wallet history records are retrieved.
SearchQuery (string) –
An optional string that can be used to match different data in the transaction records.
It is possible to match on the following:
The transaction ID, the address at which funds where received and the address to which funds where sent.
- Status Codes:
200 OK – Returns wallet history
400 Bad Request – Invalid request or unexpected exception occurred
500 Internal Server Error – Request is null
- GET /api/Wallet/balance¶
Gets the balance of a wallet.”
Both the confirmed and unconfirmed balance are returned.
- Query Parameters:
WalletName (string) – The name of the wallet to retrieve the balance for. (Required)
AccountName (string) – The name of the account to retrieve the balance for. If no account name is supplied, then the balance for the entire wallet (all accounts) is retrieved.
- Status Codes:
200 OK – Returns wallet balances
400 Bad Request – Invalid request or unexpected exception occurred
500 Internal Server Error – Request is null
- GET /api/Wallet/received-by-address¶
Gets the balance at a specific wallet address.
Both the confirmed and unconfirmed balance are returned. This method gets the UTXOs at the address which the wallet can spend.
- Query Parameters:
Address (string) – (Required)
- Status Codes:
200 OK – Returns wallet address balances
400 Bad Request – Invalid request or unexpected exception occurred
500 Internal Server Error – Request is null
- GET /api/Wallet/maxbalance¶
Gets the maximum spendable balance for an account along with the fee required to spend it.
- Query Parameters:
WalletName (string) – The name of the wallet to retrieve the maximum spendable amount for. (Required)
AccountName (string) – The name of the account to retrieve the maximum spendable amount for.
FeeType (string) – The type of fee to use when working out the fee required to spend the amount. Specify “low”, “medium”, or “high”. (Required)
AllowUnconfirmed (boolean) – A flag that specifies whether to include the unconfirmed amounts held at account addresses as spendable.
- Status Codes:
200 OK – Returns spendable balance
400 Bad Request – Invalid request or unexpected exception occurred
500 Internal Server Error – Request is null
- GET /api/Wallet/spendable-transactions¶
Gets the spendable transactions for an account with the option to specify how many confirmations a transaction needs to be included.
- Query Parameters:
WalletName (string) – The name of the wallet to retrieve the spendable transactions for. (Required)
AccountName (string) –
MinConfirmations (integer) –
The minimum number of confirmations a transaction needs to have to be included.
To include unconfirmed transactions, set this value to 0.
- Status Codes:
200 OK – Returns spendable transactions
400 Bad Request – Invalid request or unexpected exception occurred
500 Internal Server Error – Request is null
- POST /api/Wallet/estimate-txfee¶
Gets a fee estimate for a specific transaction.
Fee can be estimated by creating a Stratis.Bitcoin.Features.Wallet.TransactionBuildContext with no password and then building the transaction and retrieving the fee from the context.
- Status Codes:
200 OK – Returns fee estimate
400 Bad Request – Invalid request or unexpected exception occurred
500 Internal Server Error – Request is null
- POST /api/Wallet/build-transaction¶
Builds a transaction and returns the hex to use when executing the transaction.
- Status Codes:
200 OK – Returns transaction information
400 Bad Request – Invalid request, account not found, change address not found, or unexpected exception occurred
500 Internal Server Error – Request is null
- POST /api/Wallet/send-transaction¶
Sends a transaction that has already been built.
Use the /api/Wallet/build-transaction call to create transactions.
- Status Codes:
200 OK – Returns transaction details
400 Bad Request – Invalid request, cannot broadcast transaction, or unexpected exception occurred
403 Forbidden – No connected peers
500 Internal Server Error – Request is null
- GET /api/Wallet/files¶
Lists all the files found in the default wallet folder.
- Status Codes:
200 OK – Returns wallet files
400 Bad Request – Unexpected exception occurred
- POST /api/Wallet/account¶
Creates a new account for a wallet.
Accounts are given the name “account i”, where i is an incremental index which starts at 0.
According to BIP44. an account at index i can only be created when the account at index (i - 1) contains at least one transaction. For example, if three accounts named “account 0”, “account 1” and “account 2” already exist and contain at least one transaction, then the function will create “account 3”.
However, if “account 2”, for example, instead contains no transactions, then this API call returns “account 2”.
Accounts are created deterministically, which means that on any device, the accounts and addresses for a given seed (or mnemonic) are always the same.
- Status Codes:
200 OK – Returns account name
400 Bad Request – Invalid request, or unexpected exception occurred
403 Forbidden – Wallet is watch-only
500 Internal Server Error – Request is null
- GET /api/Wallet/accounts¶
Gets a list of accounts for the specified wallet.
- Query Parameters:
WalletName (string) – The name of the wallet for which to list the accounts. (Required)
- Status Codes:
200 OK – Returns account names
400 Bad Request – Invalid request, or unexpected exception occurred
500 Internal Server Error – Request is null
- GET /api/Wallet/unusedaddress¶
Gets an unused address (in the Base58 format) for a wallet account.
This address will not have been assigned to any known UTXO (neither to pay funds into the wallet or to pay change back to the wallet).
- Query Parameters:
WalletName (string) – The name of the wallet from which to get the address. (Required)
AccountName (string) – The name of the account for which to get the address.
- Status Codes:
200 OK – Returns address
400 Bad Request – Invalid request, or unexpected exception occurred
500 Internal Server Error – Request is null
- GET /api/Wallet/unusedaddresses¶
Gets a specified number of unused addresses (in the Base58 format) for a wallet account.
These addresses will not have been assigned to any known UTXO (neither to pay funds into the wallet or to pay change back to the wallet).
- Query Parameters:
WalletName (string) – The name of the wallet from which to get the addresses. (Required)
AccountName (string) – The name of the account for which to get the addresses.
Count (string) – The number of addresses to retrieve. (Required)
- Status Codes:
200 OK – Returns address list
400 Bad Request – Invalid request, or unexpected exception occurred
500 Internal Server Error – Request is null or cannot be parsed
- GET /api/Wallet/addresses¶
Gets all addresses for a wallet account.
- Query Parameters:
WalletName (string) – The name of the wallet from which to get the addresses. (Required)
AccountName (string) – The name of the account for which to get the addresses.
- Status Codes:
200 OK – Returns address information list
400 Bad Request – Invalid request, or unexpected exception occurred
500 Internal Server Error – Request is null
- DELETE /api/Wallet/remove-transactions¶
Removes transactions from the wallet.
You may want to remove transactions from a wallet if some unconfirmed transactions disappear from the blockchain or the transaction fields within the wallet are updated and a refresh is required to populate the new fields.
In one situation, you might notice several unconfirmed transaction in the wallet, which you now know were never confirmed. You can use this API to correct this by specifying a date and time before the first unconfirmed transaction thereby removing all transactions after this point.
You can also request a resync as part of the call, which calculates the block height for the earliest removal. The wallet sync manager then proceeds to resync from there reinstating the confirmed transactions in the wallet.
You can also cherry pick transactions to remove by specifying their transaction ID.
- Query Parameters:
WalletName (string) – The name of the wallet to remove the transactions from. (Required)
ids (array) – The IDs of the transactions to remove.
fromDate (string) – A date and time after which all transactions should be removed.
all (boolean) – A flag that specifies whether to delete all transactions from a wallet.
ReSync (boolean) – A flag that specifies whether to resync the wallet after removing the transactions.
- Status Codes:
200 OK – Returns transaction list
400 Bad Request – Invalid request, or an exception occurred
500 Internal Server Error – Request is null
- GET /api/Wallet/extpubkey¶
Gets the extended public key of a specified wallet account.
- Query Parameters:
WalletName (string) – The name of the wallet from which to get the extended public key. (Required)
AccountName (string) –
- Status Codes:
200 OK – Returns extended public key
400 Bad Request – Invalid request, or unexpected exception occurred
500 Internal Server Error – Request is null
- POST /api/Wallet/sync¶
Requests the node resyncs from a block specified by its block hash.
Internally, the specified block is taken as the new wallet tip and all blocks after it are resynced.
- Status Codes:
200 OK – Resync requested
400 Bad Request – Invalid request, or block not found
- POST /api/Wallet/sync-from-date¶
Request the node resyncs starting from a given date and time.
Internally, the first block created on or after the supplied date and time is taken as the new wallet tip and all blocks after it are resynced.
- Status Codes:
200 OK – Resync requested
400 Bad Request – Invalid request
- GET /api/Wallet/wallet-stats¶
Retrieves information about the wallet
- Query Parameters:
WalletName (string) – The name of the wallet for which to get the stats. (Required)
AccountName (string) –
MinConfirmations (integer) –
The minimum number of confirmations a transaction needs to have to be included.
To include unconfirmed transactions, set this value to 0.
Verbose (boolean) – Should the request return a more detailed output
- Status Codes:
200 OK – Returns wallet stats
400 Bad Request – Invalid request, or unexpected exception occurred
500 Internal Server Error – Request is null
- POST /api/Wallet/splitcoins¶
Creates requested amount of UTXOs each of equal value.
- Status Codes:
200 OK – Returns transaction details
400 Bad Request – Invalid request, cannot broadcast transaction, or unexpected exception occurred
403 Forbidden – No connected peers
500 Internal Server Error – Request is null
- POST /api/Wallet/distribute-utxos¶
Splits and distributes UTXOs across wallet addresses
- Status Codes:
200 OK – Returns distribution details
400 Bad Request – Invalid request, requested transactions exceeds number of UTXOs, cannot broadcast transaction, or unexpected exception occurred
500 Internal Server Error – Request is null