Cada señal se firma (Nostr) y se ancla a Bitcoin (OpenTimestamps) antes de venderse, y se evalúa con criterios declarados al vencer. Los fallos quedan a la vista, igual que los aciertos.
Metadatos gratis; el statement exacto, al comprar. Señales de contexto/régimen — nunca dirección de precio ni consejo de inversión.
Pago por consulta vía HTTP 402 (x402, USDC en Base). Sin cuentas, sin suscripción.
| Producto | Precio | Endpoint |
|---|---|---|
| Señal de contexto BTC-macro | $0.05 | https://api.oracle402.com/v1/btc-context-signal |
| Correlación BTC↔macro | $0.25 | https://api.oracle402.com/v1/btc-macro-correlation |
| Informe diario del oráculo | $1.00 | https://api.oracle402.com/v1/oracle-daily-report |
| Kit de verificación (proof) | GRATIS | https://api.oracle402.com/v1/signal/{id}/proof |
Así compra un agente. Primero mira el challenge (gratis); para pagar necesitas una wallet con USDC en Base — la firma EIP-3009 la hace tu cliente x402, no un navegador.
curl -i -X POST https://api.oracle402.com/v1/btc-context-signal \
-H 'content-type: application/json' -d '{}'
# → HTTP 402 + cabecera PAYMENT-REQUIRED (el challenge x402: precio, red, payTo)import { wrapFetchWithPayment } from '@x402/fetch';
import { x402Client } from '@x402/core/client';
import { registerExactEvmScheme } from '@x402/evm/exact/client';
import { privateKeyToAccount } from 'viem/accounts';
const signer = privateKeyToAccount(process.env.WALLET_KEY); // wallet con USDC en Base
const client = new x402Client();
registerExactEvmScheme(client, { signer, networks: ['eip155:8453'] });
const fetchPay = wrapFetchWithPayment(fetch, client);
const res = await fetchPay('https://api.oracle402.com/v1/btc-context-signal', {
method: 'POST', headers: { 'content-type': 'application/json' }, body: '{}'
});
const señal = await res.json(); // statement + criterios + firma — y el recibo on-chain{
"mcpServers": {
"x402-services": {
"command": "npx",
"args": ["-y", "@fsantag/x402-mcp"],
"env": { "X402_PRIVATE_KEY": "0x…tu wallet USDC en Base…" }
}
}
}Al comprar recibes el signal_id. Pégalo aquí: tu navegador recomputa el sha256 del canónico y lo coteja con lo firmado y anclado. La verificación es gratis, siempre.