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. |
| 5 | subtractfeefromamount |
BOOL |
no (default false) |
If true, the fee is deducted from the amount being sent so the recipient receives less than the requested amount and the wallet spends exactly the requested amount. |
| 6 | comment_to |
STR |
no (default "") |
A wallet-local comment naming the person or organization the payment is to.\n Stored only in this wallet (surfaced by listtransactions as \"to\"); not sent on-chain. |
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
delegatestake¶
Lock an amount for staking and delegate block production to a third-party staker. The staked output carries an encrypted copy of its commitment opening addressed to the delegate, so the delegate can produce blocks with it but can never spend or unstake it. Block rewards are requested to be paid to reward_address; note this is advisory: a delegate controls its own coinbase, so choose delegates you trust to honor it. Existing stakes delegated with the same delegate key and reward address are consolidated into the new output; other stakes are left untouched. Revoke at any time with stakeunlock.
Parameters
| # | Name | Type | Required | Description |
|---|---|---|---|---|
| 1 | amount |
AMOUNT |
yes | The amount in to stake. eg 0.1 |
| 2 | delegate_pubkey |
STR_HEX |
yes | The delegate's 48-byte G1 delegation public key (hex), published by the staking operator. |
| 3 | reward_address |
STR |
no (default "") |
BLSCT address the delegate should pay block rewards to. Defaults to a new address of this wallet. |
| 4 | 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
redelegatestake¶
Move existing stake delegations to a different delegate and/or reward address in a single transaction. The delegated commitments stay staked the whole time: the old delegated outputs are spent directly into a new staked output carrying the new delegation payload, so there is no separate unlock/re-lock step and no gap in stake continuity. Only delegations to from_delegate_pubkey are moved; other stakes are left untouched.
Parameters
| # | Name | Type | Required | Description |
|---|---|---|---|---|
| 1 | from_delegate_pubkey |
STR_HEX |
yes | The delegate key the stakes are currently delegated to. |
| 2 | delegate_pubkey |
STR_HEX |
yes | The new delegate's 48-byte G1 delegation public key (hex). May equal from_delegate_pubkey to only change the reward address. |
| 3 | reward_address |
STR |
no (default "") |
BLSCT address the new delegate should pay block rewards to. Defaults to the reward address of the delegations being moved. |
| 4 | 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
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 "[{\"outid\":\"myoutid\",\"value\":1000000,\"gamma\":\"1234567890abcdef\",\"spending_key\":\"abcdef1234567890\"}]" "[{\"address\":\"address\",\"amount\":1000000,\"memo\":\"memo\",\"token_id\":\"tokenid\"}]"
navio-cli createblsctrawtransaction "[{\"outid\":\"myoutid\"}]" "[{\"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..."
deriveblsctonetimekey¶
Stateless derivation of the one-time key material for a BLSCT output sent to an externally constructed destination (view point V = view_keyG1, spend point S). An output created for such a destination carries ephemeralKey = bG1 (b = the sender's blinding key) and one-time spending key S + H(bV)G1. Given the private view scalar and the output's ephemeral key this returns the shared point bV (the recovery nonce for getblsctrecoverydatawithnonce), the derived scalar tweak H(bV) with its public point, and the expected view tag. If the private spend scalar is also provided, the full one-time private spending key spend_key + H(b*V) is returned, suitable for the spending_key input field of createblsctrawtransaction. Wallet keys are not consulted: intended for jointly derived destinations (e.g. atomic-swap outputs locked to a combined key) that no wallet owns.
Parameters
| # | Name | Type | Required | Description |
|---|---|---|---|---|
| 1 | view_key |
STR_HEX |
yes | The 32-byte private view scalar (hex) of the destination |
| 2 | ephemeral_key |
STR_HEX |
yes | The 48-byte ephemeral key (hex) of the output (blsctData.ephemeralKey) |
| 3 | spend_key |
STR_HEX |
no | The 32-byte private spend scalar (hex) of the destination; when given, the full one-time private key is returned |
Examples
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. If the wallet was created with a BIP-39 mnemonic passphrase, the passphrase is NOT included and must be supplied separately when restoring the wallet. 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