PayFlowAgent

PayFlowAgent

Token intelligence for nad.fun on Monad

Monad: mainnet Pay: base · USDC x402 v2

Decision-ready risk & momentum scores for nad.fun tokens on Monad.

One call returns a 0–100 score, risk level and a clear action — plus graduation progress, 5-minute momentum and the factors behind it. Pay per call in USDC via x402. No signup, no API key.

Free live score

Run a real score on any nad.fun token. Free, rate-limited — no payment required.

This is the free /v1/lite view (score · risk · action). The full report adds the data below ↓

Full report for this token🔒 $0.10
Graduation %•••
Momentum 5m•••
Risk factors•••
Unlock via x402

Endpoint: GET https://nad.payflowagent.net/v1/lite?token=0x…

Full report — /v1/decide

Everything an agent needs to act, in one paid call.

  • 0–100 score + riskLevel + action
  • Explainable factors (holders, liquidity, momentum…)
  • Graduation progress (bonding-curve %)
  • 5-minute momentum (volume, buys/sells)
$0.10 USDC / call

Cheaper entry: /v1/token/{addr}/summary — $0.03 (graduation + momentum).

Screener: /v1/screen?limit=10&minScore=60 — $0.05 (ranked list of pre-scored fresh tokens, poll-friendly).

How it works

Data sources & freshness

Every score is computed on demand from live data — nothing precomputed or stale.

On-chain
Monad mainnet — bonding-curve & holder state read directly via the LENS & CURVE contracts.
Off-chain
nad.fun API for metadata, momentum (5-min volume, buys/sells) and graduation status.
Freshness
Active tokens are re-scored every 30s; quiet tokens cached up to 5 min. Each response carries an asOf timestamp.

Score → risk → action

A single 0–100 score maps to a risk level and a clear action your agent can branch on.

80–100SAFEBUY_OK
60–79LOWBUY_OK
40–59MEDIUMCAUTION
20–39HIGHAVOID
0–19CRITICALAVOID

BUY_OK — fundamentals look healthy · CAUTION — mixed signals, size down · AVOID — high risk. Graduated tokens are capped at CAUTION.

What the score measures

The score starts neutral (50); each signal adds or subtracts — so it's explainable, not a black box.

Holder distributionCreator concentration, top-10 holders, holder count
LiquidityBonding-curve reserves (MON) backing the token
MomentumBuy/sell ratio, heat, 1m vs 5m volume
GraduationBonding-curve progress toward DEX listing
Token ageBrand-new with no volume is penalised
Social presenceWebsite / X / Telegram signals
Safety flagsNSFW & lock state as context
On-chain truthRead live from LENS & CURVE, not self-reported

The paid /v1/decide report returns these as explainable factors[] — each with name · impact · reason, so an agent can justify every decision.

For AI agents & developers

Standard x402 flow: call the paid endpoint, get HTTP 402 with payment requirements, your x402 client pays in USDC and retries. Discoverable via the x402 Bazaar and the manifest below.

# Free probe (no payment)
curl "https://nad.payflowagent.net/v1/lite?token=0x9cF1538f92341A311a922D411DE8C471DCEA7777"

# Paid full report — use any x402 client (see JS/Python tabs):
#   GET https://nad.payflowagent.net/v1/decide?token=0x...   ->  402 Payment Required (USDC via x402)

# Machine-readable discovery:
curl "https://nad.payflowagent.net/.well-known/x402.json"   # x402 manifest
curl "https://nad.payflowagent.net/openapi.json"            # OpenAPI 3.1 spec
curl "https://nad.payflowagent.net/llms.txt"                # LLM-friendly summary
// npm i x402-fetch viem
import { wrapFetchWithPayment } from "x402-fetch";
import { privateKeyToAccount } from "viem/accounts";

const account = privateKeyToAccount(process.env.PRIVATE_KEY);
const fetchWithPay = wrapFetchWithPayment(fetch, account);

// Pays the 402 in USDC and retries automatically:
const res = await fetchWithPay("https://nad.payflowagent.net/v1/decide?token=0x9cF1538f92341A311a922D411DE8C471DCEA7777");
console.log(await res.json());
# pip install x402 eth-account
import os
from eth_account import Account
from x402.clients.requests import x402_requests

account = Account.from_key(os.environ["PRIVATE_KEY"])
session = x402_requests(account)  # auto-pays 402 in USDC

r = session.get("https://nad.payflowagent.net/v1/decide?token=0x9cF1538f92341A311a922D411DE8C471DCEA7777")
print(r.json())
Payment network
base
Asset
0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 (USDC)
Pay to
0x617122b245C776A6B83A1f2821617819E2d38F6b
Protocol
x402 v2 · scheme exact