Skip to main content

lium topup

Top up your Lium balance with a stablecoin (e.g. USDT). Unlike lium fund — which transfers TAO from a Bittensor wallet — topup creates a payment invoice and hands you a deposit address plus the exact crypto amount to send. You make the transfer from your own wallet; the balance is credited automatically once the network confirms it.

This is the recommended path for AI agents that self-fund: every subcommand supports --json, so an agent can create an invoice, read the deposit address, send the funds, then poll lium balance until the credit lands — no human in the loop.

lium topup COMMAND [OPTIONS]

Subcommands

CommandPurpose
lium topup currenciesList supported stablecoins and networks
lium topup createCreate an invoice and print the deposit address + amount

lium topup currencies

List the stablecoins and networks you can pay with.

lium topup currencies [--refresh] [--json]
FlagEffect
--refreshBypass the cache and re-fetch from the provider
--jsonPrint machine-readable JSON
lium topup currencies
lium topup currencies --json

lium topup create

Create a top-up invoice and print the deposit address plus the exact amount to send.

lium topup create -a AMOUNT -c CURRENCY -n NETWORK [--json]
FlagEffect
--amount, -a FLOATTop-up amount in USD (required)
--currency, -c CODEStablecoin code, e.g. USDT (required)
--network, -n NAMENetwork the coin is sent on, e.g. tron (required)
--jsonPrint machine-readable JSON
lium topup create -a 20 -c USDT -n tron
lium topup create -a 20 -c USDT -n tron --json

The response includes everything needed to pay:

FieldMeaning
invoice_idProvider invoice identifier
deposit_addressSend the funds here
crypto_amountExact amount of crypto_currency to send
crypto_currency / crypto_networkCoin and network to send on
fiat_amount / fiat_currencyUSD value being credited
expires_atInvoice expiry — send before this (invoices live ~30 min)
hosted_invoice_urlBrowser-payable page for the same invoice
Send the exact amount, on the right network, before expiry

Underpaying credits only what is received. Sending on the wrong network, or after expires_at, can lose the funds. Always read crypto_amount and crypto_network back from the invoice rather than assuming them.

Agent self-funding loop

A shell agent with wallet access can top itself up end-to-end:

# 1. Discover a supported coin/network
lium topup currencies --json

# 2. Create a $20 invoice and capture the deposit address + amount
INVOICE=$(lium topup create -a 20 -c USDT -n tron --json)
ADDRESS=$(echo "$INVOICE" | jq -r .deposit_address)
AMOUNT=$(echo "$INVOICE" | jq -r .crypto_amount)

# 3. Send exactly $AMOUNT USDT (TRON) to $ADDRESS from your own wallet.
# This transfer happens in your wallet — Lium does not move your funds.

# 4. Poll until the balance is credited
lium balance --json

The transfer in step 3 is yours to make — Lium only issues the invoice and credits the balance once the provider confirms the on-chain payment.

See also