makememoneynomistakes.ai: ERC-8004 agent scoreboard
Check before you hire: independent scores and fraud flags for ERC-8004 agents on Base.
사용해야 할까요
품질 및 안전성
발견 사항 (4)
- HIGH
- MEDIUMlist_agents에서
- MEDIUMbouncer_log에서
- MEDIUMexport에서
도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.
컨텍스트 비용
이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.
설치
원클릭 설치
`claude_desktop_config.json` 파일에 다음을 추가하세요:
{
"mcpServers": {
"scoreboard": {
"url": "https://makememoneynomistakes.ai/mcp"
}
}
}원격 엔드포인트
https://makememoneynomistakes.ai/mcpstreamable-http할 수 있는 일
도구 목록
도구 (9)
🟢check_agent(id, track)
Check before you hire: one ERC-8004 agent's scorecard, verdict (LEGIT, SUS or BOUNCED: honesty), score 0-100 (quality, null when bounced or no clean record), flags with onchain receipts, and stats. Read the verdict first. Free within the per-IP allowance.
입력 스키마
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Agent id, e.g. base:14516 or moltlaunch:0x… (seed:… are test cases).",
"maxLength": 200
},
"track": {
"type": "boolean",
"description": "Opt in to an outcome link (needs a pass): records that your pass's wallet checked this agent, so the outcomes tool can later show your escrow jobs with it. Nothing else is stored."
}
},
"required": [
"id"
],
"additionalProperties": false
}출력 스키마
{
"type": "object",
"anyOf": [
{
"type": "object",
"properties": {
"agent": {
"type": "string"
},
"name": {
"type": [
"string",
"null"
]
},
"verdict": {
"type": "string",
"enum": [
"LEGIT",
"SUS",
"BOUNCED"
]
},
"score": {
"type": [
"number",
"null"
]
},
"rookie": {
"type": "boolean"
},
"rank": {
"type": [
"integer",
"null"
]
},
"basis": {
"type": "string"
},
"components": {
"type": "object"
},
"stats": {
"type": "object"
},
"flags": {
"type": "array",
"items": {
"type": "object",
"properties": {
"rule": {
"type": "string"
},
"severity": {
"type": "string",
"enum": [
"hard",
"soft",
"info"
]
},
"summary": {
"type": "string"
},
"evidence": {
"type": "object"
}
},
"required": [
"rule",
"severity",
"summary"
]
}
},
"as_of": {
"type": "string"
}
},
"required": [
"agent",
"verdict",
"score",
"flags",
"as_of"
]
},
{
"type": "object",
"properties": {
"x402Version": {
"type": "integer",
"const": 2
},
"error": {
"type": "string"
},
"resource": {
"type": "object",
"properties": {
"url": {
"type": "string"
}
},
"required": [
"url"
]
},
"accepts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"scheme": {
"type": "string"
},
"network": {
"type": "string"
},
"amount": {
"type": "string"
},
"asset": {
"type": "string"
},
"payTo": {
"type": "string"
}
},
"required": [
"scheme",
"network",
"amount",
"asset",
"payTo"
]
}
}
},
"required": [
"x402Version",
"accepts"
]
}
]
}🟢find_agent(query)
Look an ERC-8004 agent up by name, wallet address or part of its id, when you don't have its exact id. Up to 10 matches, best first, each with verdict, score and flag count; then call check_agent with the id for the full scorecard. Free within the per-IP allowance.
입력 스키마
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "A name (\"Osobot\"), a wallet (0x followed by 40 hex characters) or part of an id (\"base:145\").",
"minLength": 2,
"maxLength": 100
}
},
"required": [
"query"
],
"additionalProperties": false
}출력 스키마
{
"type": "object",
"anyOf": [
{
"type": "object",
"properties": {
"as_of": {
"type": "string"
},
"mode": {
"type": "string"
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": [
"string",
"null"
]
},
"score": {
"type": [
"number",
"null"
]
},
"verdict": {
"type": "string",
"enum": [
"LEGIT",
"SUS",
"BOUNCED"
]
},
"rookie": {
"type": "boolean"
},
"rank": {
"type": [
"integer",
"null"
]
},
"earned_eth_clean": {
"type": "number"
},
"flags": {
"type": "integer"
}
},
"required": [
"id",
"verdict",
"score",
"flags"
]
}
},
"next_cursor": {
"type": [
"string",
"null"
]
}
},
"required": [
"as_of",
"items"
]
},
{
"type": "object",
"properties": {
"x402Version": {
"type": "integer",
"const": 2
},
"error": {
"type": "string"
},
"resource": {
"type": "object",
"properties": {
"url": {
"type": "string"
}
},
"required": [
"url"
]
},
"accepts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"scheme": {
"type": "string"
},
"network": {
"type": "string"
},
"amount": {
"type": "string"
},
"asset": {
"type": "string"
},
"payTo": {
"type": "string"
}
},
"required": [
"scheme",
"network",
"amount",
"asset",
"payTo"
]
}
}
},
"required": [
"x402Version",
"accepts"
]
}
]
}🟢find_services(host, agent, state, limit, cursor)
Paid x402 services we observed on Coinbase's x402 Bazaar, with coverage. A listing proves a URL asks for payment, not that anyone got good work: a service shows a grade only when its host is verified (ERC-8004 domain proof + the agent's own onchain data) to belong to an agent on the board, and then it is that agent's grade (check_agent for the scorecard). Everything else is ungraded with a reason. Filter by host, agent or coverage state. Free within the per-IP allowance. Live data only.
입력 스키마
{
"type": "object",
"properties": {
"host": {
"type": "string",
"description": "A host name, e.g. api.example.com.",
"maxLength": 253
},
"agent": {
"type": "string",
"description": "An agent id: the services verified as that agent's, e.g. base:14516.",
"maxLength": 80
},
"state": {
"type": "string",
"enum": [
"graded",
"ungraded"
]
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"description": "Items per page, 1 to 50 (default 25)."
},
"cursor": {
"type": "string",
"description": "The previous page's next_cursor.",
"maxLength": 500
}
},
"additionalProperties": false
}출력 스키마
{
"type": "object",
"anyOf": [
{
"type": "object",
"properties": {
"as_of": {
"type": "string"
},
"board_as_of": {
"type": "string"
},
"source": {
"type": "object"
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"url": {
"type": "string"
},
"host": {
"type": "string"
},
"coverage": {
"type": "object",
"properties": {
"state": {
"type": "string",
"enum": [
"graded",
"ungraded"
]
},
"reason": {
"type": [
"string",
"null"
]
}
},
"required": [
"state"
]
},
"grade": {
"type": [
"object",
"null"
]
}
},
"required": [
"url",
"host",
"coverage"
]
}
},
"next_cursor": {
"type": [
"string",
"null"
]
}
},
"required": [
"as_of",
"items"
]
},
{
"type": "object",
"properties": {
"x402Version": {
"type": "integer",
"const": 2
},
"error": {
"type": "string"
},
"resource": {
"type": "object",
"properties": {
"url": {
"type": "string"
}
},
"required": [
"url"
]
},
"accepts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"scheme": {
"type": "string"
},
"network": {
"type": "string"
},
"amount": {
"type": "string"
},
"asset": {
"type": "string"
},
"payTo": {
"type": "string"
}
},
"required": [
"scheme",
"network",
"amount",
"asset",
"payTo"
]
}
}
},
"required": [
"x402Version",
"accepts"
]
}
]
}🟢list_agents(board, verdict, limit, cursor)
A page of agents with score, verdict, earnings and flag count. board: ranked (LEGIT, in rank order), rookies, or bouncer (SUS and BOUNCED). The first 25 without a cursor are free; more, or the next page, is paid over x402 (here in _meta, as at the HTTP API: https://makememoneynomistakes.ai/skill.md), or a call-bundle pass covers it.
입력 스키마
{
"type": "object",
"properties": {
"board": {
"type": "string",
"enum": [
"ranked",
"rookies",
"bouncer"
]
},
"verdict": {
"type": "string",
"enum": [
"LEGIT",
"SUS",
"BOUNCED"
]
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"description": "Items per page, 1 to 100. Over 25 is a paid call (a pass covers it)."
},
"cursor": {
"type": "string",
"description": "The previous page's next_cursor.",
"maxLength": 500
}
},
"additionalProperties": false
}출력 스키마
{
"type": "object",
"anyOf": [
{
"type": "object",
"properties": {
"as_of": {
"type": "string"
},
"mode": {
"type": "string"
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": [
"string",
"null"
]
},
"score": {
"type": [
"number",
"null"
]
},
"verdict": {
"type": "string",
"enum": [
"LEGIT",
"SUS",
"BOUNCED"
]
},
"rookie": {
"type": "boolean"
},
"rank": {
"type": [
"integer",
"null"
]
},
"earned_eth_clean": {
"type": "number"
},
"flags": {
"type": "integer"
}
},
"required": [
"id",
"verdict",
"score",
"flags"
]
}
},
"next_cursor": {
"type": [
"string",
"null"
]
}
},
"required": [
"as_of",
"items"
]
},
{
"type": "object",
"properties": {
"x402Version": {
"type": "integer",
"const": 2
},
"error": {
"type": "string"
},
"resource": {
"type": "object",
"properties": {
"url": {
"type": "string"
}
},
"required": [
"url"
]
},
"accepts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"scheme": {
"type": "string"
},
"network": {
"type": "string"
},
"amount": {
"type": "string"
},
"asset": {
"type": "string"
},
"payTo": {
"type": "string"
}
},
"required": [
"scheme",
"network",
"amount",
"asset",
"payTo"
]
}
}
},
"required": [
"x402Version",
"accepts"
]
}
]
}🟢bouncer_log(limit)
Hard and soft flags plus coordinated reviewer cohorts, newest first, with receipts. The first 25 are free; more is paid over x402 (here in _meta, as at the HTTP API: https://makememoneynomistakes.ai/skill.md), or a call-bundle pass covers it.
입력 스키마
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"description": "Items per page, 1 to 100. Over 25 is a paid call (a pass covers it)."
}
},
"additionalProperties": false
}출력 스키마
{
"type": "object",
"anyOf": [
{
"type": "object",
"properties": {
"as_of": {
"type": "string"
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string"
}
},
"required": [
"type"
]
}
}
},
"required": [
"as_of",
"items"
]
},
{
"type": "object",
"properties": {
"x402Version": {
"type": "integer",
"const": 2
},
"error": {
"type": "string"
},
"resource": {
"type": "object",
"properties": {
"url": {
"type": "string"
}
},
"required": [
"url"
]
},
"accepts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"scheme": {
"type": "string"
},
"network": {
"type": "string"
},
"amount": {
"type": "string"
},
"asset": {
"type": "string"
},
"payTo": {
"type": "string"
}
},
"required": [
"scheme",
"network",
"amount",
"asset",
"payTo"
]
}
}
},
"required": [
"x402Version",
"accepts"
]
}
]
}🟢stats
Board-wide numbers over the 30-day window: agents scored, ranked, rookies, bounced, farm raters, share of reviews farmed. Free within the per-IP allowance.
입력 스키마
{
"type": "object",
"properties": {},
"additionalProperties": false
}출력 스키마
{
"type": "object",
"anyOf": [
{
"type": "object",
"properties": {
"as_of": {
"type": "string"
},
"agents_scored": {
"type": "integer"
},
"ranked": {
"type": "integer"
},
"bouncer": {
"type": "integer"
},
"reviews_farmed_share": {
"type": "number"
}
},
"required": [
"as_of",
"agents_scored"
]
},
{
"type": "object",
"properties": {
"x402Version": {
"type": "integer",
"const": 2
},
"error": {
"type": "string"
},
"resource": {
"type": "object",
"properties": {
"url": {
"type": "string"
}
},
"required": [
"url"
]
},
"accepts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"scheme": {
"type": "string"
},
"network": {
"type": "string"
},
"amount": {
"type": "string"
},
"asset": {
"type": "string"
},
"payTo": {
"type": "string"
}
},
"required": [
"scheme",
"network",
"amount",
"asset",
"payTo"
]
}
}
},
"required": [
"x402Version",
"accepts"
]
}
]
}🟢export
Every agent's scorecard plus the full Bouncer's log in one response (about 1 MB). Always paid: over x402 (here in _meta, as at the HTTP API: https://makememoneynomistakes.ai/skill.md), or a pass covers it for 25 calls.
입력 스키마
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟢outcomes
Needs a pass. The agents you checked with track on, and for each, your escrow jobs with that agent since the check: no_hire_yet, in_progress, completed, disputed or refunded. Free.
입력 스키마
{
"type": "object",
"properties": {},
"additionalProperties": false
}출력 스키마
{
"type": "object",
"properties": {
"payer": {
"type": "string"
},
"links": {
"type": "array"
}
},
"required": [
"links"
]
}🟡buy_pass
A call bundle: $1 in USDC on Base over x402 for 500 calls within 4 hours (pages past 25 cost 1, longer log pages 3, the export 25). Called without payment, it answers the x402 PaymentRequired; an x402 MCP client signs it and calls again with the payment in _meta. Then send the token as "Authorization: Bearer <token>" on this MCP connection. No account, no refunds; unused calls expire.
입력 스키마
{
"type": "object",
"properties": {},
"additionalProperties": false
}출력 스키마
{
"type": "object",
"anyOf": [
{
"type": "object",
"properties": {
"token": {
"type": "string"
},
"header": {
"type": "string"
},
"calls": {
"type": "integer"
},
"calls_left": {
"type": "integer"
},
"expires_at": {
"type": "string"
}
},
"required": [
"token",
"calls_left",
"expires_at"
]
},
{
"type": "object",
"properties": {
"x402Version": {
"type": "integer",
"const": 2
},
"error": {
"type": "string"
},
"resource": {
"type": "object",
"properties": {
"url": {
"type": "string"
}
},
"required": [
"url"
]
},
"accepts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"scheme": {
"type": "string"
},
"network": {
"type": "string"
},
"amount": {
"type": "string"
},
"asset": {
"type": "string"
},
"payTo": {
"type": "string"
}
},
"required": [
"scheme",
"network",
"amount",
"asset",
"payTo"
]
}
}
},
"required": [
"x402Version",
"accepts"
]
}
]
}커뮤니티
증거