lobstercash
Use this skill when the user wants to spend money, make purchases, send crypto, pay for APIs, browse websites for shopping, complete checkout, or manage an AI agent's payment wallet. Covers buying products online with credit cards (including browser-automated checkout), sending tokens, paying for x402 protocol APIs, checking balances, depositing funds, browsing available services, and signing on-chain transactions — all with secure guardrails, and appropriate human controls. Trigger on any spending, wallet, or shopping intent: "buy this", "pay for that", "send tokens", "how much do I have", "what can I buy", "top up my wallet", "get a card", "set up payments", "find me something to buy", "complete the checkout", or "browse that site" — even if the user doesn't mention "lobster", "crypto", or "Solana" directly.
NPX Install
npx skill4agent add crossmint/lobstercash-cli-skills lobstercashTags
Translated version includes tags in frontmatterSKILL.md Content
View Translation Comparison →Lobster Cash CLI Skill
lobstercashlobstercash <command> --helpInstallation
npm install -g @crossmint/lobster-clilobstercashSteps to use this skill
1. Version check (automatic)
npm update -g @crossmint/lobster-cli2. Select lobstercash agent to use
lobstercash agents list- You see yourself in the list and it says → You're good. Move on.
(active) - You see yourself in the list but it's NOT active → Run with the matching ID, then move on.
lobstercash agents set-active <agentId> - No agent matches you (or the list is empty) → Register a new one. Read the agents reference for how to register one.
3. Route based on the user's intent
- A) Buy something online (product, subscription, domain, service) → Buy with a card
- B) Pay for a paid API endpoint (x402 protocol) → Pay an API with x402
- C) Anything else (check balance, send crypto, view status, link wallet, browse examples) → Other actions
A) Buy something with a card
Step 1: Request a virtual card
lobstercash cards request --amount <amount> --description "<what it's for>"--amount 25 --description "AWS credits"Step 2: Get user approval
approvalUrlTo create this card I need your approval. Open this link:[approvalUrl]Come back here when you've approved it.
Step 3: Verify and get card credentials
lobstercash cards list
lobstercash cards reveal --card-id <id> --merchant-name "<store>" --merchant-url "<https://...>" --merchant-country <XX>card-idcards list- Web search to find the right page: search for "running socks site:nike.com" or "best running socks to buy online" to get real, current URLs
- Open the best result: (use the URL from the search result, not a guess)
lobstercash browser open "https://nike.com/w/running-socks-7ny3qzy7ok" - Extract products from the page:
lobstercash browser extract "product names, prices, and links" - Present the real results to the user and let them pick
lobstercash browser open "https://nike.com"
lobstercash browser act "search for running socks"Step 4: Complete the purchase
B) Pay an API with x402
Step 1: Ensure the wallet has funds
lobstercash status- Wallet configured + has enough funds → proceed to step 2.
- Wallet configured + insufficient funds → run to top up, show the approval URL, wait for user confirmation, then proceed.
lobstercash crypto deposit --amount <needed> --description "<description>" - Wallet not configured → run (bundles wallet creation + deposit). Show the approval URL, wait for user confirmation, verify with
lobstercash crypto deposit --amount <needed> --description "<description>", then proceed.lobstercash status
--descriptionStep 2: Fetch the paid endpoint
lobstercash crypto x402 fetch <url>--json '{"key": "value"}'--header "Authorization: Bearer <token>"Completing checkout with the browser
-
Open the merchant site (if not already in a browser session):bash
lobstercash browser open "https://merchant.com/checkout"Share theURL with the user so they can watch along.Live view -
Navigate to checkout using natural-language actions:bash
lobstercash browser act "add the item to cart" lobstercash browser act "go to checkout" -
Fill the payment form — card credentials are handled server-side and never reach the agent:bash
lobstercash browser fill-card \ --card-id <id> \ --merchant-name "<name>" \ --merchant-url "https://..." \ --merchant-country US -
Fill shipping/billing details and review order:bash
lobstercash browser act "fill in shipping address: ..." lobstercash browser screenshotShow the screenshot or ask the user to check the live view before placing the order. -
Place the order only after user confirms:bash
lobstercash browser act "click place order" -
Close the session when done:bash
lobstercash browser close
fill-cardStep 3: Report the result
body--debugC) Other actions
crypto balancestatusexampleslobstercash setup- Check balance: → balance reference
lobstercash crypto balance - Send tokens: → send reference
lobstercash crypto send --to <addr> --amount <n> --token usdc - View wallet status: → status reference
lobstercash status - Browse examples: → examples reference
lobstercash examples - Link wallet / configure agent (setup only): → setup reference. Use when the user says "configure", "set up", "link wallet", or similar — and isn't trying to make a purchase.
lobstercash setup - Sign/submit a transaction: → tx reference
lobstercash crypto tx create
crypto sendcrypto tx createlobstercash statuslobstercash crypto deposit --amount <needed> --description "<description>"Quick Reference
lobstercash agents register --name "<name>" --description "<desc>" --image-url "<url>" # register a new agent
lobstercash agents list # list all agents
lobstercash agents set-active <agentId> # set active agent
lobstercash examples # browse working examples
lobstercash status # check status & readiness & wallet address
lobstercash setup # link agent to wallet (no purchase needed)
lobstercash crypto balance # check balances
lobstercash crypto send --to <addr> --amount <n> --token usdc # send tokens
lobstercash crypto x402 fetch <url> # pay for API
lobstercash crypto deposit --amount <n> --description "<desc>" # request deposit / top up (bundles wallet setup)
lobstercash crypto tx create|approve|status # low-level transaction management
lobstercash cards request --amount <n> --description "<desc>" # request virtual card
lobstercash cards list # list cards (includes card-id)
lobstercash cards reveal --card-id <id> --merchant-name "..." --merchant-url "https://..." --merchant-country US # checkout credentials
lobstercash browser open <url> # start browser session, navigate to URL
lobstercash browser act "<instruction>" # perform action (e.g. "click add to cart")
lobstercash browser extract "<query>" # extract data (e.g. "product names and prices")
lobstercash browser observe # list actionable elements on current page
lobstercash browser screenshot # take a screenshot
lobstercash browser fill-card --card-id <id> --merchant-name "..." --merchant-url "https://..." --merchant-country US # fill payment form (server-side)
lobstercash browser close # close browser sessionOutput Contract
- All commands produce human-readable output to stdout.
- Errors go to stderr as plain text.
- Exit 0 = success. Exit 1 = unexpected error. Exit 2 = wallet not set up (use or
cards requestto set up).crypto deposit
Decision Tree
- Read examples if the user wants to browse working examples, or has no specific task yet
- Read status if the user asks about agent status or payment readiness
- Read balance if the user wants to check token balances
- Read cards request if the user wants to request a virtual card for a purchase (Credit Card Path)
- Read deposit if the user wants to deposit USDC, top up their wallet, or fund a crypto operation
- Read cards if the user needs to list or reveal credentials for an existing virtual card
- Read browser if the user wants to browse a website, complete a checkout, find products, or interact with a web page
- Read send if the user wants to send tokens to an address (Crypto Path)
- Read x402 if the user wants to pay for an API via x402 protocol (Crypto Path)
- Read tx if the user needs to sign or submit a transaction from an external tool (Crypto Path)
- Read setup if the user wants to link the agent to a wallet without making a purchase
- Read agents if the user wants to register, list, or set the active agent
Anti-Patterns
- Running crypto commands without checking status first: Always run before
lobstercash status,crypto send, orcrypto x402 fetch. If the wallet isn't configured or has insufficient funds, the command will fail with a confusing error. Check first, fund if needed, then execute.crypto tx create - Running setup when the user wants to buy something: If the user wants to make a purchase, don't run first — use
setuporcards requestwhich bundle setup automatically. Only usecrypto depositwhen the user explicitly wants to link the agent to their wallet without buying anything.lobstercash setup - Re-running setup when the agent is already configured: If shows the wallet is already configured, do not generate a new setup session. The existing configuration is valid. Only start a fresh setup if the user explicitly tells you their current configuration is broken and needs to be regenerated.
lobstercash status - Asking the user for info the CLI can fetch: Check balance before sending. Check status before acting. Read command output before asking questions.
- Running write commands in loops: One attempt, read the result, then decide. Read operations (,
crypto balance,status) are idempotent and safe to repeat. Write operations (examples,crypto send) are not.cards request - Ignoring terminal status: A pending transaction is not a success. All write commands now wait for on-chain confirmation by default.
- Polling for HITL approval: When a command returns an approval URL, the user must tell you they approved. Do not auto-poll.
- Running commands before registering an agent: Always ensure an agent exists via before running any other command. If you need to work with a different agent, use
lobstercash agents list.lobstercash agents set-active - Recommending cards for crypto-only integrations: If the integration only uses crypto, don't suggest a virtual card.
- Requiring USDC for card-supported integrations: Virtual cards are backed by credit cards, not USDC. Don't tell the user to "add funds" when the integration accepts cards.
- Treating x402/send/tx as separate user flows: They all go through the same Crypto Path. The only split is credit card vs crypto.
- Suggesting or
crypto depositwhen the user just wants to connect: If the user wants to check balance, run a crypto command, or simply link their wallet — without topping up or creating a card — guide them throughcards requestfirst. Don't jump tolobstercash setuporcrypto depositunless the user actually wants to fund the wallet or make a purchase.cards request - Jumping to readiness checks before showing options: Show what's available first (via ), then check payment readiness only when the user wants to try one.
examples - Assuming an integration's payment method: Never guess whether a flow uses cards or crypto. Run and read the payment methods output before choosing a path.
lobstercash status - Hallucinating product URLs or paths: Never guess URLs beyond the root domain. You cannot know the correct path structure for any website — ,
/w/socks,/category/socksare all guesses. Always/shop/socksthe homepage (browser open), then usehttps://example.comto search or navigate the site's own UI to find products.browser act - Placing orders without user confirmation: Always ask the user to confirm before clicking "place order" or similar. Show a screenshot or remind them to check the live view URL.
- Revealing card credentials manually when using browser checkout: Use instead of
browser fill-card. The fill-card command handles credentials server-side so they never reach the agent. Only usecards revealwhen the user needs to manually paste credentials into a site you can't browser-automate.cards reveal - Forgetting to share the live view URL: When opening a browser session, always tell the user the live view URL so they can watch what's happening.
- Running browser commands without an open session: All browser commands except require an active session. If no session exists, run
openfirst.browser open - Leaving browser sessions open: Close sessions with when checkout is done. Sessions consume resources on the provider.
browser close