/** * Test x402 paid request on Base mainnet * Usage: EVM_PRIVATE_KEY=0x... npx tsx scripts/test-x402-mainnet.ts */ import axios from 'axios'; import { x402Client, wrapAxiosWithPayment } from '@x402/axios'; import { registerExactEvmScheme } from '@x402/evm/exact/client'; import { privateKeyToAccount } from 'viem/accounts'; async function main() { const key = process.env.EVM_PRIVATE_KEY; if (!key) { console.error('Set EVM_PRIVATE_KEY'); process.exit(1); } const signer = privateKeyToAccount(key as `0x${string}`); console.log('Wallet:', signer.address); const client = new x402Client(); registerExactEvmScheme(client, { signer }); const api = wrapAxiosWithPayment(axios.create({ baseURL: 'https://spendos.xyz' }), client); try { console.log('Calling /api/summarize with x402 payment on Base mainnet...'); const res = await api.post('/api/summarize', { url: 'https://example.com' }); console.log('SUCCESS:', JSON.stringify(res.data, null, 2)); } catch (err: any) { console.log('Error:', err.response?.status, err.response?.data ?? err.message); } } main();