Saltar al contenido principal
x402 es un estándar abierto de pago construido sobre el estado HTTP 402 Payment Required: el servidor responde a la primera llamada con su precio, el cliente paga y vuelve a llamar con la prueba del pago, y el servidor responde con los datos. En CCTools una ruta funciona así, junto a las rutas con clave de API. No necesitas clave ni cuenta, solo una billetera de Canton que pueda pagar. El uso con clave es aparte: consigue una clave en cctools.network/profile/api y prueba cada endpoint con clave en cctools.network/api-docs.

La ruta de pago

El precio está en la propia respuesta 402 de la ruta, y esa respuesta es la referencia. Léelo ahí antes de pagar en lugar de fiarte de las cifras de arriba.
Cada valor de una fila es una cadena. Los precios y volúmenes son decimales; el volumen, el máximo y el mínimo cubren 24 horas, y "0" significa que el exchange no informó ninguno.
La fila de arriba es un ejemplo del formato, tal como Temple la devolvió el 15 de octubre de 2026 a las 04:12 UTC. No es un precio actual.

Cómo funciona una llamada de pago

1

Llama sin pagar

La ruta responde 402 con una cabecera PAYMENT-REQUIRED: JSON codificado en base64 cuyo array accepts tiene una entrada por cada activo con el que puedes pagar. El amount de cada entrada está en unidades atómicas con diez decimales, así que 1000000000 es 0,1.
2

Firma una transferencia para una entrada

Tu cliente firma una transferencia en Canton que coincide exactamente con una entrada y vuelve a llamar con ella en la cabecera PAYMENT-SIGNATURE, repitiendo esa entrada. Un cliente x402 hace este paso por ti.
3

Recibe los datos y el recibo

El facilitador comprueba la transferencia y la liquida en el ledger, y la ruta responde 200 con los datos y una cabecera PAYMENT-RESPONSE que lleva el recibo de la liquidación.
Para leer el precio tú mismo:

Paga desde un agente

FTP, que opera el facilitador, publica una billetera de agente con autocustodia y un cliente de línea de comandos, @ftptech/canton-agent-wallet. Estos pasos siguen la guía de agentes de FTP y el README del paquete (versión 2.3.1, leído el 15 de octubre de 2026):
pay lee el 402, paga una entrada e imprime la respuesta. --max limita lo que puede costar un pago, en CC salvo que elijas otro activo, y la billetera se niega antes de firmar cualquier importe superior. Para pagar en USDCx o cETH, añade --asset USDCx (o cETH) y antes autoriza el gasto de ese token con CANTON_AGENT_PAYABLE_INSTRUMENTS, como describe la guía de FTP.
El CLI usa canton:testnet por defecto. Sin CANTON_AGENT_NETWORK=canton:mainnet, el pago falla por una red que no coincide. El archivo de billetera que crea, ~/.canton-agent/wallet.json, guarda la clave de tus fondos: haz una copia de seguridad.
Desde código, el mismo paquete exporta makePayingFetch, un fetch que paga cualquier 402 que encuentre:

Detalles legibles por máquina

  • La respuesta 402 describe la ruta en el formato de descubrimiento x402 Bazaar: extensions.bazaar contiene la llamada (un GET sin parámetros), un JSON Schema de la respuesta y una fila de ejemplo, y resource lleva una descripción con el precio por activo.
  • La especificación OpenAPI marca la ruta con un bloque x-x402: esquema, red, facilitador, las tres cabeceras y el precio por activo con la hora en que se leyó.
  • cctools.network/llms.txt incluye la ruta para modelos de lenguaje.

Respuestas y límites

  • Una ruta. La ruta de tickers es la única ruta de pago por ahora.
  • Primero el pago. El pago se liquida antes de enviar los datos. Cuando faltan los datos o la última lectura correcta tiene más de 30 minutos, la ruta responde 503 antes de pedir ningún pago.
  • Latencia. FTP indica que un pago posterior al primero suele completarse en 10 a 25 segundos en mainnet; el primero tras un arranque en frío tarda más.
  • Por llamada. Cada llamada tiene su propio precio y su propio pago. No hay suscripción ni saldo prepagado del lado de CCTools.
Canton es una marca registrada de Digital Asset (Switzerland) GmbH. Digital Asset no está afiliada a CCTools, y no lo ha patrocinado ni respaldado.