x402 Compute
by @ivaavimusic
This skill should be used when the user asks to "provision GPU instance", "spin up a cloud server", "list compute plans", "browse GPU pricing", "extend compu...
clawhub install x402-computeπ About This Skill
name: x402-compute version: 1.2.0 description: | This skill should be used when the user asks to "provision GPU instance", "spin up a cloud server", "list compute plans", "browse GPU pricing", "extend compute instance", "destroy server instance", "check instance status", "list my instances", or manage x402 Singularity Compute / x402Compute infrastructure. Handles GPU and VPS provisioning with USDC payment on Base or Solana networks via x402, and optional MPP/Mppx payment flows for agents that can pay with Tempo or Stripe/card methods. Includes optional OWS-backed auth and management flows. homepage: https://studio.x402layer.cc/docs/agentic-access/x402-compute metadata: clawdbot: emoji: "π₯οΈ" homepage: https://compute.x402layer.cc os: - linux - darwin requires: bins: - python3 allowed-tools: - Read - Write - Edit - Bash - WebFetch
x402 Singularity Compute
Provision and manage GPU/VPS instances paid with x402 or MPP.
Base URL: https://compute.x402layer.cc
x402 Networks: Base (EVM) β’ Solana
x402 Currency: USDC
MPP Methods: Tempo β’ Stripe/card when enabled by the service
Protocol: HTTP 402 Payment Required (X-Payment for x402, Authorization: Payment for MPP)
Access Note: Preferred access is SSH public key. If no SSH key is provided, a one-time password fallback can be fetched once via API.
Quick Start
1. Install Dependencies
pip install -r {baseDir}/requirements.txt
2. Choose Wallet Mode
#### Option A: Direct signing keys (Base or Solana)
# Base (EVM)
export PRIVATE_KEY="0x..."
export WALLET_ADDRESS="0x..."Solana
export SOLANA_SECRET_KEY="base58-or-json-array"
export SOLANA_WALLET_ADDRESS="YourSolanaAddress"
export COMPUTE_AUTH_CHAIN="solana"
#### Option B: OpenWallet / OWS (optional-first)
npm install -g @open-wallet-standard/core
export OWS_WALLET="compute-wallet"
export COMPUTE_AUTH_MODE="ows"
Create COMPUTE_API_KEY (optional) for management endpoints:
python {baseDir}/scripts/create_api_key.py --label "my-agent"
OWS is best for compute auth and routine management flows. Direct x402 provision and extend still use local payment-signing paths. MPP provision/extend should use mppx or Tempo Wallet.
β οΈ Security Notice
> IMPORTANT: This skill handles private keys for signing blockchain transactions. > > - Never use your primary custody wallet - Create a dedicated wallet with limited funds > - Private keys are used locally only - They sign transactions locally and are never transmitted > - For testing: Use a throwaway wallet with minimal USDC
Scripts Overview
| Script | Purpose |
|--------|---------|
| browse_plans.py | List available GPU/VPS plans with pricing |
| browse_regions.py | List deployment regions |
| provision.py | Provision a new instance (x402 payment, --months or --days) |
| create_api_key.py | Create an API key for agent access (optional) |
| list_instances.py | List your active instances |
| instance_details.py | Get details for a specific instance |
| get_one_time_password.py | Retrieve one-time root password fallback |
| extend_instance.py | Extend instance lifetime (x402 payment) |
| destroy_instance.py | Destroy an instance |
| ows_cli.py | Run OpenWallet / OWS wallet, sign-message, and key commands |
| solana_signing.py | Internal helper for Solana x402 payment signing |
Instance Lifecycle
Browse Plans β Provision (pay USDC) β Active β Extend / Destroy β Expired
Instances expire after their prepaid duration. Extend before expiry to keep them running.
Workflows
A. Browse and Provision
# List GPU plans
python {baseDir}/scripts/browse_plans.pyFilter by type (gpu/vps/high-performance)
python {baseDir}/scripts/browse_plans.py --type vcgCheck available regions
python {baseDir}/scripts/browse_regions.pyGenerate a dedicated SSH key once (recommended for agents)
ssh-keygen -t ed25519 -N "" -f ~/.ssh/x402_computeProvision an instance for 1 month (triggers x402 payment)
python {baseDir}/scripts/provision.py vcg-a100-1c-2g-6gb lax --months 1 --label "my-gpu" --ssh-key-file ~/.ssh/x402_compute.pubProvision a daily instance (cheaper, use-and-throw)
python {baseDir}/scripts/provision.py vc2-1c-1gb ewr --days 1 --label "test-daily" --ssh-key-file ~/.ssh/x402_compute.pubProvision for 3 days
python {baseDir}/scripts/provision.py vc2-1c-1gb ewr --days 3 --label "short-task" --ssh-key-file ~/.ssh/x402_compute.pubProvision on Solana
python {baseDir}/scripts/provision.py vc2-1c-1gb ewr --months 1 --label "my-sol-vps" --network solana --ssh-key-file ~/.ssh/x402_compute.pubProvision via MPP / mppx (Tempo by default; Stripe/card if your mppx config supports it)
npx mppx https://compute.x402layer.cc/compute/provision \
-X POST \
-J '{"plan":"vc2-1c-1gb","region":"ewr","os_id":2284,"label":"mpp-vps","prepaid_hours":24,"ssh_public_key":"ssh-ed25519 AAAA... agent"}'If the response includes management_api_key, store it for later instance management:
export COMPUTE_API_KEY="x402c_..."β οΈ After provisioning, wait 2-3 minutes for Vultr to complete setup
Then fetch your instance details (IP, status):
python {baseDir}/scripts/instance_details.py
B. Manage Instances
# Optional: create a reusable API key (avoids message signing each request)
python {baseDir}/scripts/create_api_key.py --label "my-agent"List all your instances
python {baseDir}/scripts/list_instances.pyGet details for one instance
python {baseDir}/scripts/instance_details.py Optional fallback if no SSH key was provided during provisioning
python {baseDir}/scripts/get_one_time_password.py Extend by 1 day
python {baseDir}/scripts/extend_instance.py --hours 24Extend by 1 month
python {baseDir}/scripts/extend_instance.py --hours 720Extend on Solana
python {baseDir}/scripts/extend_instance.py --hours 720 --network solanaExtend via MPP. MPP extension requires compute auth; use the management API key
returned from MPP provisioning or normal wallet signature auth.
npx mppx https://compute.x402layer.cc/compute/instances//extend \
-X POST \
-H "X-API-Key: $COMPUTE_API_KEY" \
-J '{"extend_hours":720}'Destroy
python {baseDir}/scripts/destroy_instance.py
C. OpenWallet / OWS
# List local OWS wallets
python {baseDir}/scripts/ows_cli.py wallet-listSign a Base-compatible compute auth message
python {baseDir}/scripts/ows_cli.py sign-message --chain eip155:8453 --wallet compute-wallet --message "hello"Sign a Solana-compatible compute auth message
python {baseDir}/scripts/ows_cli.py sign-message --chain solana --wallet compute-wallet --message "hello"Create an OWS agent key
python {baseDir}/scripts/ows_cli.py key-create --name codex-compute --wallet compute-wallet
x402 Payment Flow
1. Request provision/extend β server returns HTTP 402 with payment requirements
2. Script signs payment locally:
- Base: USDC TransferWithAuthorization (EIP-712)
- Solana: signed SPL transfer transaction payload
3. Script resends request with X-Payment header containing signed payload
4. Server verifies payment, settles on-chain, provisions/extends instance
For Solana, transient facilitator failures can happen. Retry once or twice if you get a temporary 5xx verify error.
MPP Payment Flow
MPP is available side-by-side with x402 on the same paid endpoints.
1. Request provision/extend -> server returns HTTP 402 with WWW-Authenticate: Payment
2. mppx or Tempo Wallet creates an MPP credential
3. Client retries with Authorization: Payment ...
4. Server verifies the MPP payment, provisions/extends the instance, and returns Payment-Receipt
Notes:
POST /compute/provision can be paid via MPP without wallet auth. In that case the response includes management_api_key; store it because it is shown once and is required for later management.POST /compute/instances/:id/extend via MPP requires compute auth, usually X-API-Key: $COMPUTE_API_KEY.X-Payment header flow.mppx; Stripe/card requires a Stripe-capable MPP client/config.Plan Types
| Type | Plan Prefix | Description |
|------|-------------|-------------|
| GPU | vcg-* | GPU-accelerated (A100, H100, etc.) |
| VPS | vc2-* | Standard cloud compute |
| High-Perf | vhp-* | High-performance dedicated |
| Dedicated | vdc-* | Dedicated bare-metal |
Environment Reference
| Variable | Required For | Description |
|----------|--------------|-------------|
| PRIVATE_KEY | Base payment signing | EVM private key (0x...) |
| WALLET_ADDRESS | Base direct-signing mode | Base wallet address (0x...) |
| SOLANA_SECRET_KEY | Solana direct-signing mode | Solana signer key (base58 or JSON byte array) |
| SOLANA_WALLET_ADDRESS | Solana direct-signing mode | Solana wallet address (optional if derivable from secret) |
| COMPUTE_AUTH_CHAIN | Solana/base auth override | base or solana |
| COMPUTE_API_KEY | Optional | Reusable API key for compute management endpoints |
| COMPUTE_AUTH_MODE | Optional | auto, private-key, or ows |
| OWS_WALLET | OWS auth mode | OWS wallet name or ID |
| OWS_BIN | OWS auth mode | Optional explicit path to the ows executable |
| COMPUTE_API_KEY | MPP/no-wallet management | API key returned once after an MPP provision without wallet auth |
API Reference
For full endpoint details, see:
Resources
OWS scope note
OWS support is optional-first in this release:
π‘ Examples
1. Install Dependencies
pip install -r {baseDir}/requirements.txt
2. Choose Wallet Mode
#### Option A: Direct signing keys (Base or Solana)
# Base (EVM)
export PRIVATE_KEY="0x..."
export WALLET_ADDRESS="0x..."Solana
export SOLANA_SECRET_KEY="base58-or-json-array"
export SOLANA_WALLET_ADDRESS="YourSolanaAddress"
export COMPUTE_AUTH_CHAIN="solana"
#### Option B: OpenWallet / OWS (optional-first)
npm install -g @open-wallet-standard/core
export OWS_WALLET="compute-wallet"
export COMPUTE_AUTH_MODE="ows"
Create COMPUTE_API_KEY (optional) for management endpoints:
python {baseDir}/scripts/create_api_key.py --label "my-agent"
OWS is best for compute auth and routine management flows. Direct x402 provision and extend still use local payment-signing paths. MPP provision/extend should use mppx or Tempo Wallet.