x402 API для запуска AI-аудита
Публичный paid API TCCC-AI: клиент получает HTTP 402, оплачивает USDC через x402 и после успешной оплаты сразу запускает аудит проекта.
Что это
Это не общий API личного кабинета. Это отдельный публичный вход для агентов и приложений, которые умеют платить по x402.
Внутренние site API требуют авторизацию пользователя. x402 endpoints сами являются payment gate: без платежа они возвращают 402 Payment Required, после оплаты создают задачу и запускают аудит.
Поток оплаты
- Клиент отправляет POST-запрос на x402 endpoint.
- Если оплаты нет, сервер возвращает 402 Payment Required с доступными сетями, суммой, asset и payTo.
- x402-клиент выбирает сеть, подписывает payment authorization и повторяет запрос.
- После verify/settle сервер создаёт task или batch и запускает аудит.
- Клиент получает task id и URL для мониторинга статуса, результата и HTML-отчёта.
Endpoints
POST /api/x402/create-audit
Запускает один аудит после успешной x402-оплаты.
POST /api/x402/create-batch
Создаёт batch из нескольких аудитов и запускает обработку после успешной оплаты.
Поддерживаемые сети
Сейчас сервер предлагает три варианта оплаты. Клиент может выбрать любой supported payment requirement из ответа 402.
- Base:
eip155:8453, USDC0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 - Monad:
eip155:143, USDC0x754704Bc059F8C67012fEd69BC8A327a5aafb603 - Solana:
solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp, USDCEPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
Request: один аудит
Минимально нужен URL проекта. Язык можно передать как ru или en.
curl -X POST https://tcccai.xyz/api/x402/create-audit \
-H "Content-Type: application/json" \
-d '{
"url": "https://utexo.com",
"language": "ru"
}'
Request: batch
Для нескольких проектов передайте urlsText: по одному URL на строку. После URL можно указать token/тикер.
curl -X POST https://tcccai.xyz/api/x402/create-batch \
-H "Content-Type: application/json" \
-d '{
"urlsText": "https://example.com\nhttps://utexo.com UTXO",
"language": "ru"
}'
Ответ без оплаты: 402 Payment Required
Если payment headers не переданы, endpoint вернёт 402 и заголовок PAYMENT-REQUIRED. Внутри — resource и массив accepts с доступными способами оплаты.
{
"x402Version": 2,
"error": "Payment required",
"resource": {
"url": "https://tcccai.xyz/api/x402/create-audit",
"description": "TCCC AI single audit"
},
"accepts": [
{
"scheme": "exact",
"network": "eip155:8453",
"amount": "5000000",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"payTo": "0xaeac266a4533cb0b4255ea2922f997353a18b2e8",
"maxTimeoutSeconds": 300
}
]
}
amount указан в atomic units USDC: 5000000 = 5 USDC.
Пример клиента на @x402/fetch
Для EVM-кошелька можно использовать @x402/fetch. Приватный ключ должен храниться только на стороне клиента/агента, который платит; не отправляйте его в API TCCC-AI.
import { wrapFetchWithPaymentFromConfig } from "@x402/fetch";
import { ExactEvmScheme } from "@x402/evm";
import { privateKeyToAccount } from "viem/accounts";
const account = privateKeyToAccount(process.env.EVM_PRIVATE_KEY);
const fetchWithPayment = wrapFetchWithPaymentFromConfig(fetch, {
schemes: [
{
network: "eip155:*",
client: new ExactEvmScheme(account)
}
]
});
const response = await fetchWithPayment("https://tcccai.xyz/api/x402/create-audit", {
method: "POST",
headers: { "content-type": "application/json" },
body: JSON.stringify({
url: "https://utexo.com",
language: "ru"
})
});
const data = await response.json();
console.log(data);
Успешный ответ после оплаты
После успешной оплаты аудит уже создан и запущен. В ответе есть готовые ссылки для мониторинга.
{
"success": true,
"task": {
"id": "tccc-mp28gi7dx0fn7",
"url": "https://utexo.com",
"status": "processing_parallel",
"status_url": "https://tcccai.xyz/api/tasks/tccc-mp28gi7dx0fn7",
"result_url": "https://tcccai.xyz/api/tasks/tccc-mp28gi7dx0fn7/result",
"report_url": "https://tcccai.xyz/output/tccc-mp28gi7dx0fn7/index.html"
},
"status_url": "https://tcccai.xyz/api/tasks/tccc-mp28gi7dx0fn7",
"result_url": "https://tcccai.xyz/api/tasks/tccc-mp28gi7dx0fn7/result",
"report_url": "https://tcccai.xyz/output/tccc-mp28gi7dx0fn7/index.html",
"price_usd": 5,
"payment_provider": "x402"
}
Как получать статус и результат
Пока аудит выполняется, status_url возвращает текущий статус. Когда задача завершена, result_url отдаёт Markdown/JSON, а report_url открывает HTML-отчёт.
GET https://tcccai.xyz/api/tasks/tccc-mp28gi7dx0fn7
GET https://tcccai.xyz/api/tasks/tccc-mp28gi7dx0fn7/result
GET https://tcccai.xyz/output/tccc-mp28gi7dx0fn7/index.html
{
"id": "tccc-mp28gi7dx0fn7",
"url": "https://utexo.com",
"status": "completed",
"status_url": "https://tcccai.xyz/api/tasks/tccc-mp28gi7dx0fn7",
"result_url": "https://tcccai.xyz/api/tasks/tccc-mp28gi7dx0fn7/result",
"report_url": "https://tcccai.xyz/output/tccc-mp28gi7dx0fn7/index.html"
}
Важные замечания
- Не отправляйте приватные ключи в TCCC-AI API. Ключ нужен только вашему x402-клиенту для подписи оплаты.
- Цена берётся из публичной цены аудита сайта; batch считается как цена одного аудита × количество проектов.
- Остальные API личного кабинета не являются публичным developer API и требуют авторизацию пользователя.