Support x402 v1 402s (requirements in the body, X-PAYMENT header)
@franciscorodr26 ya está trabajando en esto.
Desde el 7/10/2026.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 56/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- typescript
- Área
- payments
Línea de trabajo
Start by reading the x402 response parsing and payment-header handling, then inspect test/real-merchants.test.ts for the existing v2 fixtures and tests. Add tests for the captured v1 responses and verify opt-in parsing, strict rejection of unknown keys, v1 payment headers, and refusal of a wrong payee or higher price before signing; the issue does not name the implementation files.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Why
Some live merchants on Base still speak x402 v1: the requirements come only in the JSON body (x402Version: 1, network: "base", maxAmountRequired) and they expect an X-PAYMENT header back. Seen on 2026-10-07: Neynar, SLAMai (CryptoSlam) and Browserbase. Today the SDK refuses these 402s (no PAYMENT-REQUIRED header).
What
- Opt-in v1 compatibility (
policy.acceptV1: true): parse the v1 body into the samePaymentRequirementsshape (mapbase→eip155:8453,maxAmountRequired→amount), then run exactly the same policy checks. - Send the payment as v1
X-PAYMENTfor those merchants; read the receipt fromX-PAYMENT-RESPONSE(already supported). - Strict schemas as for v2; unknown keys rejected.
Acceptance
- Unit tests with the captured v1 402s (see
test/real-merchants.test.tsfor the v2 ones). - A v1 402 asking for a different payee or a higher price is refused before signing, same as v2.
- Lenguaje dominante
- TypeScript
- Estrellas
- 0
- Forks
- 0
- Merge medio
- 3 h 51 min
- PR fusionados (30 d)
- 3
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de DeepFirstHQ/deepfirstsearch
-
documentation good first issue
Dificultad 1/5 1-3 horas Aptitud para principiantes 85/100
-
help wanted integration
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
-
enhancement good first issue
Dificultad 3/5 1-2 días Aptitud para principiantes 69/100
-
documentation good first issue
Dificultad 3/5 1-2 días Aptitud para principiantes 54/100
-
Tooling: add a merchant guide from one tested spec (live payment, verbatim doc check, video)Abiertodocumentation enhancement
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
Todos los issues de DeepFirstHQ/deepfirstsearch
Issues similares
-
bug(sight): the dashboard's text truncations split surrogate pairs and show broken charactersAbiertocomponent:sight
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
agentic-os-org/ANOLISA#6738 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
bug Durable Agents Observability (AI Telemetry) status: needs triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
mastra-ai/mastra#26470 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
paperclipai/paperclip#15630 ·
Los mantenedores suelen responder en 1 día
-
[good first issue, hacktoberfest] ⛩️ Add new Theme: Sakura Latte (good-first-issue)Posiblemente ocupada @PGrayCS la tomó hoy. Abiertocommunity first-timers-only good first issue hacktoberfest help wanted low hanging fruit up-for-grabs
Dificultad 1/5 1-3 horas Aptitud para principiantes 78/100
lingdojo/kana-dojo#31937 · 1 comentario · 5 reacciones ·
Los mantenedores suelen responder en 1 día
-
feature/cohorts feature/feature-flags team/feature-flags
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
Los mantenedores suelen responder en 1 día