{"note":"OpenAPI conversion -- returning structured metadata","name":"nebl-io","description":"Neblio REST API Suite","version":"1.3.0","base_url":"https://ntp1node.nebl.io/","endpoints":50,"raw":"@lap v0.3\n# Machine-readable API spec. Each @endpoint block is one API call.\n@api Neblio REST API Suite\n@base https://ntp1node.nebl.io/\n@version 1.3.0\n@auth Bearer basic\n@endpoints 50\n@hint download_for_search\n@toc ntp1(10), ins(14), testnet(25), root(1)\n\n@group ntp1\n@endpoint GET /ntp1/tokenid/{tokensymbol}\n@desc Returns the tokenId representing a token\n@required {tokensymbol: str # Token symbol}\n@returns(200) {tokenId: str, tokenName: str} # Object containing the token symbol and ID, if token symbol does not exist on network, empty object is returned.\n\n@endpoint POST /ntp1/broadcast\n@desc Broadcasts a signed raw transaction to the network\n@required {txHex: str # Signed raw tx hex to broadcast}\n@returns(200) {txid: str} # An object containing the TXID if the broadcast was successful\n\n@endpoint GET /ntp1/addressinfo/{address}\n@desc Information On a Neblio Address\n@required {address: str # Neblio Address to get information on.}\n@returns(200) {address: str, utxos: [map]} # An object with an array of UTXOs for this address\n\n@endpoint GET /ntp1/transactioninfo/{txid}\n@desc Information On an NTP1 Transaction\n@required {txid: str # Neblio txid to get information on.}\n@returns(200) {hex: str, txid: str, version: num, locktime: num, vin: [map], vout: [map], blocktime: num, blockheight: num, totalsent: num, fee: num, blockhash: str, time: num, confirmations: num} # An object represending this transaction\n\n@endpoint GET /ntp1/tokenmetadata/{tokenid}\n@desc Get Metadata of Token\n@required {tokenid: str # TokenId to request metadata for}\n@optional {verbosity: num # 0 (Default) is fastest, 1 contains token stats, 2 contains token holding addresses}\n@returns(200) {tokenId: str, someUtxo: str, divisibility: num, lockStatus: bool, aggregationPolicy: str, initialIssuanceAmount: num, totalSupply: num, numOfHolders: num, numOfTransfers: num, numOfIssuance: num, numOfBurns: num, firstBlock: num, issuanceTxid: str, issueAddress: str, metadataOfIssuance: map{data: map{tokenName: str, issuer: str, description: str, userData: map{meta: [map]}}}, metadataOfUtxo: map{userData: map{meta: [map]}}} # An object containing the metadata of a token\n\n@endpoint GET /ntp1/tokenmetadata/{tokenid}/{utxo}\n@desc Get UTXO Metadata of Token\n@required {tokenid: str # TokenId to request metadata for, utxo: str # Specific UTXO to request metadata for}\n@optional {verbosity: num # 0 (Default) is fastest, 1 contains token stats, 2 contains token holding addresses}\n@returns(200) {tokenId: str, someUtxo: str, divisibility: num, lockStatus: bool, aggregationPolicy: str, initialIssuanceAmount: num, totalSupply: num, numOfHolders: num, numOfTransfers: num, numOfIssuance: num, numOfBurns: num, firstBlock: num, issuanceTxid: str, issueAddress: str, metadataOfIssuance: map{data: map{tokenName: str, issuer: str, description: str, userData: map{meta: [map]}}}, metadataOfUtxo: map{userData: map{meta: [map]}}} # An object containing the metadata of a token for a UTXO\n\n@endpoint GET /ntp1/stakeholders/{tokenid}\n@desc Get Addresses Holding a Token\n@required {tokenid: str # TokenId to request metadata for}\n@returns(200) {tokenId: str, holders: [map], divibility: num, lockStatus: bool, aggregationPolicy: str, someUtxo: str} # An object containing all of the addresses holding a token\n\n@endpoint POST /ntp1/issue\n@desc Builds a transaction that issues a new NTP1 Token\n@required {issueAddress: str # Address issuing the token, amount: num # Number of tokens to issue, divisibility: num # Number of decimal places the token should be divisble by (0-7), fee: num # Fee in satoshi to include in the issuance transaction min 1000000000 (10 NEBL), reissuable: bool # whether the token should be reissuable, transfer: [map{address: str, amount: num}]}\n@optional {flags: map{splitChange: bool} # Object representing flags that potentialy modify this transaction, metadata: map{tokenName: str, issuer: str, description: str, urls: [map], userData: map, encryptions: [map], rules: map} # Object representing all metadata at token issuance}\n@returns(200) {tokenId: str, txHex: str} # An object representing the token created\n\n@endpoint POST /ntp1/sendtoken\n@desc Builds a transaction that sends an NTP1 Token\n@required {fee: num # Fee in satoshi to include in the issuance transaction min 10000 (0.0001 NEBL), to: [map{address: str, amount: num, tokenId: str}]}\n@optional {from: [str] # Array of addresses to send the token from, sendutxo: [str] # Array of UTXOs to send the token from, flags: map{splitChange: bool} # Object representing flags that potentialy modify this transaction, metadata: map{tokenName: str, issuer: str, description: str, urls: [map], userData: map, encryptions: [map], rules: map} # Object representing all metadata at token issuance}\n@returns(200) {txHex: str, ntp1OutputIndexes: [num], multisigOutputs: [num]} # An object representing the tx to send the token\n\n@endpoint POST /ntp1/burntoken\n@desc Builds a transaction that burns an NTP1 Token\n@required {fee: num # Fee in satoshi to include in the issuance transaction min 10000 (0.0001 NEBL), burn: [map{amount: num, tokenId: str}] # Array of objects representing tokens to be burned}\n@optional {from: [str] # Array of addresses to send the token from, transfer: [map{address: str, amount: num, tokenId: str}]}\n@returns(200) {txHex: str, ntp1OutputIndexes: [num], multisigOutputs: [num]} # An object representing the tx to burn the token\n\n@endgroup\n\n@group ins\n@endpoint POST /ins/tx/send\n@desc Broadcasts a signed raw transaction to the network (not NTP1 specific)\n@required {rawtx: str # Signed raw tx hex to broadcast}\n@returns(200) {txid: str} # An object containing the TXID if the broadcast was successful\n\n@endpoint GET /ins/block/{blockhash}\n@desc Returns information regarding a Neblio block\n@required {blockhash: str # Block Hash}\n@returns(200) {hash: str, confirmations: num, size: num, height: num, version: num, merkleroot: str, tx: [str], time: num, nonce: num, bits: str, difficulty: num, previousblockhash: str, nextblockhash: str, reward: num} # Object containing all information on a blockchain block\n\n@endpoint GET /ins/block-index/{blockindex}\n@desc Returns block hash of block\n@required {blockindex: num # Block Index}\n@returns(200) {blockHash: str} # Object containing block hash\n\n@endpoint GET /ins/tx/{txid}\n@desc Returns transaction object\n@required {txid: str # Transaction ID}\n@returns(200) {txid: str, version: num, locktime: num, vin: [map], vout: [map], blocktime: num, blockheight: num, totalsent: num, fee: num, blockhash: str, time: num, confirmations: num, valueOut: num, valueIn: num, fees: num, size: num} # Object containing transaction info\n\n@endpoint GET /ins/rawtx/{txid}\n@desc Returns raw transaction hex\n@required {txid: str # Transaction ID}\n@returns(200) {rawtx: str} # Object containing raw hex of transaction\n\n@endpoint GET /ins/addr/{address}\n@desc Returns address object\n@required {address: str # Address}\n@returns(200) {addrStr: str, balance: num, balanceSat: num, totalReceived: num, totalReceivedSat: num, totalSent: num, totalSentSat: num, unconfirmedBalance: num, unconfirmedBalanceSat: num, unconfirmedTxAppearances: num, txAppearances: num, transactions: [str]} # Object containing address info\n\n@endpoint GET /ins/addr/{address}/balance\n@desc Returns address balance in sats\n@required {address: str # Address}\n@returns(200) Address balance\n\n@endpoint GET /ins/addr/{address}/unconfirmedBalance\n@desc Returns address unconfirmed balance in sats\n@required {address: str # Address}\n@returns(200) Address unconfirmed balance\n\n@endpoint GET /ins/addr/{address}/totalReceived\n@desc Returns total received by address in sats\n@required {address: str # Address}\n@returns(200) Total received by address\n\n@endpoint GET /ins/addr/{address}/utxo\n@desc Returns all UTXOs at a given address\n@required {address: str # Address}\n@returns(200) UTXOs at an address\n\n@endpoint GET /ins/addr/{address}/totalSent\n@desc Returns total sent by address in sats\n@required {address: str # Address}\n@returns(200) Total sent by address\n\n@endpoint GET /ins/txs\n@desc Get transactions by block or address\n@optional {address: str # Address, block: str # Block Hash, pageNum: num # Page number to display}\n@returns(200) {pagesTotal: num, txs: [map]} # List of transactions\n\n@endpoint GET /ins/sync\n@desc Get node sync status\n@returns(200) {status: str, blockChainHeight: num, syncPercentage: num, height: num, error: str, type: str} # Sync Info\n\n@endpoint GET /ins/status\n@desc Utility API for calling several blockchain node functions\n@optional {q: str # Function to call, getInfo, getDifficulty, getBestBlockHash, or getLastBlockHash}\n@returns(200) Function Response\n\n@endgroup\n\n@group testnet\n@endpoint POST /testnet/ins/tx/send\n@desc Broadcasts a signed raw transaction to the network (not NTP1 specific)\n@required {rawtx: str # Signed raw tx hex to broadcast}\n@returns(200) {txid: str} # An object containing the TXID if the broadcast was successful\n\n@endpoint GET /testnet/ins/block/{blockhash}\n@desc Returns information regarding a Neblio block\n@required {blockhash: str # Block Hash}\n@returns(200) {hash: str, confirmations: num, size: num, height: num, version: num, merkleroot: str, tx: [str], time: num, nonce: num, bits: str, difficulty: num, previousblockhash: str, nextblockhash: str, reward: num} # Object containing all information on a blockchain block\n\n@endpoint GET /testnet/ins/block-index/{blockindex}\n@desc Returns block hash of block\n@required {blockindex: num # Block Index}\n@returns(200) {blockHash: str} # Object containing block hash\n\n@endpoint GET /testnet/ins/tx/{txid}\n@desc Returns transaction object\n@required {txid: str # Transaction ID}\n@returns(200) {txid: str, version: num, locktime: num, vin: [map], vout: [map], blocktime: num, blockheight: num, totalsent: num, fee: num, blockhash: str, time: num, confirmations: num, valueOut: num, valueIn: num, fees: num, size: num} # Object containing transaction info\n\n@endpoint GET /testnet/ins/rawtx/{txid}\n@desc Returns raw transaction hex\n@required {txid: str # Transaction ID}\n@returns(200) {rawtx: str} # Object containing raw hex of transaction\n\n@endpoint GET /testnet/ins/addr/{address}\n@desc Returns address object\n@required {address: str # Address}\n@returns(200) {addrStr: str, balance: num, balanceSat: num, totalReceived: num, totalReceivedSat: num, totalSent: num, totalSentSat: num, unconfirmedBalance: num, unconfirmedBalanceSat: num, unconfirmedTxAppearances: num, txAppearances: num, transactions: [str]} # Object containing address info\n\n@endpoint GET /testnet/ins/addr/{address}/balance\n@desc Returns address balance in sats\n@required {address: str # Address}\n@returns(200) Address balance\n\n@endpoint GET /testnet/ins/addr/{address}/unconfirmedBalance\n@desc Returns address unconfirmed balance in sats\n@required {address: str # Address}\n@returns(200) Address unconfirmed balance\n\n@endpoint GET /testnet/ins/addr/{address}/totalReceived\n@desc Returns total received by address in sats\n@required {address: str # Address}\n@returns(200) Total received by address\n\n@endpoint GET /testnet/ins/addr/{address}/utxo\n@desc Returns all UTXOs at a given address\n@required {address: str # Address}\n@returns(200) UTXOs at an address\n\n@endpoint GET /testnet/ins/addr/{address}/totalSent\n@desc Returns total sent by address in sats\n@required {address: str # Address}\n@returns(200) Total sent by address\n\n@endpoint GET /testnet/ins/txs\n@desc Get transactions by block or address\n@optional {address: str # Address, block: str # Block Hash, pageNum: num # Page number to display}\n@returns(200) {pagesTotal: num, txs: [map]} # List of transactions\n\n@endpoint GET /testnet/ins/sync\n@desc Get node sync status\n@returns(200) {status: str, blockChainHeight: num, syncPercentage: num, height: num, error: str, type: str} # Sync Info\n\n@endpoint GET /testnet/ins/status\n@desc Utility API for calling several blockchain node functions\n@optional {q: str # Function to call, getInfo, getDifficulty, getBestBlockHash, or getLastBlockHash}\n@returns(200) Function Response\n\n@endpoint GET /testnet/ntp1/tokenid/{tokensymbol}\n@desc Returns the tokenId representing a token\n@required {tokensymbol: str # Token symbol}\n@returns(200) {tokenId: str, tokenName: str} # Object containing the token symbol and ID, if token symbol does not exist on network, empty object is returned.\n\n@endpoint POST /testnet/ntp1/broadcast\n@desc Broadcasts a signed raw transaction to the network\n@required {txHex: str # Signed raw tx hex to broadcast}\n@returns(200) {txid: str} # An object containing the TXID if the broadcast was successful\n\n@endpoint GET /testnet/ntp1/addressinfo/{address}\n@desc Information On a Neblio Address\n@required {address: str # Neblio Address to get information on.}\n@returns(200) {address: str, utxos: [map]} # An object with an array of UTXOs for this address\n\n@endpoint GET /testnet/ntp1/transactioninfo/{txid}\n@desc Information On an NTP1 Transaction\n@required {txid: str # Neblio txid to get information on.}\n@returns(200) {hex: str, txid: str, version: num, locktime: num, vin: [map], vout: [map], blocktime: num, blockheight: num, totalsent: num, fee: num, blockhash: str, time: num, confirmations: num} # An object represending this transaction\n\n@endpoint GET /testnet/ntp1/tokenmetadata/{tokenid}\n@desc Get Metadata of Token\n@required {tokenid: str # TokenId to request metadata for}\n@optional {verbosity: num # 0 (Default) is fastest, 1 contains token stats, 2 contains token holding addresses}\n@returns(200) {tokenId: str, someUtxo: str, divisibility: num, lockStatus: bool, aggregationPolicy: str, initialIssuanceAmount: num, totalSupply: num, numOfHolders: num, numOfTransfers: num, numOfIssuance: num, numOfBurns: num, firstBlock: num, issuanceTxid: str, issueAddress: str, metadataOfIssuance: map{data: map{tokenName: str, issuer: str, description: str, userData: map{meta: [map]}}}, metadataOfUtxo: map{userData: map{meta: [map]}}} # An object containing the metadata of a token\n\n@endpoint GET /testnet/ntp1/tokenmetadata/{tokenid}/{utxo}\n@desc Get UTXO Metadata of Token\n@required {tokenid: str # TokenId to request metadata for, utxo: str # Specific UTXO to request metadata for}\n@optional {verbosity: num # 0 (Default) is fastest, 1 contains token stats, 2 contains token holding addresses}\n@returns(200) {tokenId: str, someUtxo: str, divisibility: num, lockStatus: bool, aggregationPolicy: str, initialIssuanceAmount: num, totalSupply: num, numOfHolders: num, numOfTransfers: num, numOfIssuance: num, numOfBurns: num, firstBlock: num, issuanceTxid: str, issueAddress: str, metadataOfIssuance: map{data: map{tokenName: str, issuer: str, description: str, userData: map{meta: [map]}}}, metadataOfUtxo: map{userData: map{meta: [map]}}} # An object containing the metadata of a token for a UTXO\n\n@endpoint GET /testnet/ntp1/stakeholders/{tokenid}\n@desc Get Addresses Holding a Token\n@required {tokenid: str # TokenId to request metadata for}\n@returns(200) {tokenId: str, holders: [map], divibility: num, lockStatus: bool, aggregationPolicy: str, someUtxo: str} # An object containing all of the addresses holding a token\n\n@endpoint POST /testnet/ntp1/issue\n@desc Builds a transaction that issues a new NTP1 Token\n@required {issueAddress: str # Address issuing the token, amount: num # Number of tokens to issue, divisibility: num # Number of decimal places the token should be divisble by (0-7), fee: num # Fee in satoshi to include in the issuance transaction min 1000000000 (10 NEBL), reissuable: bool # whether the token should be reissuable, transfer: [map{address: str, amount: num}]}\n@optional {flags: map{splitChange: bool} # Object representing flags that potentialy modify this transaction, metadata: map{tokenName: str, issuer: str, description: str, urls: [map], userData: map, encryptions: [map], rules: map} # Object representing all metadata at token issuance}\n@returns(200) {tokenId: str, txHex: str} # An object representing the token created\n\n@endpoint POST /testnet/ntp1/sendtoken\n@desc Builds a transaction that sends an NTP1 Token\n@required {fee: num # Fee in satoshi to include in the issuance transaction min 10000 (0.0001 NEBL), to: [map{address: str, amount: num, tokenId: str}]}\n@optional {from: [str] # Array of addresses to send the token from, sendutxo: [str] # Array of UTXOs to send the token from, flags: map{splitChange: bool} # Object representing flags that potentialy modify this transaction, metadata: map{tokenName: str, issuer: str, description: str, urls: [map], userData: map, encryptions: [map], rules: map} # Object representing all metadata at token issuance}\n@returns(200) {txHex: str, ntp1OutputIndexes: [num], multisigOutputs: [num]} # An object representing the tx to send the token\n\n@endpoint POST /testnet/ntp1/burntoken\n@desc Builds a transaction that burns an NTP1 Token\n@required {fee: num # Fee in satoshi to include in the issuance transaction min 10000 (0.0001 NEBL), burn: [map{amount: num, tokenId: str}] # Array of objects representing tokens to be burned}\n@optional {from: [str] # Array of addresses to send the token from, transfer: [map{address: str, amount: num, tokenId: str}]}\n@returns(200) {txHex: str, ntp1OutputIndexes: [num], multisigOutputs: [num]} # An object representing the tx to burn the token\n\n@endpoint GET /testnet/faucet\n@desc Withdraws testnet NEBL to the specified address\n@required {address: str # Your Neblio Testnet Address}\n@optional {amount: num # Amount of NEBL to withdrawal in satoshis}\n@returns(200) {status: str, data: map{txId: str}} # Object containing the transaction ID of the withdrawal.\n\n@endgroup\n\n@group root\n@endpoint POST /\n@desc Send a JSON-RPC call to a localhost neblio-Qt or nebliod node\n@required {jsonrpc: str=1.0 # JSON-RPC version, id: str=neblio-apis # Identifier of RCP caller, method: str # Name of the Neblio RPC method to call, params: [str] # Array of string params that should be passed to the RPC method.}\n@returns(200) {result: map, id: str, error: map} # Object containing the JSON response from the Neblio node.\n@errors {401: Authentication information is missing or invalid}\n\n@endgroup\n\n@end\n"}