Integrate/Signal endpoints

Signal endpoints

After a wallet is analyzed, you can read individual reputation fields from the cache. Every API query, including fetching cached signals, requires an x402 payment of 0.01 USDT.

Cache model

POST /api/agent/analyze runs the full analysis pipeline and writes to cache. Subsequent GET requests return cached slices until the TTL expires. Missing cache returns 404 with a hint to call analyze first.

curl -H "X-PAYMENT: <x402-signature>" https://wallet-profile-orpin.vercel.app/api/wallet/0xYourWallet.../signals

Lists available signal IDs and whether valid cache exists for the wallet. Costs 0.01 USDT.

Signal IDs

SignalReturns
monthly-incomeIncome label, monthly estimate, weekly consistency, income by period
financial-healthHealth score (0–100) and breakdown
reputation-scoreReputation score, category, rationale
loan-capacityMin/max USD range, confidence, factors
statement3-month inflow/outflow, net, monthly breakdown
assessmentAI narrative, strengths, watch items, attestation

Read one signal

curl -H "X-PAYMENT: <x402-signature>" https://wallet-profile-orpin.vercel.app/api/wallet/0xYourWallet.../signals/loan-capacity

Response shape:

{
  "signal": "loan-capacity",
  "walletAddress": "0x...",
  "cached": true,
  "fetchedAt": "2026-07-08T...",
  "expiresAt": "2026-07-09T...",
  "data": { "range": "...", "minLoanUsd": 0, "maxLoanUsd": 0, ... }
}

fields parameter

On POST /api/agent/analyze, pass fields in the body or query string to return a subset without full walletData:

curl -X POST 'https://wallet-profile-orpin.vercel.app/api/agent/analyze?fields=loanCapacity,reputationScore' \
  -H "Content-Type: application/json" \
  -H "X-PAYMENT: <x402-signature>" \
  -d '{"walletAddress":"0xBorrower..."}'

Allowed field keys

monthlyIncome, financialHealth, reputationScore, loanCapacity, statement, assessment, walletData