x402 · Stellar testnet

Pagos x402 en Stellar que cobran solo lo que se usa.

Periplo es un facilitador x402 no custodial y de código abierto: en x402, el facilitador es el servicio que verifica y envía el pago que el comprador firma. Con upto, quien compra firma un techo de gasto una sola vez y solo se liquida el uso real; el contrato hace cumplir el techo y su saldo queda en cero después de cada liquidación.

Estamos proponiendo upto para Stellar dentro del estándar x402, para que cualquier facilitador lo use igual (PR abierto, x402-foundation/x402#3098)

Solo testnet. Periplo no opera en mainnet todavía.

01

Cómo funciona

Un servicio responde HTTP 402 con su precio. El comprador firma un pago; Periplo lo verifica y lo envía a Stellar. Dos esquemas cubren dos formas de cobrar.

exact: precio fijo

  1. El servicio pide un monto fijo.
  2. El comprador firma exactamente ese monto.
  3. Periplo lo verifica y liquida ese mismo monto.

Para solicitudes con precio conocido, como una llamada a una API con tarifa plana.

upto: pagar el uso real

  1. El comprador firma un techo de gasto una sola vez.
  2. El servicio mide lo que realmente se usó.
  3. Solo se liquida el monto real; el contrato devuelve el resto en la misma transacción.

Para uso que solo se conoce después: tokens generados, segundos de acceso, filas devueltas.

Quién controla los fondos

El comprador firma cada pago con su propia llave. El facilitador solo paga comisiones de red, se niega a arrancar con una llave que pueda mover fondos de usuarios, y nunca es origen ni firmante del pago de un comprador.

Leer el modelo de amenazas

Descubrimiento incluido

Los recursos que se liquidan a través de Periplo pueden catalogarse para que los agentes los encuentren buscando, sin conocer la URL de antemano.

Dónde corre upto hoy

upto liquida contra el contrato UptoSettlement en testnet. El facilitador público solo anuncia los esquemas que aparecen en su estado en vivo, más abajo.

02

Evidencia en testnet

Transacciones reales de stellar:testnet, cada una enlazada al explorador de bloques para que la compruebes tú.

  • exactstellar:testnet

    Primer flujo completo de Periplo: un pago firmado con @x402/stellar, verificado y liquidado por el núcleo del facilitador de Periplo.

    Ver transacción: 83d2aa3b60…d89f33
  • uptostellar:testnet

    Liquidación parcial: el comprador firmó un techo de 0.1 PTEST y el facilitador liquidó 0.04 PTEST.

    Ver transacción: cc46374e34…c5d218
  • uptostellar:testnet

    Liquidación en cero: un techo de 0.05 PTEST liquidado en 0, con el techo completo devuelto al comprador; un replay con el mismo nonce fue rechazado.

    Ver transacción: 2138c0418a…03d358
  • exactstellar:testnet

    Primer pago a través de Periplo entre un vendedor externo y un comprador independiente, ninguno de los dos este proyecto, en USDC de testnet.

    Ver transacción: 4befe51d2c…7904fd
  • exactstellar:testnet

    Interoperabilidad: un pago construido con el mismo código cliente, verificado y liquidado por el facilitador de referencia independiente de x402.org.

    Ver transacción: 43bd169873…dc7c8f
  • exactstellar:testnet

    Cuatro liquidaciones concurrentes en el mismo ledger, cada una desde una cuenta distinta del pool de channel accounts.

    Ver transacción: 33a6791890…0b3764
  • uptostellar:testnet

    API medida: un techo de 0.1 PTEST para hasta 20 filas; se devolvieron 10, así que se liquidaron 0.05 PTEST y el resto se reembolsó.

    Ver transacción: cf33b51350…533823
  • uptostellar:testnet

    El mismo contrato, en USDC de testnet: un techo de 0.10 USDC y 0.05 USDC liquidados, con el resto reembolsado. El activo viaja dentro de cada autorización firmada, así que el contrato no se volvió a desplegar.

    Ver transacción: d554adfb8f…c5cafb
Todos los resultados registrados (conformance/RESULTS.md)

06

Librería cliente

periplo es el paquete de npm detrás de estos ejemplos: firma un techo upto como comprador, o anúncialo y liquida el uso real como vendedor.

npm i periplo
import { createUptoStellarPayer, payAndFetch } from "periplo";

const payer = createUptoStellarPayer(buyerSecret, "stellar:testnet", {
  facilitatorBaseUrl: "https://periplo-testnet.fly.dev",
  maxSpendPerAuthorization: 1_000_000n, // 0.1 USDC, 7 decimales
});

const response = await payAndFetch(resourceUrl, payer);

03

Estado en vivo del facilitador

Se lee de los endpoints /supported y /status del despliegue público cuando abres esta página. periplo-testnet.fly.dev

Consultando al facilitador…

04

Contribuciones upstream

Errores que Periplo encontró y arreglos que propuso en las librerías sobre las que se construye. El estado de cada uno viene de la API de GitHub, no de memoria.

Estado verificado contra la API de GitHub el .

Integrado: 3Cerrado como resuelto: 10Abierto: 10Cerrado sin integrar: 1Cerrado como no planeado: 1

Issues (16)

Ver 11 más

05

Código abierto

Todo Periplo es público bajo Apache-2.0: el facilitador, el catálogo de descubrimiento, los contratos y este sitio.