General Liquidity
Clients

CLI

gl is the operator's tool. It is how a person approves, refunds, reads the record, and stops everything.

Install
git clone https://github.com/general-liquidity/general-liquidity-cli
cd general-liquidity-cli && bun install && bun link

Agent commands

gl resolve <ref>
Turn a counterparty reference into one identity.
gl verify <file>
Check a counterparty's disclosure against policy.
gl disclose
Print this operator's own signed disclosure.
gl pay
Submit a payment and print the receipt, or the refusal.
gl audit
Read the signed record, one page at a time. Takes --intent-key, --limit and --cursor.
gl testnet-pay
A governed settlement against a test network, driven by environment.
gl config
show, path, get or set. Keys: base-url, api-key-env, signer-key-env, auth-scheme.
A payment
gl pay \
  --payee compute.example \
  --amount 420000 --asset USDC \
  --purpose "inference, batch 41" \
  --mandate mnd_41a0 \
  --rail x402 \
  --reversibility irreversible \
  --finality instant \
  --credential http-sig \
  --capital-source payer \
  --presence delegated

Operator commands

These use a separate signing key from the API token, so possessing the agent's credentials is not enough to run any of them.

gl approve
Release a payment waiting for a person. Takes --intent-id, --challenge, --mandate and --rationale, plus --ack to acknowledge the risks.
gl refund
Reverse a settled payment, with a rationale. --amount-minor refunds part of it.
gl kill-switch engage
Freeze settlement. Engage and disengage are signed as separate operations, so one cannot be replayed as the other.
gl reset-breaker
Clear a tripped circuit breaker, with a rationale.
Approving
gl approve \
  --intent-id int_8f14e45f \
  --challenge 9c2b71 \
  --mandate mnd_41a0 \
  --rationale "checked the invoice against the quote"

Every operator command requires a rationale, and the rationale goes into the record. The point of the audit trail is intent, not just the fact that a button was pressed.

Environment

Shell
GL_CONFIG                # config file location
GL_BASE_URL              # the server
GL_API_KEY               # the agent's credential (rebind with: gl config set api-key-env)
GL_SIGNER_PRIVATE_KEY    # the agent's signing seed
GL_OPERATOR_KEY          # the operator's seed, or pass --key <path>
GL_OPERATOR_KEY_ID       # the operator key id the server knows

Config lives at ~/.config/general-liquidity/config.json. The credential variable is rebindable, so GL_API_KEY is the default rather than a fixed name.