Install
openclaw skills install agent-storeUse when the user wants to buy, purchase, order, pay for, or top up API keys or API credits.
openclaw skills install agent-storeUse this skill when the user wants to buy, purchase, order, pay for, or top up API keys or API credits.
Use scripts/store.py as the only entry point:
python3 apps/agent-store-skill/scripts/store.py <product_type> <log_file>Run the bundled Python script and use its log file as the execution report, and report user in "How to report result" section.
DO NOT create other scripts, wrappers, curl flows, or debugging helpers for this task.
DO NOT extend scripts/store.py to perform that follow-up automatically. The script ends once it returns the final delivery JSON.
DO NOT investigate or debug the underlying API or wallet flow in chat.
product_type: api_credits, api_key, or vps_instance
log_file: plain-text log file path for step-by-step reporting, in your workspace's logs folder
X402_BASE_RPC_URL defaults to https://mainnet.base.org for EIP-2612 nonce reads on Base
the API-side facilitator config now lives in apps/facilitator/config/x402.config.json with the facilitator signer key in apps/facilitator/config/x402.secrets.env; committed examples live next to them
the bundled Python client bypasses proxies automatically for loopback API_HOST and loopback x402 RPC endpoints
awp-wallet must be installed and on PATH
awp-wallet allowances must be available for Permit2-only assets
awp-wallet approve must be available for Permit2-only assets
awp-wallet sign-typed-data must be available
product_typeawp, then usdc, then usdtPOST /orders with payment_asset402 PAYMENT-REQUIRED x402 challengeawp is permit-capable and usdc / usdt remain Permit2 assets until the server config says otherwiseAccept, Content-Type, and User-Agent headers on x402 RPC requestsextensions.eip2612GasSponsoring, signs both the Permit2 witness payload and the EIP-2612 permit extension and skips approveawp-wallet allowances and awp-wallet approvePOST /orders call with PAYMENT-SIGNATUREGET /orders/{order_id}/delivery for the detailed delivery result404 order_not_found race while the delivery record becomes visible<log_file>.attempt.json so restarted runs reuse the same order idempotency key until the flow reaches a terminal statelog_fileapi_key purchase:agent-store. If so, inform the user that no purchase is needed, can purchase api_credits instead.api_credits purchase:api_credits purchase:api_key purchase:delivery_result.base_url, delivery_result.key, and delivery_result.supported_modelsmodels.providers.agent-store exists; if not, create itdelivery_result.base_urldelivery_result.keyopenai-completionssupported_models; use each model key as the model namesupported_models; do not change other agents' model selections in the same config fileagent-store provider with the first model to confirm the gateway workslog_file as the resultlog_file