Query Neo N3 network state, blocks, transactions, accounts, tokens, and contracts
Inspect the active network configuration, chain height, and validator information:
const networkMode = await tools.get_network_mode();
const blockchain = await tools.get_blockchain_info({
network: "mainnet"
});
const blocks = await tools.get_block_count({
network: "mainnet"
});
console.log("Mode:", networkMode.mode);
console.log("Available networks:", networkMode.availableNetworks);
console.log("Block count:", blocks.blockCount);
console.log("Latest height:", blocks.height);
console.log("Validators:", blockchain.validators);
Query complete block details by numeric height or 64-character block hash:
const blocks = await tools.get_block_count({ network: "mainnet" });
const latestBlock = await tools.get_block({
hashOrHeight: blocks.height,
network: "mainnet"
});
const blockByHash = await tools.get_block({
hashOrHeight: process.env.NEO_BLOCK_HASH,
network: "mainnet"
});
console.log("Latest block:", latestBlock);
console.log("Block selected by hash:", blockByHash);
Look up a transaction, inspect VM execution, and wait for confirmation when it is still pending:
const txid = process.env.NEO_TXID;
const transaction = await tools.get_transaction({
txid,
network: "mainnet"
});
const applicationLog = await tools.get_application_log({
txid,
network: "mainnet"
});
const receipt = await tools.wait_for_transaction({
txid,
timeoutMs: 60000,
pollIntervalMs: 3000,
includeApplicationLog: true,
network: "mainnet"
});
console.log({ transaction, applicationLog, receipt });
Inspect fungible-token balances, claimable GAS, and timestamp-filtered NEP-17 activity:
const address = "NZNos2WqTbu5oCgyfss9kUJgBXJqhuYAaj";
const balance = await tools.get_balance({
address,
network: "testnet"
});
const unclaimedGas = await tools.get_unclaimed_gas({
address,
network: "testnet"
});
const transfers = await tools.get_nep17_transfers({
address,
fromTimestampMs: Date.now() - (7 * 24 * 60 * 60 * 1000),
toTimestampMs: Date.now(),
network: "testnet"
});
console.log({ balance, unclaimedGas, transfers });
Resolve a live contract, inspect its manifest, and execute a read-only method:
const GAS_HASH = "0xd2a4cff31913016155e38e474a2c06d08be276cf";
const status = await tools.get_contract_status({
contract: GAS_HASH,
network: "mainnet"
});
const info = await tools.get_contract_info({
contract: GAS_HASH,
network: "mainnet"
});
const symbol = await tools.invoke_contract({
scriptHash: GAS_HASH,
operation: "symbol",
args: [],
network: "mainnet"
});
console.log({ status, info, symbol });
Explore an address's NEP-11 holdings and timestamp-filtered transfer history:
const address = "NZNos2WqTbu5oCgyfss9kUJgBXJqhuYAaj";
const balances = await tools.get_nep11_balances({
address,
network: "testnet"
});
const transfers = await tools.get_nep11_transfers({
address,
fromTimestampMs: Date.now() - (30 * 24 * 60 * 60 * 1000),
toTimestampMs: Date.now(),
network: "testnet"
});
console.log({ balances, transfers });