HTTP 402 вернулся: ИИ (искусственный интеллект) начинает самостоятельно оплачивать API
Ваш интеллектуальный агент должен вызвать интерфейс. Обычные пути полностью разработаны для людей: регистрация аккаунта, подтверждение электронной почты, привязка кредитной карты, получение API-ключа, выбор уровня подписки ------ чтобы использовать 17 раз, сначала купите пакет на 10000 раз.
На самом деле есть и четвертый путь, и ему уже 30 лет: HTTP статус-код 402 Payment Required, который был зарезервирован в первоначальной спецификации HTTP с пометкой «для будущего использования». Будущее наступило. Протокол x402 (v2, поддерживаемый Coinbase) превращает 402 в рабочий платежный хэндшейк: сервер возвращает предложение, агент подписывает авторизацию на оплату стейблкоином, расчетная сторона завершает перевод в блокчейне, интерфейс сразу возвращает результат ------ без аккаунта, без ключа, без подписки. Оплата сама по себе является аутентификацией.
Это не обзор белой книги. Каждый шаг ниже был протестирован на реальном онлайн-интерфейсе (тестовая служба: call402.com, публично работающий сервис x402), предложения и возвращенные данные являются реальными, ни одно из них не является иллюстрацией.
Первый шаг: сначала запросите цену ------ реальный прайс-лист
Не платя, напрямую вызывая любой интерфейс, вы получите HTTP 402 и машинно-читаемый прайс-лист:
BASH копировать
curl -X POST https://call402.com/api/phone-lookup \
-H 'Content-Type: application/json' \
-d '{"number": "+14155552671"}'
JSON копировать
{
"x402Version": 2,
"accepts": [{
"scheme": "exact",
"network": "eip155:8453",
"amount": "5000",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"payTo": "0xAc6F1C3C3b17040730F16dC24Ee9993e9565BE4A",
"maxTimeoutSeconds": 300,
"extra": { "name": "USD Coin", "version": "2" }
}]
}
Считайте это ценником: amount - это минимальная единица, 5000 - это 0.005 долларов (USDC имеет 6 знаков после запятой); asset - контракт USDC на базе; payTo - получатель; у вас есть 300 секунд, чтобы заплатить по этому предложению.
Второй шаг: оплата и вызов ------ всего столько кода покупателя
С помощью официальной библиотеки TypeScript полный код покупателя выглядит так:
TYPESCRIPT копировать
import { wrapFetchWithPayment } from "@x402/fetch";
import { x402Client } from "@x402/core/client";
import { ExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";
const signer = privateKeyToAccount(process.env.EVM_PRIVATE_KEY as `0x${string}`);
const client = new x402Client();
client.register("eip155:*", new ExactEvmScheme(signer));
const fetchWithPay = wrapFetchWithPayment(fetch, client);
const res = await fetchWithPay("https://call402.com/api/phone-lookup", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ number: "+14155552671" }),
});
console.log(await res.json());
// Расчетный документ возвращается в заголовке PAYMENT-RESPONSE:
const proof = res.headers.get("PAYMENT-RESPONSE");
if (proof) {
const settlement = JSON.parse(Buffer.from(proof, "base64").toString("utf8"));
console.log("tx:", settlement.transaction, "payer:", settlement.payer);
}
BASH копировать
npm i @x402/fetch @x402/core @x402/evm viem
Обертка, увидев 402, будет строить авторизацию на оплату EIP-3009 по предложению, добавляя подпись для повторной попытки, расчетная сторона сразу завершит этот перевод USDC на базе. Возвращается обычный JSON:
JSON копировать
{ "valid": true, "country": "US", "type": "FIXED_LINE_OR_MOBILE",
"e164": "+14155552671", "national": "(415) 555-2671" }
Другие интерфейсы этого магазина ------ и любые продавцы x402 ------ используются точно так же. Один покупатель, обходит все магазины.
Третий шаг: не верьте 200, проверьте расчет самостоятельно
Раскройте заголовок PAYMENT-RESPONSE (он закодирован в Base64 JSON), проверьте три вещи: эта транзакция действительно существует в браузере Base и статус успешен; запись перевода USDC действительно поступила с вашего адреса на payTo в предложении; сумма и предложенная amount совпадают до копейки. Если хотя бы одно из трех не совпадает, запишите это и остановитесь ------ не платите еще раз.
На практике вы столкнетесь с несколькими проблемами:
Четвертый шаг: установите бюджетную дисциплину для кошелька
Способный подписывать агент - это агент, который может тратить деньги. Четыре правила делают его скучным:
- Ограничение на одну транзакцию (например, 0.01 долларов) и суточное ограничение (например, 1 доллар) должны проверяться до подписания.
- Белый список доменов и активов ------ покупатель должен отклонять любые предложения вне белого списка.
- Специальный кошелек, в который помещаются только лимитированные средства, никогда не используйте основной кошелек.
- Книга расходов, которая только увеличивается и не изменяется: хэш транзакции, интерфейс, сумма, регулярно сверяйте с переводами в блокчейне.
В конце оставим один вопрос
Если у вашего агента есть кошелек с бюджетом 1 доллар в день, что вы позволите ему купить в первую очередь? А что вы никогда не позволите ему трогать? Как только этот вопрос будет решен, возможности, которые агент сможет реализовать, значительно увеличатся ------ а то, где каждый проведет черту, возможно, будет более решающим, чем сама технология.


Популярные статьи











