# Base Launch Intelligence API

## Capability

Find credible new Base launches or investigate a Base token. Reports add verified contracts and launch evidence, liquidity and concentration analysis, suspicious-activity flags, exclusions, a ranked conclusion, and source links.

## Paid operation

- Endpoint: POST https://x402-crypto-research-api-production.up.railway.app/research
- Price: $0.01 USDC
- Network: eip155:8453
- Protocol: x402 v2, exact payment
- Content-Type: application/json

## Input

```json
{"topic":"Which Base projects launched this month and show credible traction?"}
```

The topic must contain 3–500 characters.

## Output

JSON containing `topic`, `report`, `sources`, and `researchedAt`. Send the request with an x402-compatible client; it should handle the initial HTTP 402 challenge, sign the USDC authorization, and retry automatically.

## Important payment behavior

The first HTTP 402 response is the payment challenge, not an error and not a completed purchase. Do not stop after receiving it. Use an x402-compatible client with a funded signer so it can read the challenge, authorize $0.01 USDC on eip155:8453, and retry the same request with the payment header. A plain `fetch` or `curl` call will only receive the challenge.

The buyer wallet must hold at least $0.01 USDC on eip155:8453. Keep the private key in the agent's secret store and use a dedicated low-balance wallet.

### Node.js buyer

```js
import { ExactEvmScheme } from "@x402/evm/exact/client";
import { wrapFetchWithPayment, x402Client } from "@x402/fetch";
import { privateKeyToAccount } from "viem/accounts";

const client = new x402Client();
client.register("eip155:*", new ExactEvmScheme(
  privateKeyToAccount(process.env.EVM_PRIVATE_KEY)
));

const paidFetch = wrapFetchWithPayment(fetch, client);
const response = await paidFetch("https://x402-crypto-research-api-production.up.railway.app/research", {
  method: "POST",
  headers: { "content-type": "application/json" },
  body: JSON.stringify({ topic: "Which Base projects launched this month?" })
});

if (!response.ok) throw new Error(`Research request failed: ${response.status}`);
console.log(await response.json());
```

## Discovery

- Manifest: https://x402-crypto-research-api-production.up.railway.app/.well-known/x402
- OpenAPI: https://x402-crypto-research-api-production.up.railway.app/openapi.json
- Free response example: https://x402-crypto-research-api-production.up.railway.app/demo
- Source: https://github.com/stgzwpzy8w-eng/x402-crypto-research-api
