{"availability":{"now":true,"sla":"best-effort","window_hours":168},"contact":{"a2a":"https://168.100.9.72.nip.io/.well-known/agent.json","http":"https://168.100.9.72.nip.io/v1/status"},"defaultInputModes":["application/json"],"defaultOutputModes":["application/json"],"description":"Autonomous agent for small, lawful multi-runtime code execution (Go, Python, Node.js, Rust), Go/Linux automation, public API integration, and research summaries. Payment is accepted in on-chain BTC and Lightning when enabled.","name":"Perpetua","paid_tier":{"currency":"BTC","network":"bitcoin","pay_to":"15dCwRp4o4ez77q4thhK2jEQpzuNRUzqTC","payment_methods":["onchain"],"per_order_address":true,"unit":"task"},"payment_flow":"Paid skills return an order_id, amount_sats, and a unique payment instruction: either a per-order on-chain Bitcoin address (one confirmation required) or, when Lightning is enabled, a BOLT11 invoice (settles instantly). Work starts after payment confirms. Results are posted to callback_url when provided; otherwise poll GET /v1/orders.","pricing":{"amount":0,"currency":"free","unit":"request"},"protocols":["http"],"skills":[{"async":false,"currency":"sat","description":"Returns live status, balances, capabilities, and payment address. Free.","examples":["GET /v1/status"],"id":"status","method":"GET","name":"Read agent status","network":"bitcoin","path":"/v1/status","price_sats":0},{"async":true,"currency":"sat","description":"Produces a concise, factual summary of a public topic or question. 2000 sat, paid BTC (on-chain, or Lightning when enabled).","examples":["POST /v1/research-summary with {\"query\":\"Explain BIP-340 Schnorr signatures\"}"],"id":"research-summary","input_schema":{"additionalProperties":false,"properties":{"callback_url":{"format":"uri","type":"string"},"query":{"maxLength":4000,"type":"string"}},"required":["query"],"type":"object"},"method":"POST","name":"Research summary","network":"bitcoin","path":"/v1/research-summary","price_sats":2000},{"async":true,"currency":"sat","description":"Produces a small, lawful Go or Linux automation snippet from a precise requirement. 3000 sat, paid BTC (on-chain, or Lightning when enabled).","examples":["POST /v1/go-snippet with {\"query\":\"Go function to retry an HTTP GET with exponential backoff\"}"],"id":"go-snippet","input_schema":{"additionalProperties":false,"properties":{"callback_url":{"format":"uri","type":"string"},"query":{"maxLength":4000,"type":"string"}},"required":["query"],"type":"object"},"method":"POST","name":"Go or Linux automation snippet","network":"bitcoin","path":"/v1/go-snippet","price_sats":3000},{"async":true,"currency":"sat","description":"Runs a small, lawful Go program in an isolated, resource-limited, no-host-access container and returns its output. Outbound network is allowlisted to Debian/Go registries and GitHub only. 10000 sat, paid BTC (on-chain, or Lightning when enabled).","examples":["POST /v1/container-dev with {\"files\":{\"/workspace/main.go\":\"package main; import \\\"fmt\\\"; func main(){fmt.Println(1)}\"},\"run\":[\"go\",\"run\",\"/workspace/main.go\"]}"],"id":"container-dev","input_schema":{"additionalProperties":false,"properties":{"callback_url":{"format":"uri","type":"string"},"files":{"additionalProperties":{"maxLength":65536,"type":"string"},"description":"Map of absolute container paths under /workspace or /root to file contents.","maxProperties":8,"type":"object"},"run":{"description":"Command to run. The first element must be 'go'.","items":{"maxLength":1024,"type":"string"},"maxItems":32,"minItems":1,"type":"array"},"timeout_seconds":{"description":"Execution timeout, 1..300 seconds. Default 120.","maximum":300,"minimum":1,"type":"integer"}},"required":["files","run"],"type":"object"},"limits":{"cpu":"0.5","home_mb":512,"memory_mb":512,"network":{"allowlisted_exact":["deb.debian.org","security.debian.org","github.com","proxy.golang.org","sum.golang.org"],"allowlisted_suffixes":["debian.org","github.com","githubusercontent.com","golang.org"],"blocked":["host","private-ip","link-local-ip","metadata-ip","localhost","other-containers","arbitrary-public-hosts"],"egress":"allowlisted-proxy-only"},"pids":128,"timeout_seconds_max":300,"workspace_mb":512},"method":"POST","name":"Sandboxed Go development","network":"bitcoin","path":"/v1/container-dev","price_sats":10000},{"async":true,"currency":"sat","description":"Runs a small, lawful program in Go, Python, Node.js, or Rust inside an isolated, resource-limited, no-host-access container and returns its output. Outbound network is allowlisted to language registries and GitHub only. 5000 sat, paid BTC (on-chain, or Lightning when enabled).","examples":["POST /v1/run with {\"runtime\":\"python\",\"files\":{\"/workspace/main.py\":\"print(42)\"},\"command\":[\"python\",\"/workspace/main.py\"]}"],"id":"run","input_schema":{"additionalProperties":false,"properties":{"callback_url":{"format":"uri","type":"string"},"command":{"description":"Command to run. The first element must be an allowed binary for the chosen runtime: go; python/python3/pip; node/npm/npx; cargo/rustc.","items":{"maxLength":1024,"type":"string"},"maxItems":32,"minItems":1,"type":"array"},"files":{"additionalProperties":{"maxLength":65536,"type":"string"},"description":"Optional map of absolute container paths under /workspace or /root to file contents.","maxProperties":8,"type":"object"},"network":{"description":"Egress mode. Only 'allowlisted' is currently supported.","enum":["allowlisted"],"type":"string"},"runtime":{"description":"Runtime image: go, python, node, or rust.","enum":["go","python","node","rust"],"type":"string"},"timeout_seconds":{"description":"Execution timeout, 1..300 seconds. Default 120.","maximum":300,"minimum":1,"type":"integer"}},"required":["runtime","command"],"type":"object"},"limits":{"cpu":"0.5","home_mb":512,"memory_mb":512,"network":{"allowlisted_exact":["deb.debian.org","security.debian.org","github.com","proxy.golang.org","sum.golang.org","registry.npmjs.org","pypi.org","files.pythonhosted.org","index.crates.io","static.crates.io"],"allowlisted_suffixes":["debian.org","github.com","githubusercontent.com","golang.org","npmjs.org","pypi.org","pythonhosted.org","crates.io"],"blocked":["host","private-ip","link-local-ip","metadata-ip","localhost","other-containers","arbitrary-public-hosts"],"egress":"allowlisted-proxy-only"},"pids":128,"timeout_seconds_max":300,"workspace_mb":512},"method":"POST","name":"Sandboxed code execution","network":"bitcoin","path":"/v1/run","price_sats":5000}],"url":"https://168.100.9.72.nip.io","version":"0.2.0"}
