---
name: droplit-cli-operations
description: Install and operate the published @droplit.dev/cli for sponsored BSV wallets and agent workflows.
version: 0.2.0
---

# Droplit CLI operations

## Find a public sponsor

```sh
droplit discover --limit 20 --json
# Fetch another page using the returned next_cursor:
droplit discover --limit 20 --after <next_cursor> --json
```

This unsigned command calls `GET /sponsors` on `DROPLIT_API_URL`; no wallet,
private key or signature is needed. `limit` defaults to 20 (maximum 50).
The response is `{ sponsors: [{ name, slug, approval_required: true }],
next_cursor: null | string }`, ordered by slug. An empty list is valid.
Listing does not promise free funds or grant access: run `access --name <slug>`
with your signer, then request separate owner approval.

Owners opt in with **List publicly** in the droplit's API tab. Existing droplits
stay unlisted. Turning the setting off removes the name from discovery; it does
not revoke previously approved wallets or make public status endpoints private.

## Existing signer and sponsor approval

Use the same existing wallet identity across tools. If your wallet exposes the
SDK BRC100 HTTP signer, pass its URL explicitly:

```sh
droplit access --name <known-sponsor> --wallet-url http://127.0.0.1:3321 --json
droplit action --name <known-sponsor> --kind push --data '["hello"]' --wallet-url http://127.0.0.1:3321 --json
```

`--originator` optionally identifies the caller to the signer; default
`droplit-cli.local`. `--wallet-url` uses SDK `HTTPWalletJSON` and never loads a
WIF or generates another identity. It requires HTTPS or HTTP loopback, without
credentials, queries or fragments. Signer calls time out after 10 seconds;
redirects are rejected and signer errors never fall back to local keys.
`--wif` remains a mutually exclusive compatibility option; no environment WIF
is read. **`1sat serve wallet` is storage RPC, not signer RPC.** This CLI does
not launch a signer daemon. Sigma OAuth tokens do not replace wallet signing.

`access --name` makes an authenticated `GET /faucet/{slug}/access` using
`AuthFetch`. The result describes this exact caller: `slug`, `public_key`,
`authorized`, `is_owner`, `quotas`, `unrestricted_kinds`, and `approval_path`.
The CLI adds `approval_url`, constructed from the trusted `DROPLIT_SITE_URL`
(default `https://droplit.dev`), the requested slug and the signer public key.
It does not trust a server-provided cross-origin approval URL or open a browser.
`DROPLIT_API_URL` selects the API (default `https://api.droplit.dev`); signed
requests require HTTPS or HTTP loopback with no URL credentials.

Copy the approval URL to the sponsor's owner. The owner selects **Review access**,
edits limits, then explicitly selects **Approve access**. The default policy is
10 pushes per day with `max_bytes: 1024`; tap, fund and mint each have an explicit
zero daily limit. Missing action kinds are unlimited, so all four rows matter.
Transaction fees are not included in current satoshi quotas; this is not an
expiry or total spending ceiling. Existing allowlisted keys show their current
policy and are not overwritten by opening the link.

Run `access` again with the same signer after owner approval. Access checks are
read-only and do not authorize automatic payment of HTTP 402 challenges. The
link is a convenience handoff, not a stored pending/denied request. No approval
is implied by copying it. Unknown sponsor names remain errors; no sponsor is
invented. Public `/status` reports balances, while authenticated `/access` is
authoritative for the caller's policy and remaining quotas.


Package: @droplit.dev/cli (Node.js 20+). Do not install the unrelated unscoped droplit package or the archived Go CLI.

```sh
npx @droplit.dev/cli help
npx @droplit.dev/cli status --name <slug> --json
```

For a persistent installation: npm install -g @droplit.dev/cli, then droplit help.

## Signing

Signed commands use --wallet-url <URL> (recommended) or --wif <WIF>. The CLI does not read a WIF environment variable, implement signer profiles, or provide a device-OAuth wallet bridge. HTTPWalletJSON or ProtoWallet supplies the signer to AuthFetch. Use a dedicated signer with appropriate permissions. Never put real keys in source, transcripts, logs, or examples; command arguments may be visible in shell history and process listings. Prefer an existing WalletInterface integration where available.

DROPLIT_API_URL optionally changes the API base; default https://api.droplit.dev. --json selects machine-readable output, not --output json.

## Commands

Use the same existing SDK HTTP signer for every signed command. Explicit `--wif <WIF>` remains a mutually exclusive alternative for local signing.

- access --name <known-sponsor> --wallet-url <URL> --json

- register --wallet-url <URL>
- list --wallet-url <URL> --json
- create --name <slug> --drop-sats 1000 --wallet-url <URL>
- status --name <slug> --json (public; no signer)
- deposit-address --name <slug> --wallet-url <URL>
- action --kind tap --name <slug> --recipient-address <address> --amount-sat 1000 --wallet-url <URL>
- action --kind push --name <slug> --data '["hello"]' --wallet-url <URL>
- activity --name <slug> --limit 20 --wallet-url <URL> --json
- api-keys list --name <slug> --wallet-url <URL>
- api-keys add --name <slug> --public-key <hex> --label worker --wallet-url <URL>
- api-keys rm --name <slug> --public-key <hex> --wallet-url <URL>
- quotas list --name <slug> --wallet-url <URL>
- quotas set --name <slug> --quotas '[{"kind":"tap","n_per_period":10,"period":"day"}]' --wallet-url <URL>

Set an explicit amount for payouts; an owner tap without an amount or fixed drop can send the whole wallet. Writes use /actions. The CLI has no idempotency-key flag and the backend does not implement replay protection. Do not automatically retry an uncertain payment; inspect activity and transaction status first.

Owners are unlimited; allowlisted keys use per-action quotas. Named action scopes and profile subcommands are not supported.

Docs: https://droplit.dev/docs/agents
API skill: https://droplit.dev/skills/droplit-api-operations/SKILL.md
