@foundryprotocol/0gkit-cli
v1.0.2
Published
The neutral 0G command line — init, doctor, chain, storage, infer, da, attest. Foundry is a separate opt-in plugin.
Downloads
858
Readme
@foundryprotocol/0gkit-cli
The neutral 0g command line — init, doctor, chain, storage, infer,
da, attest. Language-agnostic: any stack shells out; --json for scripting.
Foundry is a separate, opt-in plugin, never required.
Install
# Recommended: install once, then use the short `0g` binary
npm install -g @foundryprotocol/0gkit-cli
0g doctor
# Or one-off via npx (use the full scoped name — `npx 0g` resolves to an
# unrelated package on npm):
npx @foundryprotocol/0gkit-cli doctor60-second start (no funds, testnet)
npx @foundryprotocol/0gkit-cli init my-app && cd my-app
npm install
npx @foundryprotocol/0gkit-cli doctor # preflight every 0G surface
npx @foundryprotocol/0gkit-cli chain faucet 0xYourAddress # Galileo → points you at https://faucet.0g.aiCommands
| Command | What |
| ------------------------------ | -------------------------------------------------------- |
| 0g init [name] | scaffold a runnable, testnet-default project |
| 0g doctor | RPC / signer / storage / DA / faucet checklist |
| 0g chain faucet\|balance\|tx | faucet guidance, native balance, await a receipt |
| 0g storage put\|get\|exists | upload/download/probe 0G Storage |
| 0g infer | chat completion against a 0G compute provider |
| 0g da publish\|verify | publish a blob / local integrity check |
| 0g attest verify\|report | verify or summarize a signed attestation |
| 0g foundry … | optional plugin — hidden unless installed or --foundry |
Global flags: --network aristotle|galileo|local (default galileo),
--rpc <url>, --private-key <hex>, --json.
Multi-language (the CLI is the universal surface)
TypeScript:
import { Storage } from "@foundryprotocol/0gkit-storage";
const s = new Storage({
network: "galileo",
privateKey: process.env.ZEROG_PRIVATE_KEY,
});
const { root } = await s.upload(new TextEncoder().encode("hi"));Shell / any language (parse --json):
ROOT=$(0g storage put ./model.bin --network galileo --json | jq -r .root)
0g storage exists "$ROOT" --jsoncurl (compute is OpenAI-compatible — see @foundryprotocol/0gkit-compute):
0g infer -m "hello" --provider 0xPROVIDER --json | jq -r .outputEstimating & dry-run
0g estimate storage ./big-file.bin
0g estimate compute --prompt "What is 2+2?" --max-output 64
0g estimate da --bytes 4096
0g estimate contracts --abi ./MyContract.abi.json --address 0x... --method transfer --args '["0x...","1000"]'Every write command also accepts --dry-run:
0g storage put ./file --dry-run
0g da publish ./blob --dry-run
0g infer -m "ping" --dry-run--dry-run runs all estimation work (gas + fee + simulation) without
broadcasting a single tx. The output is a structured DryRunResult envelope
under --json, or a human [dry-run]-prefixed block by default.
Environment variables
ZEROG_NETWORK, ZEROG_RPC_URL, ZEROG_PRIVATE_KEY, ZEROG_BROKER_KEY,
ZEROG_PROVIDER. Flags always override env; env overrides the preset default.
Escape hatch
The CLI is a thin, faithful wrapper. Every primitive package exposes .raw
(or the underlying client) — drop down to @foundryprotocol/0gkit-storage, @foundryprotocol/0gkit-compute,
@foundryprotocol/0gkit-da, @foundryprotocol/0gkit-attestation, @foundryprotocol/0gkit-chain, @foundryprotocol/0gkit-core directly
whenever you outgrow a command. The toolkit is a help, never a cage.
License
MIT.
