بنقرة واحدة
keypo-shopping
// MUST LOAD for any shopping, buying, gift, or product request. Secure Shopify checkout with biometric vault.
// MUST LOAD for any shopping, buying, gift, or product request. Secure Shopify checkout with biometric vault.
Use when managing Secure Enclave signing keys or encrypted secrets. Use for creating/listing/deleting P-256 keys, signing digests, running commands with secrets injected via vault exec, storing/retrieving encrypted secrets. Also use when an agent needs API keys, private keys, or credentials injected into a subprocess without exposing them. Use vault sessions for unattended agent workflows that need repeated access to protected secrets.
Use when the user asks to buy a product from the Shopify store. Orchestrates checkout with credit card details injected via keypo-signer vault exec (biometric policy — Touch ID required).
Use when interacting with keypo-wallet — checking wallet balances, listing wallets, sending transactions, or managing Secure Enclave signing keys. Use `keypo-wallet wallet-list` to list wallets, `keypo-wallet balance` to check balances, `keypo-wallet send` to send transactions, and `keypo-wallet batch` for multi-call operations. Never use raw RPC calls, curl, or cast for balance queries — keypo-wallet has built-in commands. Also use when composing keypo-wallet as the secure execution backend for other EVM protocol skills (Uniswap, Aave, ENS, etc.).
Use when the user wants to swap tokens on Base Sepolia (or Base mainnet) using Uniswap V3. Handles any ERC-20 token pair including ETH wrapping/unwrapping. The agent discovers pools, gets quotes, constructs calldata, and executes swaps via keypo-wallet. Also use when the user says "swap", "trade", "exchange tokens", "buy USDC", "sell WETH", or asks about Uniswap liquidity or pricing on Base. Requires Foundry (cast) for read calls and keypo-wallet for transaction execution.
Use when a user provides a smart contract address and wants to generate a reusable SKILL.md file for interacting with that contract through keypo-wallet. Analyzes verified contracts by fetching their ABI, categorizes functions, and outputs a complete agent skill file with verified addresses, function signatures, calldata encoding instructions, and keypo-wallet execution commands. Also use when a user says "make a skill for this contract", "generate a skill", or "I want to interact with this contract using keypo-wallet". Requires Foundry (cast) to be installed.
Interact with Wrapped Ether (WETH) at 0x4200000000000000000000000000000000000006 on Base Sepolia. Wrap and unwrap ETH, check balances, and manage ERC-20 WETH allowances. Use with keypo-wallet for transaction execution — use `cast calldata` to encode function calls and pipe to `keypo-wallet send` or `keypo-wallet batch`.
| name | keypo-shopping |
| description | MUST LOAD for any shopping, buying, gift, or product request. Secure Shopify checkout with biometric vault. |
| version | 2.0.0 |
| author | Keypo |
| metadata | {"hermes":{"tags":["shopping","checkout","purchase","comparison","profiles","gifts","scheduled","shopify","keypo"],"category":"keypo","requires_toolsets":[],"requires_tools":[]}} |
Buy products from Shopify stores with biometric-protected checkout. The agent finds products and confirms with the user — card data stays in the hardware vault and is never exposed to the agent.
keypo_approvekeypo_approve is the ONLY way to purchaseThe ONLY tool for purchasing is keypo_approve. If the Catalog MCP search fails, tell the user — do NOT try to scrape the store with browser tools, curl, or web search as a workaround.
Before routing any purchase intent, check Hermes memory for relevant profiles (self or gift). If a profile exists, use its preferences to inform search queries and product selection.
| # | User Intent | Route |
|---|---|---|
| 1 | Set up or update shopping preferences / taste profile | Load references/profiling.md |
| 2 | Set up a gift profile or buy a gift for someone | Load references/gift-shopping.md |
| 3 | Set up recurring / weekly shopping | Load references/scheduled-shopping.md |
| 4 | Ask about vault security, card protection, how secrets work | Load references/vault-concepts.md |
| 5 | Buy a single item from a specific store | Core Checkout Procedure (below) |
| 6 | Buy a single item, no store specified | Load references/comparison-shopping.md, then Core Checkout |
| 7 | Buy multiple items | Load references/comparison-shopping.md (if stores not specified), then references/batch-purchasing.md |
| 8 | Any keypo_approve error | Load references/checkout-errors.md |
| 9 | Intent unclear | Ask the user what they'd like to do |
This is the single-item, known-store purchase flow. All other flows converge here.
Browse to the product on the Shopify store. The user may provide a URL directly.
Check for /products/ in the URL path. Non-Shopify stores are NOT supported — tell the user.
Format: https://<store>/products/<handle> (include ?variant=<id> if applicable).
Extract the product price from the page.
max_price = displayed price x 1.15 (15% buffer for tax/shipping).
Show: product name, store, price, max_price, quantity. Ask: "Would you like me to proceed?" Do NOT call any tools until the user says yes.
Call 1 — Stage the request:
keypo_approve(
action="request",
vault_label="biometric",
bio_reason="Approve purchase: <product name>, $<price>",
manifest={"product_url": "<URL>", "quantity": 1, "max_price": <max_price>}
)
This returns a request_id. Save it.
Call 2 — Confirm (triggers Touch ID):
keypo_approve(
action="confirm",
request_id="<request_id from Call 1>"
)
CRITICAL: Call 1 and Call 2 must be sequential (NOT parallel). Call 2 depends on the request_id from Call 1. Do NOT wait for user input between the two calls.
Call keypo_approve(action="cancel", request_id="...") if already staged, or do nothing.
ORDER_CONFIRMED:): Share the confirmation numberreferences/checkout-errors.md for handling guidancekeypo_approve| Action | Description |
|---|---|
request | Stage a purchase request. Returns request_id. Params: vault_label, bio_reason, manifest |
confirm | Execute the staged request with biometric approval. Param: request_id |
cancel | Cancel a staged request before confirmation. Param: request_id |
Planned:
batch_request(one biometric prompt for multiple checkouts) andbudget_status(daemon-side spend ledger) are planned daemon enhancements not yet available.
mcp_shopify_catalog_search_global_productsSearch across all Shopify stores. Params: query, context, saved_catalog, available_for_sale, limit, max_price.
mcp_shopify_catalog_get_global_product_detailsGet variant-level detail for a specific product. Param: product UPID. Only call when you need sizes, flavors, or colors.