Build on Valdium Testnet · v1.10 · all tests passing
Estimated read time: 8 minutes

SDK & CLI

CLI installation

# One-line installer (macOS/Linux) curl -fsSL https://testnet.valdium.xyz/install | sh # Or via npm (coming pre-mainnet) npm install -g @valdium/cli

Verify installation:

valdium --version # valdium v1.10.0

Core CLI commands

# Wallet valdium wallet create # generate a new keypair valdium wallet import # import from private key valdium balance 0xAddress... # check balance # Network valdium config set rpc URL # set RPC endpoint valdium block latest # latest block info valdium tx 0xHash... # transaction receipt # Contracts valdium deploy file.js # deploy a contract valdium call 0xAddr method # read-only call valdium call 0xAddr method --from alice # state-changing call # Validators valdium validators list # active validator set valdium validators bond # stake VLD and join valdium validators unbond # unstake # Faucet valdium faucet --address 0x... # request test VLD

JavaScript SDK

npm install @valdium/sdk
import { ValdiumClient, Wallet, Contract } from '@valdium/sdk'; // Connect const client = new ValdiumClient('https://testnet.valdium.xyz'); // Load wallet const wallet = await Wallet.fromKeystore(keystorePath, password); // Read chain state const block = await client.getBlock('latest'); const balance = await client.getBalance(wallet.address); // Deploy a contract const contract = await Contract.deploy(client, wallet, contractSource, initArgs); console.log('deployed at:', contract.address); // Call a method (read-only) const count = await contract.call('getCount'); // Send a transaction (state-changing) const tx = await contract.send('increment', [], { from: wallet }); await tx.wait(); // Listen for events contract.on('Incremented', (event) => { console.log('count is now:', event.count); });

JSON-RPC reference

Valdium exposes a JSON-RPC API compatible with EVM tooling. Key endpoints:

POST /tx # submit a signed transaction POST /tx/batch # submit multiple transactions at once GET /block/:n # block by number (or "latest") GET /receipts/:hash # transaction receipt GET /address/:addr # account info GET /validators # active validator set GET /governance/proposals