BLSCT commands¶
All Navio-specific JSON-RPC commands. Auto-generated from nav-io/navio-core source — src/blsct/wallet/rpc.cpp, src/blsct/tokens/rpc.cpp, src/blsct/range_proof/rpc.cpp, and BLSCT-related entries in src/wallet/rpc/backup.cpp.
createnft¶
Submits a transaction creating a NFT
Parameters
| # | Name | Type | Required | Description |
|---|---|---|---|---|
| 1 | metadata |
OBJ_USER_KEYS |
yes | The NFT metadata |
| 2 | max_supply |
AMOUNT |
yes | The NFT max supply. |
Examples
curl --user user:pass --data-binary '{"jsonrpc":"1.0","id":"curl","method":"createnft","params":[{'name':'My NFT Collection'} 1000]}' -H "content-type: text/plain;" http://127.0.0.1:33677/
createtoken¶
Submits a transaction creating a token.
Parameters
| # | Name | Type | Required | Description |
|---|---|---|---|---|
| 1 | metadata |
OBJ_USER_KEYS |
yes | The token metadata |
| 2 | max_supply |
AMOUNT |
yes | The token max supply. |
Examples
curl --user user:pass --data-binary '{"jsonrpc":"1.0","id":"curl","method":"createtoken","params":[{"name":"Token"} 1000]}' -H "content-type: text/plain;" http://127.0.0.1:33677/
minttoken¶
Mints a certain amount of tokens to an address.
Parameters
| # | Name | Type | Required | Description |
|---|---|---|---|---|
| 1 | token_id |
STR_HEX |
yes | The token id. |
| 2 | address |
STR |
yes | The address where the tokens will be minted. |
| 3 | amount |
AMOUNT |
yes | The token amount to be minted. |
mintnft¶
Mints a NFT to an address.
Parameters
| # | Name | Type | Required | Description |
|---|---|---|---|---|
| 1 | token_id |
STR_HEX |
yes | The token id. |
| 2 | nft_id |
AMOUNT |
yes | The nft id. |
| 3 | address |
STR |
yes | The address where the tokens will be minted. |
| 4 | metadata |
OBJ_USER_KEYS |
yes | The token metadata |
getblsctbalance¶
Returns the total available BLSCT balance. Only outputs the wallet can sign for are counted by default; pass include_watchonly=true to also include outputs imported as watch-only scripts (e.g. via importblsctscript), whose amount the wallet can decrypt but cannot spend.
Parameters
| # | Name | Type | Required | Description |
|---|---|---|---|---|
| 1 | minconf |
NUM |
no (default 0) |
Only include transactions confirmed at least this many times. |
| 2 | include_watchonly |
BOOL |
no (default "true for watch-only wallets, otherwise false") |
Also include balance in watch-only addresses / scripts (see 'importblsctscript') |
| 3 | avoid_reuse |
BOOL |
no (default true) |
(only available if avoid_reuse wallet flag is set) Do not include balance in dirty outputs; addresses are considered dirty if they have previously been used in a transaction. |
Examples
gettokenbalance¶
Returns the total available balance of a token. The available balance is what the wallet considers currently spendable, and is thus affected by options which limit spendability such as -spendzeroconfchange.
Parameters
| # | Name | Type | Required | Description |
|---|---|---|---|---|
| 1 | token_id |
STR_HEX |
yes | The token id |
| 2 | dummy |
STR |
no | Remains for backward compatibility. Must be excluded or set to \"*\". |
| 3 | minconf |
NUM |
no (default 0) |
Only include transactions confirmed at least this many times. |
| 4 | include_watchonly |
BOOL |
no (default "true for watch-only wallets, otherwise false") |
Also include balance in watch-only addresses (see 'importaddress') |
| 5 | avoid_reuse |
BOOL |
no (default true) |
(only available if avoid_reuse wallet flag is set) Do not include balance in dirty outputs; addresses are considered dirty if they have previously been used in a transaction. |
Examples
getnftbalance¶
Returns the NFTs owned from a collection. The available balance is what the wallet considers currently spendable, and is thus affected by options which limit spendability such as -spendzeroconfchange.
Parameters
| # | Name | Type | Required | Description |
|---|---|---|---|---|
| 1 | token_id |
STR_HEX |
yes | The token id from the collection |
| 2 | dummy |
STR |
no | Remains for backward compatibility. Must be excluded or set to \"*\". |
| 3 | minconf |
NUM |
no (default 0) |
Only include transactions confirmed at least this many times. |
| 4 | include_watchonly |
BOOL |
no (default "true for watch-only wallets, otherwise false") |
Also include balance in watch-only addresses (see 'importaddress') |
| 5 | avoid_reuse |
BOOL |
no (default true) |
(only available if avoid_reuse wallet flag is set) Do not include balance in dirty outputs; addresses are considered dirty if they have previously been used in a transaction. |
Examples
sendtoblsctaddress¶
Send an amount to a given blsct address.
Parameters
| # | Name | Type | Required | Description |
|---|---|---|---|---|
| 1 | address |
STR |
yes | The BLSCT address to send to. |
| 2 | amount |
AMOUNT |
yes | The amount in to send. eg 0.1 |
| 3 | memo |
STR |
no (default "") |
A memo used to store in the transaction.\n The recipient will see its value. |
| 4 | verbose |
BOOL |
no (default false) |
If true, return extra information about the transaction. |
sendtokentoblsctaddress¶
Send an amount to tokens to a given blsct address.
Parameters
| # | Name | Type | Required | Description |
|---|---|---|---|---|
| 1 | token_id |
STR_HEX |
yes | The token id. |
| 2 | address |
STR |
yes | The BLSCT address to send to. |
| 3 | amount |
AMOUNT |
yes | The amount in to send. eg 0.1 |
| 4 | memo |
STR |
no (default "") |
A memo used to store in the transaction.\n The recipient will see its value. |
| 5 | verbose |
BOOL |
no (default false) |
If true, return extra information about the transaction. |
sendnfttoblsctaddress¶
Send an NFT to a given blsct address.
Parameters
| # | Name | Type | Required | Description |
|---|---|---|---|---|
| 1 | token_id |
STR_HEX |
yes | The token id. |
| 2 | nft_id |
AMOUNT |
yes | The nft id. |
| 3 | address |
STR |
yes | The BLSCT address to send to. |
| 4 | memo |
STR |
no (default "") |
A memo used to store in the transaction.\n The recipient will see its value. |
| 5 | verbose |
BOOL |
no (default false) |
If true, return extra information about the transaction. |
stakelock¶
Lock an amount in order to stake it.
Parameters
| # | Name | Type | Required | Description |
|---|---|---|---|---|
| 1 | amount |
AMOUNT |
yes | The amount in to stake. eg 0.1 |
| 2 | verbose |
BOOL |
no (default false) |
If true, return extra information about the transaction. |
Examples
stakeunlock¶
Unlocks an staked amount.
Parameters
| # | Name | Type | Required | Description |
|---|---|---|---|---|
| 1 | amount |
AMOUNT |
yes | The amount in to unstake. eg 0.1 |
| 2 | verbose |
BOOL |
no (default false) |
If true, return extra information about the transaction. |
Examples
listblsctunspent¶
Returns array of unspent transaction outputs with between minconf and maxconf (inclusive) confirmations. Optionally filter to only include txouts paid to specified addresses.
Parameters
| # | Name | Type | Required | Description |
|---|---|---|---|---|
| 1 | minconf |
NUM |
no (default 1) |
The minimum confirmations to filter |
| 2 | maxconf |
NUM |
no (default 9999999) |
The maximum confirmations to filter |
| 3 | addresses |
ARR |
no (default UniValue::VARR) |
The navio addresses to filter |
| 4 | query_options |
OBJ_NAMED_PARAMS |
no |
Examples
listblscttransactions¶
If a label name is provided, this will return only incoming transactions paying to addresses with the specified label.
Returns up to 'count' most recent transactions skipping the first 'from' transactions.
Parameters
| # | Name | Type | Required | Description |
|---|---|---|---|---|
| 1 | label|dummy |
STR |
no | If set, should be a valid label name to return only incoming transactions\n with the specified label, or \"*\" to disable filtering and return all transactions. |
| 2 | count |
NUM |
no (default 10) |
The number of transactions to return |
| 3 | skip |
NUM |
no (default 0) |
The number of transactions to skip |
| 4 | include_watchonly |
BOOL |
no (default "true for watch-only wallets, otherwise false") |
Include transactions to watch-only addresses (see 'importaddress') |
Examples
setblsctseed¶
Set or generate a new BLSCT wallet seed. Non-BLSCT wallets will not be upgraded to being a BLSCT wallet. Wallets that are already BLSCT will have a new BLSCT seed set so that new keys added to the keypool will be derived from this new seed.
Note that you will need to MAKE A NEW BACKUP of your wallet after setting the BLSCT wallet seed.
Parameters
| # | Name | Type | Required | Description |
|---|---|---|---|---|
| 1 | seed |
STR |
no (default "random seed") |
The WIF private key to use as the new HD seed.\n |
Examples
createblsctbalanceproof¶
Creates a zero-knowledge proof that the wallet has at least the specified balance
Parameters
| # | Name | Type | Required | Description |
|---|---|---|---|---|
| 1 | amount |
AMOUNT |
yes | The minimum balance to prove |
| 2 | additional_commitment |
STR |
no | The additional commitment to use for the proof signature |
Examples
createblsctrawtransaction¶
Create a unsigned transaction spending the given inputs and creating new outputs. Returns hex-encoded raw unsigned transaction. Note that the transaction's inputs are not signed, and it is not stored in the wallet or transmitted to the network.
Parameters
| # | Name | Type | Required | Description |
|---|---|---|---|---|
| 1 | inputs |
ARR |
yes | A json array of json objects |
| 2 | outputs |
ARR |
yes | A json array with outputs (key-value pairs) |
| 3 | type |
STR |
no (default "") |
Transaction type: \"normal\", \"create_token\", \"mint_token\", or \"mint_nft\" |
Examples
navio-cli createblsctrawtransaction "[{\"txid\":\"myid\",\"value\":1000000,\"gamma\":\"1234567890abcdef\",\"spending_key\":\"abcdef1234567890\"}]" "[{\"address\":\"address\",\"amount\":1000000,\"memo\":\"memo\",\"token_id\":\"tokenid\"}]"
navio-cli createblsctrawtransaction "[{\"txid\":\"myid\"}]" "[{\"address\":\"address\",\"amount\":1000000}]"
fundblsctrawtransaction¶
Add inputs to a BLSCT transaction until it has enough value to cover outputs and fee. The funded transaction fee is raised to satisfy the consensus rule: fee ≥ transaction weight × the network's blsct default fee rate (see chainparams). If estimate_fee is true, the RPC targets that minimum fee (optionally bumped by fee). When false, fee is explicit (default 1000000) but still bumped if below the consensus minimum. If lock_unspents is true, selected inputs are locked. Use unlockblsctoutpoint to unlock them.
Parameters
| # | Name | Type | Required | Description |
|---|---|---|---|---|
| 1 | hexstring |
STR_HEX |
yes | The hex string of the raw transaction |
| 2 | changeaddress |
STR |
no | The BLSCT address to receive the change |
| 3 | lock_unspents |
BOOL |
no (default false) |
Lock selected unspent outputs |
| 4 | fee |
NUM |
no | Absolute fee navoshis. With estimate_fee true: optional minimum floor; omit for weight-only estimate. Otherwise defaults to 1000000 |
| 5 | estimate_fee |
BOOL |
no (default false) |
Estimate fee from weight × consensus rate (instead of explicit default or fee argument) |
Examples
unlockblsctoutpoint¶
Unlock a BLSCT outpoint that was previously locked for funding.
Parameters
| # | Name | Type | Required | Description |
|---|---|---|---|---|
| 1 | outpoint_hash |
STR_HEX |
yes | The output outpoint hash |
Examples
signblsctrawtransaction¶
Signs a BLSCT raw transaction by adding BLSCT signatures.
Parameters
| # | Name | Type | Required | Description |
|---|---|---|---|---|
| 1 | hexstring |
STR_HEX |
yes | The transaction hex string |
Examples
curl --user user:pass --data-binary '{"jsonrpc":"1.0","id":"curl","method":"signblsctrawtransaction","params":["hexstring"]}' -H "content-type: text/plain;" http://127.0.0.1:33677/
decodeblsctrawtransaction¶
Decode a BLSCT raw transaction and return a JSON object describing the transaction structure.
Parameters
| # | Name | Type | Required | Description |
|---|---|---|---|---|
| 1 | hexstring |
STR_HEX |
yes | The transaction hex string |
Examples
getblsctrecoverydata¶
Get BLSCT recovery data for transaction output(s)
Parameters
| # | Name | Type | Required | Description |
|---|---|---|---|---|
| 1 | txid_or_hex |
STR |
yes | The transaction id, raw transaction hex, or output outpoint hash |
| 2 | vout |
NUM |
no | The output index. If omitted, shows data for all outputs. Ignored when an outpoint hash is provided. |
Examples
getblsctrecoverydatawithnonce¶
Get BLSCT recovery data for outputs in a transaction using a specified shared public nonce. Accepts a transaction hex string or an output outpoint hash.
Parameters
| # | Name | Type | Required | Description |
|---|---|---|---|---|
| 1 | hexstring |
STR_HEX |
yes | The transaction hex string or output outpoint hash |
| 2 | nonce |
STR_HEX |
yes | The shared public nonce to use for recovery (48-byte hex public key) |
| 3 | vout |
NUM |
no | If specified, only return data for this output index. Ignored when an outpoint hash is provided. |
Examples
deriveblsctnonce¶
Derive the shared public nonce for a BLSCT output from a destination address and blinding key. This can be used together with getblsctrecoverydatawithnonce for outputs whose amount was blinded against the destination's public view key, including HTLC outputs constructed from address_a.
Parameters
| # | Name | Type | Required | Description |
|---|---|---|---|---|
| 1 | blinding_key |
STR_HEX |
yes | The 32-byte blinding key (hex) used when creating the output |
| 2 | address |
STR |
yes | The BLSCT destination address used to derive the shared public nonce |
Examples
navio-cli deriveblsctnonce "0102030405060708091011121314151617181920212223242526272829303132" "rnv1..."
signblsmessage¶
Sign a message using a BLS private key.
Parameters
| # | Name | Type | Required | Description |
|---|---|---|---|---|
| 1 | private_key |
STR_HEX |
yes | The BLS private key in hex format |
| 2 | message |
STR |
yes | The message to sign |
Examples
verifyblsmessage¶
Verify a BLS message signature.
Parameters
| # | Name | Type | Required | Description |
|---|---|---|---|---|
| 1 | public_key |
STR_HEX |
yes | The BLS public key in hex format |
| 2 | message |
STR |
yes | The message that was signed |
| 3 | signature |
STR_HEX |
yes | The signature in hex format |
Examples
deriveblsctspendingkey¶
Derive the private spending key for an HTLC/atomic-swap output. Given the blinding key used when creating the output and a BLSCT address owned by this wallet, returns the private spending key needed to spend via the corresponding script branch.
NOTE: this RPC only works correctly with the wallet's top-level (default) BLSCT address. Sub-addresses use a different spend-key point (D = sk + H(vk,i,j)·G) and will not derive the correct spending key with this call.
Parameters
| # | Name | Type | Required | Description |
|---|---|---|---|---|
| 1 | blinding_key |
STR_HEX |
yes | The 32-byte blinding key (hex) used when creating the HTLC output |
| 2 | address |
STR |
yes | The BLSCT address to derive the spending key for (must be owned by this wallet) |
Examples
navio-cli deriveblsctspendingkey "0102030405060708091011121314151617181920212223242526272829303132" "rnv1..."
getblsctoutput¶
Look up a BLSCT output by its output hash.
Parameters
| # | Name | Type | Required | Description |
|---|---|---|---|---|
| 1 | output_hash |
STR_HEX |
yes | The output hash to look up. |
Examples
curl --user user:pass --data-binary '{"jsonrpc":"1.0","id":"curl","method":"getblsctoutput","params":["a685e520f85d111a6c55bd2b8226f6b916a3bcdd3b549c75e0abddc55df70951"]}' -H "content-type: text/plain;" http://127.0.0.1:33677/
gettoken¶
Returns an object containing information about a token.
Parameters
| # | Name | Type | Required | Description |
|---|---|---|---|---|
| 1 | token_id |
STR_HEX |
yes | The token id |
Examples
listtokens¶
Returns an array containing the tokens list.
Parameters
| # | Name | Type | Required | Description |
|---|---|---|---|---|
Examples
verifyblsctbalanceproof¶
Verifies a zero-knowledge balance proof
Parameters
| # | Name | Type | Required | Description |
|---|---|---|---|---|
| 1 | proof |
STR_HEX |
yes | The serialized balance proof |
| 2 | additional_commitment |
STR |
no | The additional commitment to use for the proof signature verification |
Examples
getblsctseed¶
Dumps the BLSCT wallet seed, which can be used to reconstruct the wallet. Note: This command is only compatible with BLSCT wallets.
Parameters
| # | Name | Type | Required | Description |
|---|---|---|---|---|
Examples
getblsctauditkey¶
Dumps the BLSCT wallet audit key, which can be used to observe the wallet history without being able to spend the transactions. Note: This command is only compatible with BLSCT wallets.
Parameters
| # | Name | Type | Required | Description |
|---|---|---|---|---|
Examples
dumpmnemonic¶
Dumps the BLSCT wallet mnemonic phrase (BIP-39), which can be used to reconstruct the wallet. The mnemonic can only be retrieved from wallets created with a BIP-39 mnemonic. Note: This command is only compatible with BLSCT wallets.
Parameters
| # | Name | Type | Required | Description |
|---|---|---|---|---|
Examples
importblsctscript¶
Import a BLSCT script for watching. Supports two modes via the \"type\" field in the script descriptor object: \"atomic_swap\" - reconstruct an HTLC script from pre-agreed swap parameters. \"raw\" - import an arbitrary script from its hex encoding.
The wallet will detect matching on-chain outputs during block scanning. Note: Use \"getwalletinfo\" to query the scanning progress.
Parameters
| # | Name | Type | Required | Description |
|---|---|---|---|---|
| 1 | script_descriptor |
OBJ |
yes | Script descriptor |
| 2 | rescan |
BOOL |
no (default true) |
Rescan the blockchain after import |
| 3 | start_height |
NUM |
no | Block height where the rescan should start. Requires rescan=true. |
Examples