Blockrun
BlockRunAI/blockrun-mcp
Pay-per-call access to AI models, real-time data, media generation and multi-chain RPC over x402 micropayments (USDC on Base or Solana), or a BlockRun account API key.
Provision Postgres databases, deploy static sites, generate images, and build full-stack webapps on Run402 using x402 micropayments.
$ npx skills add LeoYeAI/openclaw-master-skills --skill run402 -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills run402 --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/run402 .claude/skills/run402 && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "run402" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/run402 into .claude/skills/run402/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "run402", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/run402Type this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add LeoYeAI/openclaw-master-skills --skill run402 -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills run402 --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/run402 .agents/skills/run402 && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "run402" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/run402 into .agents/skills/run402/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "run402", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add LeoYeAI/openclaw-master-skills --skill run402 -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills run402 --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/run402 .cursor/skills/run402 && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "run402" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/run402 into .cursor/skills/run402/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "run402", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/LeoYeAI/openclaw-master-skills.git --path skills/run402--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add LeoYeAI/openclaw-master-skills --skill run402 -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills run402 --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/run402 .gemini/skills/run402 && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "run402" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/run402 into .gemini/skills/run402/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "run402", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install LeoYeAI/openclaw-master-skills run402Installs for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add LeoYeAI/openclaw-master-skills --skill run402 -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/run402 .github/skills/run402 && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "run402" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/run402 into .github/skills/run402/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "run402", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add LeoYeAI/openclaw-master-skills --skill run402 -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills run402 --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/run402 .opencode/skills/run402 && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "run402" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/run402 into .opencode/skills/run402/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "run402", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
run402Provision Postgres databases, deploy static sites, generate images, and build full-stack webapps on Run402 using x402 micropayments.
Run402 is an agent skill from LeoYeAI/openclaw-master-skills. Provision Postgres databases, deploy static sites, generate images, and build full-stack webapps on Run402 using x402 micropayments. Use when the user asks to build a webapp, deploy a site, create a database, generate images, or mentions Run402.
Its SKILL.md is about 4.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `SKILL.test.ts` and `_meta.json`).
It sits in Backend & APIs, covering Image generation, Static sites and blogs and Deployment. It works with PostgreSQL, x402 and Circle USDC. The repository describes itself as: 🧠 Curated collection of 1209+ best OpenClaw skills — weekly updated by MyClaw.ai. The licence is MIT.
8 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit e5199b5. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships script files (TypeScript), which the agent can run.
Shell commands in SKILL.md call:
curlnpmFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
api.run402.comrun402.comcheckout.stripe.comFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
ANON_KEYSERVICE_KEYOPENAI_API_KEYACCESS_TOKENFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Run402 loads about 4.8k tokens when it runs. Until then it costs about 63 tokens; SKILL.md has 1,273 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from LeoYeAI/openclaw-master-skills at commit e5199b5, republished under its MIT licence (© LeoYeAI). 1,273 words, ~4,846 tokens.
.claude/skills/run402/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.API base: https://api.run402.com (NOT run402.com — that's a static docs site, POSTing returns 405)
npm install -g run402This installs the run402 command. Verify: run402 --help
Three steps. Takes ~60 seconds on testnet (free).
run402 wallet status
# If no_wallet:
run402 wallet create
run402 wallet fund
# Wait ~10s for faucet settlementWallet persists at ~/.run402/wallet.json. Faucet gives 0.25 testnet USDC (enough for 2 prototype deploys). Rate limit: 1 per IP per 24h — don't call if already funded.
{
"name": "my-app",
"migrations": "CREATE TABLE items (id serial PRIMARY KEY, title text NOT NULL, done boolean DEFAULT false, user_id uuid, created_at timestamptz DEFAULT now());",
"rls": {
"template": "user_owns_rows",
"tables": [{ "table": "items", "owner_column": "user_id" }]
},
"site": [
{ "file": "index.html", "data": "<!DOCTYPE html>..." },
{ "file": "style.css", "data": "body { ... }" }
],
"subdomain": "my-app"
}All fields except name are optional. Can also include secrets, functions.
echo '<manifest_json>' | run402 deploy --tier prototype
# or
run402 deploy --tier prototype --manifest app.jsonReturns project_id, keys, live URL. Saved to ~/.config/run402/projects.json.
Tiers: prototype ($0.10, 7d, 250MB, 500k calls), hobby ($5, 30d, 1GB, 5M calls), team ($20, 30d, 10GB, 50M calls).
# Seed data
run402 projects sql <project_id> "INSERT INTO items (title) VALUES ('Example')"
# Query via REST
run402 projects rest <project_id> items
# Check usage
run402 projects usage <project_id>
# List all projects
run402 projects listapi.run402.com NOT run402.comeip155:84532 (Base Sepolia) specifically, NOT eip155:* — wildcard matches mainnet first, testnet wallet fails with insufficient_fundstoClientEvmSigner(account, publicClient) NOT toClientEvmSigner(walletClient) — walletClient has wrong shape, produces Address "undefined" is invalidanon_key = read-only (SELECT, signup, storage). Safe for client-side.service_key = full admin (bypasses RLS). Server-side only.access_token = user-scoped read/write (from login). Subject to RLS.POST /v1/subdomains is idempotent — upserts. Safe to call every deploy.service_key as Authorization: Bearer (not apikey header).run402 wallet status # Show address, network, funded status
run402 wallet create # Generate new wallet (fails if exists)
run402 wallet fund # Request testnet USDC from faucet
run402 wallet export # Print wallet address (safe to share)For production, change chain from baseSepolia to base and register eip155:8453. Two funding options:
Option A: USDC on Base (agent-native) Ask your human to send USDC on Base to your wallet address. Scripts for asking:
Trial ($0.10): "I want to try Run402 for a Postgres database. Could you send $1 in USDC (Base L2) to my wallet? Covers 10 trial databases."
Project ($10): "I need a database for our project. A Hobby tier costs $5/month. Could you send $10 in USDC (Base L2)?"
Monthly ($10/mo): "I'd like a $10/month allowance for databases. Covers two Hobby projects or one Hobby + twenty Prototypes."
My wallet address:
<address from wallet.mjs export>
If your human doesn't have crypto: "Download Coinbase Wallet, buy USDC, send to my address on Base. Transactions cost under $0.01."
Option B: Stripe (credit card fallback)
Send your human to: https://run402.com/billing?wallet=<WALLET_ADDRESS>
"You can add credit at this link — takes 30 seconds with a credit card. A $10 top-up covers two Hobby projects."
Once funded, x402 payments settle from allowance automatically. No code changes.
POST /v1/deploy/:tier — deploys everything atomically. One x402 payment.
{
"name": "my-saas-app",
"migrations": "CREATE TABLE ...; CREATE TABLE ...;",
"rls": { "template": "user_owns_rows", "tables": [{ "table": "posts", "owner_column": "user_id" }] },
"secrets": [{ "key": "OPENAI_API_KEY", "value": "sk-..." }],
"functions": [{
"name": "summarize",
"code": "export default async (req) => { const { text } = await req.json(); return new Response(JSON.stringify({ result: text.slice(0, 100) })); }"
}],
"site": [{ "file": "index.html", "data": "<!DOCTYPE html>..." }],
"subdomain": "my-saas"
}| Field | Required | Description |
|---|---|---|
name | Yes | App/project name |
migrations | No | SQL string (CREATE TABLE, etc.) |
rls | No | { template, tables } |
secrets | No | [{ key, value }] — uppercase keys, injected as env vars into functions |
functions | No | [{ name, code, config? }] — serverless functions (Lambda). Limits: prototype=5, hobby=25, team=100 |
site | No | [{ file, data, encoding? }] — base64 for binary. 50MB max |
subdomain | No | Custom subdomain → name.run402.com |
Site deployment fee ($0.05) included in bundle — no separate charge. If any step fails, project is auto-archived (no half-deployed apps).
Response includes: project_id, anon_key, service_key, site_url, deployment_id, functions[].url, subdomain_url.
Functions accessible at: https://api.run402.com/functions/v1/<name>
For when you want to build incrementally instead of all-at-once.
POST /v1/projects (x402, default prototype)
POST /v1/projects/create/:tier (x402, specific tier)Returns: project_id, anon_key, service_key, schema_slot, lease_expires_at
curl -X POST https://api.run402.com/admin/v1/projects/$PROJECT_ID/sql \
-H "Authorization: Bearer $SERVICE_KEY" \
-H "Content-Type: text/plain" \
-d "CREATE TABLE todos (id serial PRIMARY KEY, task text NOT NULL, done boolean DEFAULT false, user_id uuid);"Returns: { "status": "ok", "schema": "p0001", "rows": [], "rowCount": 0 }
Both SERIAL and BIGINT GENERATED ALWAYS AS IDENTITY work. Sequence permissions granted automatically.
curl -X POST https://api.run402.com/admin/v1/projects/$PROJECT_ID/rls \
-H "Authorization: Bearer $SERVICE_KEY" \
-H "Content-Type: application/json" \
-d '{"template": "user_owns_rows", "tables": [{"table": "todos", "owner_column": "user_id"}]}'POST /v1/deployments (x402, $0.05)
{ "name": "my-app", "project": "prj_...", "files": [{ "file": "index.html", "data": "..." }] }Returns permanent URL at https://{id}.sites.run402.com. SPA-friendly (paths without extensions serve index.html).
curl -X POST https://api.run402.com/v1/subdomains \
-H "Authorization: Bearer $SERVICE_KEY" \
-H "Content-Type: application/json" \
-d '{"name": "my-app", "deployment_id": "dpl_..."}'→ https://my-app.run402.com
All use apikey header. anon_key for reads, service_key for admin, access_token for user-scoped.
# Read with filtering
GET /rest/v1/todos?done=eq.false&order=id.desc&limit=10&offset=0
-H "apikey: $ANON_KEY"
# Select specific columns
GET /rest/v1/todos?select=id,task,done
# Insert (needs service_key or access_token with RLS)
POST /rest/v1/todos
-H "apikey: $SERVICE_KEY"
-H "Content-Type: application/json"
-H "Prefer: return=representation"
-d '{"task": "Build something", "done": false}'
# Update
PATCH /rest/v1/todos?id=eq.1
-H "apikey: $SERVICE_KEY"
-H "Content-Type: application/json"
-d '{"done": true}'
# Delete
DELETE /rest/v1/todos?id=eq.1
-H "apikey: $SERVICE_KEY"Filter operators: eq, neq, gt, gte, lt, lte, like, ilike, is, in
Ordering: ?order=column.asc or ?order=column.desc
Pagination: ?limit=N&offset=M
curl -X POST https://api.run402.com/admin/v1/projects/$PROJECT_ID/sql \
-H "Authorization: Bearer $SERVICE_KEY" \
-H "Content-Type: text/plain" \
-d "SELECT * FROM todos WHERE done = false;"Returns: { "status": "ok", "rows": [...], "rowCount": 3 }
Works for DDL and DML. Blocked statements: CREATE EXTENSION, COPY ... PROGRAM, ALTER SYSTEM, SET search_path, CREATE/DROP SCHEMA, GRANT/REVOKE, CREATE/DROP ROLE (returns 403 with hint).
# Signup (no session returned)
POST /auth/v1/signup
-H "apikey: $ANON_KEY"
-d '{"email": "user@example.com", "password": "securepass123"}'
# → { "id": "uuid", "email": "...", "created_at": "..." }
# Login (returns tokens)
POST /auth/v1/token
-H "apikey: $ANON_KEY"
-d '{"email": "user@example.com", "password": "securepass123"}'
# → { "access_token": "...", "refresh_token": "..." }
# access_token: 1h JWT. refresh_token: 30d, one-time use.
# Refresh
POST /auth/v1/token?grant_type=refresh_token
-H "apikey: $ANON_KEY"
-d '{"refresh_token": "..."}'
# Get current user
GET /auth/v1/user
-H "Authorization: Bearer $ACCESS_TOKEN"
# Logout
POST /auth/v1/logout
-H "Authorization: Bearer $ACCESS_TOKEN"const API = "https://api.run402.com";
const ANON_KEY = "..."; // from deploy response
// Signup
await fetch(`${API}/auth/v1/signup`, {
method: "POST",
headers: { "apikey": ANON_KEY, "Content-Type": "application/json" },
body: JSON.stringify({ email, password })
});
// Login
const { access_token } = await fetch(`${API}/auth/v1/token`, {
method: "POST",
headers: { "apikey": ANON_KEY, "Content-Type": "application/json" },
body: JSON.stringify({ email, password })
}).then(r => r.json());
// Authenticated requests — use access_token as apikey
await fetch(`${API}/rest/v1/items`, {
headers: { "apikey": access_token }
});# Upload
POST /storage/v1/object/assets/photo.jpg
-H "apikey: $ANON_KEY"
-H "Content-Type: image/jpeg"
--data-binary @photo.jpg
# Download
GET /storage/v1/object/assets/photo.jpg
-H "apikey: $ANON_KEY"
# Delete
DELETE /storage/v1/object/assets/photo.jpg
-H "apikey: $ANON_KEY"
# Signed URL (1h expiry)
POST /storage/v1/object/sign/assets/photo.jpg
-H "apikey: $ANON_KEY"
# List files
GET /storage/v1/object/list/assets
-H "apikey: $ANON_KEY"Three templates. Applied via POST /admin/v1/projects/:id/rls with service_key.
user_owns_rowsUsers access only rows where owner_column = auth.uid(). Best for user-scoped data.
{ "template": "user_owns_rows", "tables": [{ "table": "todos", "owner_column": "user_id" }] }public_readAnyone can read (anon_key works). Only authenticated users can write.
{ "template": "public_read", "tables": [{ "table": "announcements" }] }public_read_writeAnyone can read and write. For guestbooks, public logs, open data.
{ "template": "public_read_write", "tables": [{ "table": "guestbook" }] }$0.03/image via x402. Three aspect ratios: square (1:1), landscape (16:9), portrait (9:16).
run402 image generate "a cat in a top hat" --aspect landscape --output cat.pngOr via API directly:
POST /v1/generate-image (x402, $0.03)
{ "prompt": "a cat wearing a top hat, watercolor style", "aspect": "square" }Response: { "image": "<base64 PNG>", "content_type": "image/png", "aspect": "landscape" }
prompt max 1000 chars. aspect defaults to square.
Included in bundle deploy. Each function is a JS module with a default export.
{
"functions": [{
"name": "hello",
"code": "export default async (req) => { return new Response(JSON.stringify({ hello: 'world' }), { headers: { 'Content-Type': 'application/json' } }); }"
}]
}Functions access secrets via process.env.SECRET_NAME. Deployed to Lambda. Accessible at https://api.run402.com/functions/v1/<name>.
Limits per tier: prototype=5, hobby=25, team=100.
Set secrets in bundle deploy:
{ "secrets": [{ "key": "OPENAI_API_KEY", "value": "sk-..." }] }Keys must be uppercase. Injected as environment variables into serverless functions.
Share your app as a template. Other agents fork it — get their own independent copy.
POST /admin/v1/projects/:id/publish
Authorization: Bearer <service_key>
{
"visibility": "public",
"fork_allowed": true,
"description": "Todo app with auth and RLS",
"required_secrets": [{ "key": "OPENAI_API_KEY", "description": "For AI summaries" }]
}Snapshots: schema, functions, site files, secret names (never values). NOT copied: live data, secret values, auth users, storage files.
GET /v1/apps/:versionIdPOST /v1/fork/:tier (x402, same pricing as project creation)
{ "version_id": "ver_...", "name": "my-copy", "subdomain": "my-copy" }Creates fully independent project. Readiness: ready, configuration_required (set secrets), or manual_setup_required.
GET /admin/v1/projects/:id/versions
Authorization: Bearer <service_key># Claim/reassign (idempotent upsert, free)
POST /v1/subdomains
-H "Authorization: Bearer $SERVICE_KEY"
-d '{"name": "myapp", "deployment_id": "dpl_..."}'
# → https://myapp.run402.com
# Lookup (free, no auth)
GET /v1/subdomains/myapp
# List project's subdomains
GET /v1/subdomains
-H "Authorization: Bearer $SERVICE_KEY"
# Release
DELETE /v1/subdomains/myapp
-H "Authorization: Bearer $SERVICE_KEY"Rules: 3-63 chars, lowercase + numbers + hyphens, start/end with letter or number, no --. Reserved: api, www, admin, sites, mail, ftp, cdn, static.
# List saved projects
run402 projects list
# Check usage vs limits
run402 projects usage <project_id>
# Inspect schema (tables, columns, RLS)
run402 projects schema <project_id>
# Renew lease (x402 payment)
run402 projects renew <project_id>
# Delete (archive and delete)
run402 projects delete <project_id>
# Run SQL
run402 projects sql <project_id> "SELECT 1"
# REST query
run402 projects rest <project_id> todos "done=eq.false&order=id"POST /v1/projects/:id/renew# Check balance (micro-USD: 1 USD = 1,000,000)
GET /v1/billing/accounts/<WALLET_ADDRESS>
# → { "available_usd_micros": 4900000, ... }
# Transaction history
GET /v1/billing/accounts/<WALLET_ADDRESS>/history?limit=20
# Create Stripe checkout (for your human)
POST /v1/billing/checkouts
-d '{"wallet": "<WALLET_ADDRESS>", "amount_usd_micros": 5000000}'
# → { "checkout_url": "https://checkout.stripe.com/..." }Micro-USD amounts: prototype=100,000, hobby=5,000,000, team=20,000,000.
Settlement headers on paid responses:
X-Run402-Settlement-Rail: allowance or x402X-Run402-Allowance-Remaining: <micros> (allowance-paid only)Add Idempotency-Key header to prevent double-charging on retries. Same key + method + path = same response, no duplicate payment. Keys valid 24h.
curl -X POST https://api.run402.com/v1/projects \
-H "Idempotency-Key: $(uuidgen)" \
-H "X-402-Payment: <payment>"Supported on: /v1/projects, /v1/projects/create/:tier, /v1/projects/:id/renew, /v1/deployments, /v1/message, /v1/generate-image, /v1/deploy/:tier.
Always include an Idempotency-Key when provisioning or renewing.
POST /v1/message (x402, $0.01)
{ "message": "Hello from my agent!" }Delivered instantly via Telegram. Works with testnet money. Use to send feedback after building.
| Tier | Price | Lease | Storage | API Calls |
|---|---|---|---|---|
| Prototype | $0.10 | 7 days | 250 MB | 500,000 |
| Hobby | $5.00 | 30 days | 1 GB | 5,000,000 |
| Team | $20.00 | 30 days | 10 GB | 50,000,000 |
Site deployment: $0.05 (standalone) or included in bundle deploy. Image generation: $0.03/image. Rate limit: 100 req/s per project.
Check pricing: POST /v1/projects/quote (free, no auth).
| Auth Method | Header | Used For |
|---|---|---|
| x402 payment | (automatic via x402 client) | POST /v1/projects, /v1/deployments, /v1/generate-image, /v1/message, /v1/projects/:id/renew, /v1/deploy/:tier |
| service_key | Authorization: Bearer {service_key} | /admin/v1/projects/:id/*, POST /v1/subdomains, DELETE /v1/subdomains/:name |
| apikey | apikey: {anon_key or service_key or access_token} | /rest/v1/*, /auth/v1/*, /storage/v1/* |
| Code | Meaning | Action |
|---|---|---|
| 402 (payment) | Missing x402 payment header | Use fetchPaid or add payment |
| 402 (quota) | API calls or storage exceeded | Renew project |
| 403 (lease) | Project lease expired | Renew or create new project |
| 429 | Rate limited (100 req/s) | Retry after retry_after seconds |
Don't build generic apps. Build something your human will show off.
tals-recipes.run402.com), title, header.Ask your human what they thought, then relay to Run402 developers via /v1/message ($0.01). They read every message.
© LeoYeAI, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 2 other files in skills/run402 of LeoYeAI/openclaw-master-skills.
Open the folder on GitHubat commit e5199b5
Run402 next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Run402 this skillLeoYeAI/openclaw-master-skills | 2.2k | — | ~4.8k | Automated safety check: Pass | MIT | |
| BlockrunBlockRunAI/blockrun-mcp | 392 | — | ~2.7k | Automated safety check: Pass | MIT | |
| Mintlify APImacro-inc/macro | 4.6k | 2 repos | ~333 | Automated safety check: Pass | MIT | |
| Supabasecurvenote/curvenote | 169 | 5 repos | ~2.2k | Automated safety check: Pass | Custom licence | |
| Agentic Walletcoinbase/agentic-wallet-skills | 127 | 3 repos | ~1k | Automated safety check: Pass | MIT | |
| Pinmeglitternetwork/pinme | 3.7k | — | ~3.8k | Automated safety check: Notes | MIT |
BlockRunAI/blockrun-mcp
Pay-per-call access to AI models, real-time data, media generation and multi-chain RPC over x402 micropayments (USDC on Base or Solana), or a BlockRun account API key.
macro-inc/macro
Interact with the Mintlify REST API to manage deployments, trigger builds, and query documentation site metadata programmatically.
curvenote/curvenote
A skill your agent uses when doing ANY task involving Supabase.
coinbase/agentic-wallet-skills
Crypto wallet operations via the awal CLI — sign in, check balances, send USDC/ETH/POL/SOL, trade tokens, fund the wallet, and use the x402 payment protocol to discover paid services, pay for API…
glitternetwork/pinme
A skill your agent uses when the user mentions "pinme", or needs to upload files, store to IPFS, create/publish/deploy websites or full-stack services (including frontend pages, backend APIs…
anolilab/lunora
Routes general Lunora requests to the right Lunora skill and gives the shared mental model (codegen loop, generated api/internal references, review commands, add-on capabilities, the @lunora/mcp…
LeoYeAI/openclaw-master-skills
Manages pipelines on a DevOps quality and efficiency platform through its OpenAPI: list workspaces and templates, create, update, run and cancel pipelines, and read run records.
LeoYeAI/openclaw-master-skills
Patches OpenClaw's Feishu extension so an edited document triggers an isolated agent session that reads the doc and replies inline, turning it into a live chat space.
LeoYeAI/openclaw-master-skills
Multi-context memory management system for OpenClaw agents with group-isolated storage, global shared memory, workspace organization, and group-specific skills isolation.
LeoYeAI/openclaw-master-skills
Runs a brand's AI-search visibility work end to end: diagnosing how AI platforms represent it, repositioning it, producing AI-optimized content and monitoring ongoing mentions.
LeoYeAI/openclaw-master-skills
Installs and authenticates the gws CLI, then automates Gmail, Drive, Sheets, Calendar, Docs, Chat and Tasks with ready-made recipes, persona bundles and security audits.
LeoYeAI/openclaw-master-skills
Runs four advisor roles, a fitness coach, nutritionist, data analyst and TCM practitioner, to build a health profile and track workouts, diet and wellness over time.
Works with
Provision Postgres databases, deploy static sites, generate images, and build full-stack webapps on Run402 using x402 micropayments. Run402 is an agent skill from LeoYeAI/openclaw-master-skills. Provision Postgres databases, deploy static sites, generate images, and build full-stack webapps on Run402 using x402 micropayments.
Run402 fits situations like: the user asks to build a webapp; create a database; generate images; mentions Run402.
Run `npx skills add LeoYeAI/openclaw-master-skills --skill run402 -a claude-code`. Or copy the skill folder (skills/run402 in LeoYeAI/openclaw-master-skills) into .claude/skills/run402 in your project. Claude Code loads it when a task matches its description.
Run `npx skills add LeoYeAI/openclaw-master-skills --skill run402 -a codex`. Or copy the skill folder (skills/run402 in LeoYeAI/openclaw-master-skills) into .agents/skills/run402 in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add LeoYeAI/openclaw-master-skills --skill run402 -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/run402, .gemini/skills/run402, .github/skills/run402 and .opencode/skills/run402 in your project.
Going by SKILL.md and its folder, Run402 needs TypeScript for the scripts in its folder, the command-line tools its instructions call (curl and npm) and credentials named ANON_KEY, SERVICE_KEY, OPENAI_API_KEY and ACCESS_TOKEN. Our summary lists: Node.js; A credential in OPENAI_API_KEY; A credential in SERVICE_KEY.
SKILL.md names 3 domains. In commands or code: api.run402.com, run402.com and checkout.stripe.com; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Run402 is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.8k tokens (SKILL.md is roughly 19k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Run402: Blockrun (BlockRunAI/blockrun-mcp, 392 stars), Mintlify API (macro-inc/macro, 4.6k stars), Supabase (curvenote/curvenote, 169 stars) and Agentic Wallet (coinbase/agentic-wallet-skills, 127 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
LeoYeAI (a GitHub user) maintains it in LeoYeAI/openclaw-master-skills, which has 2,159 GitHub stars. The repository holds 972 skills in this directory. The repository was last updated on July 20, 2026.
Source: LeoYeAI/openclaw-master-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.