{"openapi":"3.1.0","info":{"title":"Activity Score","version":"2.1.0","description":"Wallet intelligence for Tempo blockchain. Single score, batch scoring, full deep analysis (score + portfolio + whale status), and session payments.","x-guidance":"Use /api/deep for a complete wallet profile (0.08 USDC.e). Use /api/service for single wallet scoring (0.02 USDC.e). Use /api/batch for up to 10 wallets at once (0.15 USDC.e). Use /api/session for high-volume scoring via payment channel."},"servers":[{"url":"https://tempo-mpp-liart.vercel.app"}],"paths":{"/api/service":{"post":{"operationId":"getActivityScorePost","summary":"Score one wallet","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.02"},"protocols":[{"mpp":{"method":"tempo","intent":"charge","currency":"USDC.e"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["wallet"],"properties":{"wallet":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"Tempo wallet address to score","example":"0x10f2af04d00260ee9b9c701dfbe41e2756143c15"}}}}}},"responses":{"200":{"description":"Activity score","content":{"application/json":{"schema":{"type":"object","required":["wallet","score","grade","breakdown","price"],"properties":{"wallet":{"type":"string","description":"The queried wallet address"},"score":{"type":"number","minimum":0,"maximum":100,"description":"Total activity score"},"grade":{"type":"string","enum":["F","D","C","B","A","S"],"description":"Letter grade: F(<20) D(<40) B(<60) A(<80) S(80+)"},"breakdown":{"type":"object","properties":{"txCount":{"type":"number","description":"Total transactions sent (nonce)"},"txScore":{"type":"number","minimum":0,"maximum":35},"usdceBalance":{"type":"string","description":"USDC.e balance"},"usdceScore":{"type":"number","minimum":0,"maximum":25},"ethBalance":{"type":"string","description":"ETH balance"},"ethScore":{"type":"number","minimum":0,"maximum":15},"diversificationScore":{"type":"number","minimum":0,"maximum":10},"walletAgeDays":{"type":"number","description":"Estimated wallet age in days"},"walletAgeScore":{"type":"number","minimum":0,"maximum":10},"recentTransfers":{"type":"number","description":"USDC.e transfers in last ~7 hours (50k blocks)"},"recentActivityScore":{"type":"number","minimum":0,"maximum":5}}},"price":{"type":"string"}}}}}},"400":{"description":"Invalid or missing wallet address"},"402":{"description":"Payment required"}}},"get":{"operationId":"getActivityScoreGet","summary":"Score one wallet (query param)","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.02"},"protocols":[{"mpp":{"method":"tempo","intent":"charge","currency":"USDC.e"}}]},"parameters":[{"name":"wallet","in":"query","required":true,"schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"description":"Tempo wallet address (0x...)"}],"responses":{"200":{"description":"Activity score","content":{"application/json":{"schema":{"type":"object","required":["wallet","score","grade","breakdown","price"],"properties":{"wallet":{"type":"string","description":"The queried wallet address"},"score":{"type":"number","minimum":0,"maximum":100,"description":"Total activity score"},"grade":{"type":"string","enum":["F","D","C","B","A","S"],"description":"Letter grade: F(<20) D(<40) B(<60) A(<80) S(80+)"},"breakdown":{"type":"object","properties":{"txCount":{"type":"number","description":"Total transactions sent (nonce)"},"txScore":{"type":"number","minimum":0,"maximum":35},"usdceBalance":{"type":"string","description":"USDC.e balance"},"usdceScore":{"type":"number","minimum":0,"maximum":25},"ethBalance":{"type":"string","description":"ETH balance"},"ethScore":{"type":"number","minimum":0,"maximum":15},"diversificationScore":{"type":"number","minimum":0,"maximum":10},"walletAgeDays":{"type":"number","description":"Estimated wallet age in days"},"walletAgeScore":{"type":"number","minimum":0,"maximum":10},"recentTransfers":{"type":"number","description":"USDC.e transfers in last ~7 hours (50k blocks)"},"recentActivityScore":{"type":"number","minimum":0,"maximum":5}}},"price":{"type":"string"}}}}}},"400":{"description":"Invalid or missing wallet address"},"402":{"description":"Payment required"}}}},"/api/session":{"post":{"operationId":"activityScoreSession","summary":"Score wallet via payment channel (session)","description":"Same scoring as /api/service but paid via a payment channel. Open a channel once (deposit USDC.e on-chain), then send signed vouchers per request — no gas per call, instant settlement. Cost: 0.02 USDC.e per request. Suggested deposit: 1.00 USDC.e ≈ 50 requests.","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.02"},"protocols":[{"mpp":{"method":"tempo","intent":"session","currency":"USDC.e","unitType":"request","suggestedDeposit":"1.00"}}]},"x-guidance":"Use /api/session when scoring many wallets in a row. Open a payment channel once (deposit 1 USDC.e ≈ 50 requests), then each request uses an off-chain voucher — faster and no per-request gas. Channel must be opened before first use.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["wallet"],"properties":{"wallet":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"Tempo wallet address to score","example":"0x10f2af04d00260ee9b9c701dfbe41e2756143c15"}}}}}},"responses":{"200":{"description":"Activity score (same schema as /api/service)","content":{"application/json":{"schema":{"type":"object","required":["wallet","score","grade","breakdown","price"],"properties":{"wallet":{"type":"string","description":"The queried wallet address"},"score":{"type":"number","minimum":0,"maximum":100,"description":"Total activity score"},"grade":{"type":"string","enum":["F","D","C","B","A","S"],"description":"Letter grade: F(<20) D(<40) B(<60) A(<80) S(80+)"},"breakdown":{"type":"object","properties":{"txCount":{"type":"number","description":"Total transactions sent (nonce)"},"txScore":{"type":"number","minimum":0,"maximum":35},"usdceBalance":{"type":"string","description":"USDC.e balance"},"usdceScore":{"type":"number","minimum":0,"maximum":25},"ethBalance":{"type":"string","description":"ETH balance"},"ethScore":{"type":"number","minimum":0,"maximum":15},"diversificationScore":{"type":"number","minimum":0,"maximum":10},"walletAgeDays":{"type":"number","description":"Estimated wallet age in days"},"walletAgeScore":{"type":"number","minimum":0,"maximum":10},"recentTransfers":{"type":"number","description":"USDC.e transfers in last ~7 hours (50k blocks)"},"recentActivityScore":{"type":"number","minimum":0,"maximum":5}}},"price":{"type":"string"}}}}}},"400":{"description":"Invalid or missing wallet address"},"402":{"description":"Payment required — open a session channel first"}}},"get":{"operationId":"activityScoreSessionGet","summary":"Score wallet via session channel (query param)","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.02"},"protocols":[{"mpp":{"method":"tempo","intent":"session","currency":"USDC.e","unitType":"request","suggestedDeposit":"1.00"}}]},"parameters":[{"name":"wallet","in":"query","required":true,"schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"description":"Tempo wallet address (0x...)"}],"responses":{"200":{"description":"Activity score via session"},"402":{"description":"Payment required — open a session channel first"}}}},"/api/batch":{"post":{"operationId":"batchActivityScore","summary":"Score up to 10 wallets in one request","description":"Score up to 10 Tempo wallets in a single paid request. Costs 0.15 USDC.e (vs 0.20 USDC.e for 10 individual calls — 25% savings).","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.15"},"protocols":[{"mpp":{"method":"tempo","intent":"charge","currency":"USDC.e"}}]},"x-guidance":"Use this endpoint when you need to score multiple wallets. Send up to 10 addresses in the \"wallets\" array. Pay once (0.15 USDC.e) instead of separately for each wallet.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["wallets"],"properties":{"wallets":{"type":"array","minItems":1,"maxItems":10,"items":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"Tempo wallet address"},"description":"Array of 1–10 wallet addresses to score","example":["0x10f2af04d00260ee9b9c701dfbe41e2756143c15","0xf70da978122a2ff3f65be55edcb97da3e6fa8ebe"]}}}}}},"responses":{"200":{"description":"Batch score results","content":{"application/json":{"schema":{"type":"object","properties":{"results":{"type":"array","items":{"type":"object","required":["wallet","score","grade","breakdown","price"],"properties":{"wallet":{"type":"string","description":"The queried wallet address"},"score":{"type":"number","minimum":0,"maximum":100,"description":"Total activity score"},"grade":{"type":"string","enum":["F","D","C","B","A","S"],"description":"Letter grade: F(<20) D(<40) B(<60) A(<80) S(80+)"},"breakdown":{"type":"object","properties":{"txCount":{"type":"number","description":"Total transactions sent (nonce)"},"txScore":{"type":"number","minimum":0,"maximum":35},"usdceBalance":{"type":"string","description":"USDC.e balance"},"usdceScore":{"type":"number","minimum":0,"maximum":25},"ethBalance":{"type":"string","description":"ETH balance"},"ethScore":{"type":"number","minimum":0,"maximum":15},"diversificationScore":{"type":"number","minimum":0,"maximum":10},"walletAgeDays":{"type":"number","description":"Estimated wallet age in days"},"walletAgeScore":{"type":"number","minimum":0,"maximum":10},"recentTransfers":{"type":"number","description":"USDC.e transfers in last ~7 hours (50k blocks)"},"recentActivityScore":{"type":"number","minimum":0,"maximum":5}}},"price":{"type":"string"}}}},"count":{"type":"number"},"price":{"type":"string"},"note":{"type":"string"}}}}}},"400":{"description":"Invalid input (bad address or too many wallets)"},"402":{"description":"Payment required"}}}},"/api/deep":{"post":{"operationId":"deepWalletAnalysis","summary":"Full wallet profile — score + portfolio + whale status","description":"Deep Analysis combines three data points in one call: Activity Score (0–100), full token portfolio (ETH + all ERC-20 balances), and USDC.e whale status. Costs 0.08 USDC.e — cheaper than calling each service separately.","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.08"},"protocols":[{"mpp":{"method":"tempo","intent":"charge","currency":"USDC.e"}}]},"x-guidance":"Use /api/deep when you need a complete picture of a Tempo wallet. Returns activity score, all token balances, and whale classification in one 0.08 USDC.e call. More efficient than calling /api/service + portfolio + whale-tracker separately.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["wallet"],"properties":{"wallet":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"Tempo wallet address to analyze","example":"0x10f2af04d00260ee9b9c701dfbe41e2756143c15"}}}}}},"responses":{"200":{"description":"Deep wallet analysis","content":{"application/json":{"schema":{"type":"object","properties":{"wallet":{"type":"string"},"score":{"type":"number","minimum":0,"maximum":100},"grade":{"type":"string","enum":["F","D","C","B","A","S"]},"breakdown":{"type":"object","description":"Score breakdown by signal"},"portfolio":{"type":"object","properties":{"ethBalance":{"type":"string"},"tokens":{"type":"array","items":{"type":"object","properties":{"token":{"type":"string"},"symbol":{"type":"string"},"name":{"type":"string"},"decimals":{"type":"integer"},"balance":{"type":"string"}}}},"tokenCount":{"type":"integer"}}},"whaleStatus":{"type":"object","properties":{"usdceBalance":{"type":"string"},"totalSupply":{"type":"string"},"sharePercent":{"type":"string"},"tag":{"type":"string","enum":["mega","whale","dolphin","minnow"]}}},"price":{"type":"string"},"note":{"type":"string"}}}}}},"400":{"description":"Invalid wallet address"},"402":{"description":"Payment required"}}},"get":{"operationId":"deepWalletAnalysisGet","summary":"Full wallet profile (query param)","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.08"},"protocols":[{"mpp":{"method":"tempo","intent":"charge","currency":"USDC.e"}}]},"parameters":[{"name":"wallet","in":"query","required":true,"schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"description":"Tempo wallet address (0x...)"}],"responses":{"200":{"description":"Deep wallet analysis"},"400":{"description":"Invalid wallet address"},"402":{"description":"Payment required"}}}}}}