Install
openclaw skills install chutes-x402Build a pay-per-inference proxy for Bittensor Chutes AI. Accept USDC payments for decentralized AI inference using x402.
openclaw skills install chutes-x402Build a pay-per-inference proxy for Bittensor Chutes (Subnet 64). Accept USDC payments on Base and forward requests to Chutes' decentralized AI network.
Use this skill when the user wants to:
| User Says/Asks | What to Do |
|---|---|
| "Create a Chutes proxy" | Run x402 create chutes-proxy my-proxy |
| "I want to sell AI inference" | Scaffold the proxy, explain the business model |
| "How do I accept payments for AI?" | Explain x402 + Chutes, offer to scaffold |
| "Set up Bittensor integration" | Run the create command |
| "What models does Chutes support?" | List models (DeepSeek, Llama, Qwen, etc.) |
npx @primersystems/x402 create chutes-proxy my-ai-proxy
cd my-ai-proxy
npm install
cp .env.example .env
# Edit .env with your Chutes API key and wallet address
npm run dev
pip install primer-x402
x402 create chutes-proxy my-ai-proxy
cd my-ai-proxy
pip install -r requirements.txt
cp .env.example .env
# Edit .env with your Chutes API key and wallet address
uvicorn main:app --reload
User Request
|
v
[Your Proxy] -- No payment? --> Return 402 + price
|
v
User signs USDC payment (gasless)
|
v
[Your Proxy] -- Verify payment --> [Primer Facilitator]
|
v
[Chutes API] -- Forward request --> Bittensor Subnet 64
|
v
AI Response returned to user
You pre-pay Chutes with your API credits. Users pay YOU in USDC. You keep the margin.
After scaffolding, edit .env:
| Variable | Description | Required |
|---|---|---|
CHUTES_API_KEY | Your Chutes API key from chutes.ai | Yes |
WALLET_ADDRESS | Your wallet to receive USDC | Yes |
PRICE_PER_1K_TOKENS | Your price in USD (default: 0.001) | No |
FACILITATOR_URL | x402 facilitator (default: Primer's) | No |
cpk_)wrangler login
wrangler secret put CHUTES_API_KEY
wrangler secret put WALLET_ADDRESS
npm run deploy
docker build -t chutes-proxy .
docker run -p 8000:8000 --env-file .env chutes-proxy
fly launch && fly secrets set CHUTES_API_KEY=xxxYour proxy exposes:
| Endpoint | Description | Payment |
|---|---|---|
GET / | Health check | Free |
POST /v1/chat/completions | Chat completions (OpenAI-compatible) | Required |
GET /v1/models | List available models | Free |
Any model on Chutes, including:
deepseek-ai/DeepSeek-V3Qwen/Qwen3-235B-A22Bmeta-llama/Llama-3.1-70B-Instructmeta-llama/Llama-3.1-8B-InstructSee chutes.ai for the full list.
The proxy estimates tokens and charges upfront:
Price = (estimated_tokens / 1000) * PRICE_PER_1K_TOKENS
Set PRICE_PER_1K_TOKENS higher than Chutes' cost to make margin. Example:
stream: true| Who | Why |
|---|---|
| AI agent operators | Give agents paid AI access without API keys |
| API resellers | Wrap Chutes with your branding/pricing |
| Privacy services | AI without accounts or KYC |
| Bittensor miners | Add stablecoin revenue stream |
# Should return 402 Payment Required
curl http://localhost:8787/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"messages":[{"role":"user","content":"Hello"}]}'
# Pay and get response (using x402 CLI)
npx @primersystems/x402 pay http://localhost:8787/v1/chat/completions \
--max-amount 0.01 \
--method POST \
--body '{"messages":[{"role":"user","content":"Hello"}]}'