JustLend CLI and V2 SDK¶
JustLend provides two source-distributed integration surfaces in addition to the HTTP API, MCP server, and Skills package:
| Surface | Repository | Current version | Best for | Side effects |
|---|---|---|---|---|
| JustLend CLI | justlend/justlend-cli |
1.0.1 |
Deterministic terminal automation, CI jobs, dry-run transaction simulation, and machine-readable command output. | Mix of read-only and signing/broadcast commands; inspect the command class and simulate first. |
| JustLend V2 Utils | justlend/justlend-utils-v2 |
1.0.0 |
Embedding V2 vault, lending, liquidation, mining, WTRX, and energy-purchase flows in browser or Node.js applications. | Many exported methods build, sign, or broadcast transactions through the injected TronWeb instance. |
Neither project is currently published to npm. Install from the official GitHub source rather than guessing an npm package name.
CLI: deterministic terminal automation¶
git clone https://github.com/justlend/justlend-cli.git
cd justlend-cli
npm ci
npm run build
npm link
justlend --help
The CLI exposes 30 top-level command groups covering V1 and V2 lending, vaults, account positions, liquidation, sTRX and stUSDT staking, WTRX, energy rental, governance, mining, rewards, history, portfolio analysis, and transaction simulation.
Agent contract¶
- Add
--jsonfor exactly one machine-readable success or error envelope, including parser and usage failures. Do not parse colorized human tables. - Branch on the process exit code:
0for success, non-zero for usage, validation, transport, simulation, signing, or broadcast failures. - Pin output schema major
1: success is{ schemaVersion: "1.0.0", success: true, data }; failure is{ schemaVersion, success: false, error, code, retryable, hint? }. - Validate output with
schemas/output-v1.schema.json. Treatretryableas the retry signal; never blindly retry a write. - Use
--dry-run --dry-run-owner <address>first. Dry-run simulates and never signs or broadcasts. - Use
--no-broadcastfor sign-only validation, then broadcast only after explicit human intent. - Energy direct purchase is the exception: it rejects
--no-broadcastbecause the configured backend controls broadcast. Useenergy purchase quoteor--dry-runbefore the explicitly confirmed purchase instead. - Mainnet energy purchase uses the official
https://tegrow.ablesdxd.linkservice by default. Nile requires an explicit matching custom--energy-api-url; the CLI rejects the production service on non-mainnet, includingbuy --dry-run. - Use
energy purchase history <payer>to recover public in-progress/settled orders. An ambiguous result may retain the exact signed request in the local mode-0600risk file; it is redacted from output and blocks another payment until history reconciliation clears it. - In non-interactive or JSON mode, writes require
--yes; that flag bypasses the local prompt and must not be added automatically. - Prefer
--network nilefor integration tests. Mainnet writes are irreversible.
# Read-only, machine-readable
justlend --json --network mainnet market list
# No signer and no broadcast
justlend --json --network nile --dry-run \
--dry-run-owner TYourAddress... strx stake 0.000001
See the repository README for the complete command tree, response schema, retry policy, and side-effect classification.
V2 Utils: embedded application integration¶
npm install github:justlend/justlend-utils-v2
# or: pnpm add github:justlend/justlend-utils-v2
Inject a ready TronWeb instance before calling contract helpers. In Node.js, also set the sender explicitly:
import { TronWeb } from 'tronweb';
import { tronObj } from 'justlend-v2-utils';
const tronWeb = new TronWeb({
fullHost: 'https://nile.trongrid.io',
privateKey: process.env.PRIVATE_KEY,
});
tronObj.tronWeb = tronWeb;
tronObj.defaultAccount = tronWeb.defaultAddress.base58;
tronObj.network = 'nile';
Agent safety rules¶
- Never invent contract addresses or market parameters. Resolve them from the live API, MCP tools, or
contracts.json. - Preserve amounts as decimal strings or
BigNumbervalues; do not route token amounts through JavaScriptnumber. - Inspect whether a helper is read-only or creates a transaction before calling it.
depositToVault,supplyCollateral,borrow,repay,liquidate,multiClaim, and energypurchase()are write paths. - Keep private keys, signed transactions, and wallet session material out of prompts, logs, and tool output.
- Use Nile and a non-production wallet for tests. Require explicit human confirmation immediately before a Mainnet signature or broadcast.
- For energy purchases, use the official service only on mainnet, configure a matching service on non-mainnet, and preserve durable payment-risk state; never fabricate pricing or payment-address fallbacks.
Which integration surface should an agent choose?¶
| Need | Use |
|---|---|
| Public read-only HTTP data | OpenAPI |
| Wallet-aware agent tools with discoverable schemas | Full MCP server |
| Read-only reusable agent instructions | JustLend Skills |
| Reproducible shell/CI automation | JustLend CLI |
| Embedded browser or Node.js contract integration | JustLend V2 Utils |
| Deployed addresses and ABI lookup | contracts.json + JSON ABIs |