Gully Core

Build

Command line

The gullycore command does what a builder does on Gully Core from a terminal, with the review, the simulation and the guards built in. It sits on the SDK.

bash
gullycore chain list
gullycore doctor --chain anubis
gullycore fees --chain anubis
gullycore pool list --chain anubis --json

Commands

Every command takes --help, and --json prints one document on stdout, with progress on stderr.

CommandWhat it does
swap quote, swap execExpected out, minimum out, fees and price impact; then a simulation and the unsigned transaction or a signature.
pool list, info, createPools on a chain, one pool in full, or a new CL or Bin pool.
liquidity add, removeA CL position or a Bin spread, with the most you may pay and the least you get back.
launchA launch through the kit, priced by its opening market cap.
lockLock tokens or a CL position, vest, read a lock, claim.
feesWhat the chain charges today, beside the rule.
tokens list, infoThe address book's tokens and a balance.
chain list, statusWhere Gully Core runs, and one chain live: RPC, head block, contracts, kit release.
configDefault network, slippage, keystore path, API and RPC URLs. Never a key.
doctorRPC health, the contract clock, the address book and a wallet.
site, airdrop, multisend, splitHosted sites, Merkle drops, batched sends, team splits.
init, new, bitmapScaffold an app or a hook, read a permission bitmap.
completionA completion script for bash, zsh, fish or PowerShell.

Chains

gullycore chain list reads the SDK's address book, so it never claims more than the book holds. A write on a chain with no deployment is refused with exit code 3, and no address is made up to fill the gap. Gas on Anubis pays for gas only, so native value is refused there. --network is the same flag as --chain.

Signing

The CLI never accepts a raw private key or a mnemonic, and refuses an argument shaped like one.

  • --print, the default: the unsigned transaction and a cast send line. Nothing is signed.
  • --dry-run: simulates and shows the review, and never unlocks a key.
  • --keystore <file>: an encrypted keystore. The password comes from a hidden prompt, --password-file or GULLYCORE_KEYSTORE_PASSWORD.
  • --hardware ledger|trezor with --from: signs on the device through Foundry's cast.

Safety

  • Every transaction is simulated, as the exact bytes from the sender, before it can be signed.
  • The fee and the minimum out are on screen before any signature.
  • Slippage defaults to 0.5%. Above 5% it needs --accept-high-slippage, as does a price impact above 5%; 50% is refused always.
  • A mainnet write asks you to type a confirmation. --yes skips it only with --network named on that command line, so a saved default can never turn a script into a mainnet write.
  • Approvals are for the exact amount and, through Permit2, for one hour. They are built locally, never taken from an API.
  • A swap from the Router API is decoded and checked against the address book before it reaches your wallet.

Scripts and exit codes

Every prompt has a flag. With --json, stdout carries exactly one document (schema gullycore.cli/1), every amount a decimal string of base units.

CodeMeaning
0Done.
1Failed: bad input, or a read that found nothing.
2Usage: an unknown flag, a missing value.
3Gully Core has no deployment on that chain, or not that feature.
4The transaction would revert, or did.
5An RPC or the Router API could not be reached.
6A safety guard refused: slippage, price impact, or a mainnet write without confirmation.
130Cancelled at a prompt.

Wrong or missing? Tell us at @Gully_Labs.