x402: jak agent AI płaci za API bez zakładania konta
Każde API w internecie sprzedaje się przez formularz.
Wchodzisz na stronę z cennikiem, wpisujesz e-mail, potwierdzasz go ze skrzynki, wklejasz kartę, kopiujesz klucz i chowasz go do zmiennej środowiskowej. Cztery minuty i działa świetnie — bo jesteś człowiekiem, a ludzie mają skrzynkę pocztową, kartę i cierpliwość.
A teraz wyobraź sobie agenta AI w połowie pętli badawczej. Potrzebuje jednej strony przekonwertowanej na Markdown, natychmiast, żeby dokończyć powierzone mu zadanie. Nie odbierze maila potwierdzającego. Nie ma karty. Nie może czekać, aż człowiek się obudzi i wklei mu klucz.
Więc robi jedyne, co mu zostaje: rezygnuje i używa czegoś innego.
Dokładnie tę lukę zamyka x402 — a od dziś API Minibase odpowiada na nią produkcyjnie.
HTTP miał na to plan już w 1997 roku
Kod statusu 402 Payment Required jest w specyfikacji HTTP od samego początku, z adnotacją „zarezerwowany do przyszłego użytku”. Przez blisko trzydzieści lat pozostawał żartem RFC: kodem, którego nikt nie potrafił wdrożyć, bo sieć nie miała sposobu na przesyłanie drobnych kwot wewnątrz żądania.
x402 to protokół, który wreszcie go używa. Cała rzecz mieści się w trzech krokach:
- Klient woła twój endpoint bez żadnych danych uwierzytelniających.
- Zamiast
401 Unauthorizedserwer odpowiada402 Payment Requiredi dołącza warunki płatności czytelne dla maszyny: ile, w jakim aktywie, w jakiej sieci, na jaki adres. - Klient płaci i powtarza żądanie z dowodem płatności. Serwer weryfikuje, rozlicza i zwraca odpowiedź.
Bez konta. Bez klucza. Bez panelu. Całe negocjowanie mieści się w dwóch wymianach HTTP, w formacie, który potrafi odczytać inny program.
Jak to wygląda na działającym endpoincie
Zawołaj nasz endpoint konwersji bez niczego:
curl -i -X POST https://api.minibase.md/v1/convert \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com/article"}'
Dostajesz 402, a warunki wracają zakodowane w base64 w nagłówku payment-required:
{
"x402Version": 2,
"accepts": [{
"scheme": "exact",
"network": "eip155:8453",
"amount": "10000",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"payTo": "0xfb8157a583e3050440301f418f5e890190222a5c",
"maxTimeoutSeconds": 300
}]
}
Jest tam wszystko, czego potrzebuje autonomiczny klient. network to identyfikator CAIP-2 — eip155:8453 to Base mainnet. asset to kontrakt USDC. amount podano w jednostkach atomowych: USDC ma sześć miejsc po przecinku, więc 10000 to jeden cent. payTo to adres, na który trafiają pieniądze.
Klient podpisuje przelew USDC, powtarza żądanie z dołączoną płatnością i odbiera swój Markdown. Udział człowieka: zerowy.
Część, o której nikt nie mówi: nie musisz trzymać kryptowalut
Oczywisty zarzut wobec każdego hasła „przyjmuj stablecoiny” brzmi: teraz prowadzisz portfel. Klucze prywatne. Przechowywanie. Saldo w czymś, czego twoja księgowa nigdy nie widziała, wycenione po kursie, który zmienił się w nocy.
Nic z tego nie robimy i ty też nie musisz. Adres depozytowy z powyższego payloadu został wystawiony przez Stripe. Płatności rozliczają się on-chain na ten adres, Stripe zapisuje każdą z nich jako zwykły PaymentIntent i wypłaca w euro w normalnym cyklu.
Praktyczna konsekwencja: pieniądze pojawiają się w tym samym panelu co każda płatność kartą, w tej samej wypłacie, w tych samych księgach. Żadnego portfela do zabezpieczenia, żadnej wyceny waluty przy każdym potwierdzeniu, żadnej równoległej ewidencji do uzgodnienia na koniec roku. Część stablecoinowa jest jak najbardziej realna — i zarazem zupełnie niewidoczna od strony księgowej.
Dwie rzeczy, które kosztowały nas czas
Jeśli wdrażasz to samodzielnie, oto dwie pułapki, za które zapłaciliśmy.
Handshake z facilitatorem nie jest opcjonalny. Serwer zasobów musi zapytać facilitatora, jakie pary schemat/sieć faktycznie rozlicza, zanim w ogóle poda cenę. Pomiń ten krok, a dosłownie każde wywołanie umrze na Facilitator does not support exact on eip155:8453 — komunikacie, który wygląda jak błąd konfiguracji, a jest brakującym zapytaniem sieciowym. W mainnecie tym facilitatorem jest ten od Coinbase; publiczny testnetowy nie rozlicza prawdziwych pieniędzy.
Cena poniżej centa po cichu psuje księgowość. Nasz koszt to około 0,002 $ za stronę, więc wycena drzwi x402 na 0,002 $ wydawała się oczywista. Nie jest: PaymentIntenty są wyrażone w pełnych centach, więc wszystko poniżej centa rozlicza się on-chain, a potem nie da się tego w ogóle zaksięgować. Pieniądze przychodzą i nie trafiają do żadnej księgi. Dlatego drzwi bez klucza kosztują u nas 0,01 $ za wywołanie — pięciokrotność naszej stawki wolumenowej, co płatność za wywołanie bez konta i bez zobowiązania spokojnie udźwignie.
Czy warto to dodać?
Bądźmy szczerzy co do skali: x402 nie zastąpi twoich przychodów abonamentowych w tym kwartale. Płatności inicjowane przez agentów są wczesne, narzędzia po stronie klienta młode, a większość twoich klientów to wciąż ludzie z kartą.
Ale asymetria jest nietypowa. Zbudowanie drzwi kosztowało nas kilkaset linii i uruchamiają się wyłącznie dla wywołujących bez żadnych danych uwierzytelniających — każdy posiadacz klucza spada prosto na ścieżkę, którą miał wcześniej, z tym samym limitem i tym samym planem. Nic z tego, co już sprzedajesz, nie jest zagrożone.
A tryb awarii braku tych drzwi jest niewidoczny. Wywołujący bez klucza, który dostaje 401, nie zostawia śladu: żadnej rejestracji, żadnego zgłoszenia, ani jednej linijki w statystykach. Nigdy się nie dowiesz, że tam był. Teraz mierzymy to celowo — każde wywołanie bez poświadczeń jest logowane wraz z informacją, czy wywołujący już mówi w tym protokole — bo „czy ktokolwiek puka?” to jedyne pytanie, które rozstrzyga, czy to wszystko miało sens.
Jeśli agenci mają kupować rzeczy w otwartej sieci, potrzebują sposobu płacenia, który nie prowadzi przez formularz rejestracyjny. Ten sposób już istnieje, drzemie w specyfikacji HTTP od 1997 roku i podłącza się go w jedno popołudnie.
Wypróbuj: zawołaj POST https://api.minibase.md/v1/convert bez poświadczeń i odczytaj nagłówek payment-required. Wolisz klucz? Darmowy plan to 1000 stron miesięcznie, bez karty. Pełna specyfikacja dla agentów: minibase.md/api.md.
Continue reading
Graph engineering: od pętli do grafów wiedzy
Graph engineering zaczął się w lipcu 2026 jako żart. Trzy znaczenia terminu i dlaczego wasz vault Markdown to już większość gotowego grafu.
Buzz Jacka Dorseya: agenci, Git i Markdown
Buzz od Block wpuszcza agentów AI na kanały zespołu z podpisaną tożsamością i Gitem w środku. Co wychodzi i dlaczego pamięć zostaje w Markdownie.
Dlaczego Markdown to najlepszy format dla LLM i agentów AI
Markdown zmniejsza zużycie tokenów nawet 10x względem HTML. Dowiedz się, czemu agenty AI i LLM wolą Markdown jako kontekst, i optymalizuj pracę.
Czym jest AUI? Nowy paradygmat interfejsu dla AI
CTO HubSpot twierdzi, że każdy produkt potrzebuje wersji headless dla agentów AI, a Google uruchomił A2UI. Nadeszła era Agentic UI.