Skip to main content

The Overcast CLI

@overcast-xyz/cli packages the entire SDK into one binary: overcast. It covers the full protocol surface — vault management, offer/option discovery, the interactive RFQ flow, the option lifecycle, and a built-in RFQ quoter — and anything it doesn't ask for on the command line it prompts for interactively.

$ overcast --help
$ overcast deposit --token usdc --amount 1.5
$ overcast quote --spread 0.02

Install

Install the CLI globally from npm:

npm install -g @overcast-xyz/cli
overcast --help

Or run it without installing:

npx @overcast-xyz/cli --help

Configuration

There are no config files. Every setting resolves flag → environment variable → the targeted deployment's default:

SettingFlagEnv varDefault
API key--api-keyOVERCAST_API_KEYcurrently required
Deployment--chainOVERCAST_CHAINrequired, unless --protocol is given
Protocol--protocolOVERCAST_PROTOCOLrequired, unless --chain is given
Wallet-k, --keypairOVERCAST_KEYPAIRrequired for signing
RPC--rpcOVERCAST_RPC_URLthe deployment's own; required with --protocol
Backend--backendOVERCAST_BACKEND_URLhttps://api.sandbox.overcast.xyz
Transport--transportOVERCAST_TRANSPORTnegotiated by socket.io
Chain id--chain-idOVERCAST_CHAIN_IDthe deployment's own; required with --protocol evm
Program id--program-idOVERCAST_PROGRAM_IDthe deployment's own; required with --protocol svm
Domain--domainOVERCAST_DOMAINread from the deployment
KMS key--kms-keyOVERCAST_KMS_KEY_VERSIONnone — signs with the keypair

These are global options — they work on every subcommand. overcast --help is the full list: every flag is generated from the config schema of the package that owns the field behind it, so the two cannot drift.

Choosing a deployment

Exactly one of --chain / --protocol is required. --chain names a deployment the CLI already knows, and carries its RPC and addresses with it:

overcast --chain anvil assets # local EVM node
overcast --chain solana-sandbox assets # the Solana sandbox

--protocol covers anything else — it selects the client package, and the deployment's own flags then become mandatory:

overcast --protocol evm --rpc <url> --chain-id <id> assets
overcast --protocol svm --rpc <url> --program-id <address> assets

Every other example on this page assumes one of these is set (via the flag or OVERCAST_CHAIN / OVERCAST_PROTOCOL) and omits it for brevity.

The keypair value may be a path to a Solana id.json, a raw JSON byte array, or a base58 secret key:

export OVERCAST_KEYPAIR=~/.config/solana/id.json
export OVERCAST_API_KEY=<your-api-key>
export SOLANA_RPC_URL=http://127.0.0.1:8899
export OVERCAST_BACKEND_URL=http://127.0.0.1:3000

Read-only commands (balance --user, assets, offer list/show, option list/show) work without a wallet.

Getting an API key

Access is granted per app, so the first key comes from us:

  1. Request a login from the Overcast team (info@overcast.xyz). We create your login for the Overcast web app.
  2. Sign in to the web app with the credentials you receive.
  3. Create an API key under Profile → API keys
  4. Export it as OVERCAST_API_KEY (above), or pass --api-key per command.

Further keys — a second environment, a rotation — you create yourself in the same place.

A five-minute tour

# 1. What can I trade?
overcast assets

# 2. Fund my escrow vault (premiums and collateral are paid from the vault).
overcast deposit --token <cash-token> --amount 1000000000
overcast balance --token <cash-token>

# 3. Request quotes for an option, interactively — pick strategy, strike,
# expiry; watch quotes stream in; accept one; the option mints on-chain.
overcast rfq create

# 4. ...or be the one quoting: run an RFQ quoter until Ctrl-C.
overcast quote

# 5. Later: exercise (taker) or redeem (maker), then withdraw.
overcast exercise -c <collateral-offer-id> -s <settlement-offer-id>
overcast redeem -c <collateral-offer-id> -s <settlement-offer-id>
overcast withdraw --token <cash-token> --amount 500000000

Any flag you omit — a token, an amount, an offer ID — the CLI asks for with an interactive prompt, so overcast deposit with no flags at all is valid.

Continue with the command reference or the RFQ quoting guide.

⚠️ Pre-release. The CLI is under heavy development: the inline-keypair signer is temporary and RFQ offer signatures are currently stubbed placeholders. Expect breaking changes; overcast <command> --help is always the authoritative reference.