# 54ch10

> **Eyes for agents.** Pay-per-call public URL → markdown for agent loops. GET /v1/fetch at **$0.005** USDC (amount **5000** atomic). Unpaid → HTTP **402** + `PAYMENT-REQUIRED`. Secondary: open/domain risk analytics + whois/dns/tls/normalize/paste/hash/encode. Brand: **54ch10**. Not financial, legal, or investment advice.

Base URL: https://54ch10.uk · Live health: 0.8.7-range-series

## First buy

- **Job:** pay-per-call URL → markdown — GET https://54ch10.uk/v1/fetch?url= at $0.005 USDC (SSRF-safe, amount 5000 atomic). Unpaid → HTTP 402 + PAYMENT-REQUIRED; retry with PAYMENT-SIGNATURE (x402 v2). Drop-in: wire.md (`x402-fetch` + Python `x402`).
- **Wire kit (30s):** https://54ch10.uk/wire.md
- **Install:** https://54ch10.uk/install
- **Hook:** https://54ch10.uk/hook.md
- **Skill:** https://54ch10.uk/skill.md
- **Secondary:** GET /v1/open at $0.015 — brief + domain + page_risk
- **Buy:** GET /v1/stack → **$1 USDC on Base** → 80 calls, header `X-54ch10-Stack`
- **Taste:** GET /v1/fetch/free?url=https://example.com
- **Bulk (LIVE):** https://linksafu.com/bulk · POST /v1/open/batch — stack or N×$0.015, cap 25, paid-only

### Drop-in

```bash
# unpaid — expect HTTP 402 + PAYMENT-REQUIRED
curl -si "https://54ch10.uk/v1/fetch?url=https://example.com"
```

Full JS/Python pay-retry: https://54ch10.uk/wire.md

## Auth / payment

| Mode | How | Limits |
|------|-----|--------|
| **x402** | Unauthenticated paid path → HTTP **402** + `PAYMENT-REQUIRED`; retry with `PAYMENT-SIGNATURE` | $0.001–$100.00 USDC / call (Base preferred) |
| Stripe key | `Authorization: Bearer 54k_…` | **ENFORCED** Solo **500** / Pro **5000** / Team **25000**/mo → HTTP **429** `monthly_quota_exceeded` |
| Demo free | `X-54ch10-Free: 1` or `/v1/<tool>/free` | 5 / UTC-day / IP shared |

Discovery: [GET /.well-known/x402](https://54ch10.uk/.well-known/x402)

## Endpoints

| Path | Price | Query |
|------|-------|-------|
| /v1/brief | $0.01 | type=address\|token\|url&q= |
| /v1/open | $0.015 | q= or url= (brief+whois+page+page_risk/hops) |
| /v1/open/batch | N×$0.015 (cap 25; conc 3; global 10) | POST JSON urls[] — paid-only stack/x402; human https://linksafu.com/bulk |
| /v1/domain | $0.008 | q= or domain= |
| /v1/stack | $1 / $5 / $25 / $100 | pack=1|5|25|100; GET ?id= remaining. Unused credits expire. NOT a vault. Not refundable |
| /v1/whois | $0.005 | domain= |
| /v1/dns | $0.002 | domain= |
| /v1/tls | $0.005 | domain= |
| /v1/normalize-url | $0.001 | q= |
| /v1/hash | $0.001 | algo=&q= (or POST {algo,data}) |
| /v1/encode | $0.001 | format=&q= (or POST {format,data}) |

Indexers must probe paid paths (not `/free`).

## Smoke

```bash
curl -si 'https://54ch10.uk/v1/whois?domain=example.com' | head -20
curl -sS 'https://54ch10.uk/v1/dns/free?domain=example.com' | head -40
```

## MCP

```bash
npx -y github:sachio222/54ch10-mcp
```

## Before you bounce (feedback)

GET /v1/feedback — discovery JSON + curl. POST /v1/feedback — store gap / would_pay_for / contact in D1. Alias POST /feedback. Stats GET /v1/stats.

## Disclaimer

Informational tooling only. Full text: https://54ch10.uk/LEGAL_DISCLAIMER.txt
