Build against NABD with a signed, fee-aware transaction flow.
Use the public testnet to validate wallet flows, asset operations, AP calls, fee handling, and finality before production integration.
Submit your first transfer.
The SDK signs locally, so private keys never leave your application. Chain identity and fees are read from the network at runtime, so the same code moves from testnet to production without edits.
import { MIN_TRANSFER_FEE_MICRO, Wallet, connect, microNabd } from "nabd-sdk";
const client = connect("https://api.testnet.nabdchain.org");
const wallet = await Wallet.fromFile("wallet.json");
// Read chain identity and the account nonce from the network.
const chain = await client.getChainBinding();
const nonce = await client.getNextNonce(wallet.address);
const tx = wallet.buildTransfer({
to: "NABD1RECIPIENT...",
amount: microNabd("0.001"),
fee: MIN_TRANSFER_FEE_MICRO,
nonce,
chain,
});
const txHash = await client.submitTransaction(tx);
const confirmed = await client.waitForTransaction(txHash);
console.log(confirmed.status, confirmed.block_round);
-
Fund a wallet
Generate a wallet with the SDK, then request capped testnet funds from the faucet.
-
Read chain identity
Fetch
network_id,genesis_hash, and active fees from/api/status. Signed payloads bind to them, so a transaction for one network is invalid on any other. -
Build and sign locally
The SDK canonicalizes the payload and signs it with Ed25519, Falcon-512, or both under the hybrid post-quantum envelope.
-
Submit and confirm
Poll
/api/v1/transactions/:hashafter submission. The transfer is final whenstatusisconfirmed, which takes about 1.2 s on the current testnet.
Fees are integers, read from the network.
Fees are denominated in integer micro-NABD. GET /api/status
returns the active fees object. Treat it as authoritative
instead of hard-coding the minimums below.
Transfer, private transfer, or batch item
1000
Asset operation (create, mint, transfer, or burn)
1000
Autonomous program call
10000
Autonomous program deployment
100000