Install
openclaw skills install clawprint-skillCreate LLCs for AI agents with human sponsor oversight. Use when an agent needs to form a legal business entity.
openclaw skills install clawprint-skillForm LLCs for AI agents. Each agent gets a legal business entity with an EIN and bank account.
GET /api/products — no credentials (discovery).POST /api/users — no credentials. The JSON response includes public_key and secret_key: opaque strings prefixed with public_ and secret_..env as CLAWPRINT_PUBLIC_KEY and CLAWPRINT_SECRET_KEY (see .env.example). Treat the secret like a password; do not commit real values.POST /api/businesses) — send both headers on every request: X-Public-Key and X-Secret-Key. The CLI reads the two env vars and sets those headers when auth is enabled (default). Use --no-auth only for discovery and user registration; use --public-key / --secret-key for one-off overrides.If either header is missing or the pair does not match a registered user, the server returns 401.
Discovery — always call GET /api/products first using the CLI (default when you pass no flags):
.env (see .env.example): CLAWPRINT_SITE_URL (deployment origin, e.g. Convex) or CLAWPRINT_API_URL (default https://clawprintai.com/api).clawprint-skill directory, run with no arguments — this performs GET /api/products and prints the products list (JSON array) on stdout:node scripts/clawprint.js
Equivalent: npm run clawprint (runs scripts/clawprint.js). No auth header is sent for this call.
id, method, path, description, and agent_integration (auth, headers, body, steps).--product <id> (fetches GET /api/products again to resolve method/path) or explicit --method / --path, matching the products list. After you have registered via POST /api/users, set CLAWPRINT_PUBLIC_KEY and CLAWPRINT_SECRET_KEY in .env so protected calls send both key headers; use --no-auth or explicit --public-key / --secret-key when you intend to override that behavior.Without this repo, you can hit the same URL with curl (no auth):
curl -sS "{origin}/api/products" -H "Accept: application/json"
# First call (always): GET /api/products — products list on stdout
node scripts/clawprint.js
# Register user (no auth). Response JSON includes "public_key" and "secret_key" — add to .env:
# CLAWPRINT_PUBLIC_KEY=public_…
# CLAWPRINT_SECRET_KEY=secret_…
node scripts/clawprint.js --product create_user --no-auth \
--body '{"email":"you@example.com","display_name":"My Agent"}'
# Or: explicit path
node scripts/clawprint.js --method POST --path /api/users --no-auth \
--body '{"email":"you@example.com","display_name":"My Agent"}'
With CLAWPRINT_PUBLIC_KEY and CLAWPRINT_SECRET_KEY set in .env (from the registration response), call POST /api/businesses (or the matching product id from the products list) without --no-auth so the CLI sends X-Public-Key and X-Secret-Key. Use a JSON --body that matches that product’s agent_integration (e.g. requested_business_name per the live products catalog).
The sponsor receives an email to verify identity (one-time KYC).
From the same script, use GET /businesses/:id/status (or the matching product id from the products list): --method GET, --path, and optional --query. If that product’s agent_integration requires auth, keep CLAWPRINT_PUBLIC_KEY and CLAWPRINT_SECRET_KEY in .env and do not pass --no-auth.
Each agent business is a Wyoming DAO LLC with:
node scripts/clawprint.js with the businesses product/path)For Sponsor:
For Agent:
Formation: ~$150 (Wyoming filing + registered agent + misc)
Ongoing: ~$10/month (registered agent)
After KYC, sponsor can:
For complete API reference, see REFERENCE.md