MiniMate is an AI-powered finance assistant built for MiniPay users on Celo. It replaces complex DeFi interfaces with a simple chat experience. Users can check real-time balances (CELO, USDm, USDC, USDT), track spending with auto-categorized breakdowns via Blockscout API, set savings goals with visual progress tracking, and send payments through a guided step-by-step flow. Features gas abstraction — fees are paid in USDm, no CELO required. Built with React 19 + Vite + viem 2, deployed on Vercel Serverless. Supports MiniPay native integration and Farcaster Mini App.
The seven checks, with their evidence
7 recordedRegistered?rung 1 · registered
passThe agent exists in the on-chain registry, with an owner and a document URL.
passed
- block_number
- 74443315
- chain_id
- 42220
- token_id
- 9116
checked at 2026-08-10T07:04:43.545160Z
Reachable?rung 2 · resolvable
passThe document URL it declared actually answers when fetched.
passed
- bytes
- 2288
- data_uri_variant
- base64
- inline
- true
- scheme
- data
- uri
data:application/json;base64,ewogICJ0eXBlIjogImh0dHBzOi8vZWlwcy5ldGhlcmV1bS5vcmcvRUlQUy9laXAtODAwNCNyZWdpc3RyYXRpb24tdjE… (3,081 chars — expand)
data:application/json;base64,ewogICJ0eXBlIjogImh0dHBzOi8vZWlwcy5ldGhlcmV1bS5vcmcvRUlQUy9laXAtODAwNCNyZWdpc3RyYXRpb24tdjEiLAogICJuYW1lIjogIk1pbmlNYXRlIiwKICAiZGVzY3JpcHRpb24iOiAiTWluaU1hdGUgaXMgYW4gQUktcG93ZXJlZCBmaW5hbmNlIGFzc2lzdGFudCBidWlsdCBmb3IgTWluaVBheSB1c2VycyBvbiBDZWxvLiBJdCByZXBsYWNlcyBjb21wbGV4IERlRmkgaW50ZXJmYWNlcyB3aXRoIGEgc2ltcGxlIGNoYXQgZXhwZXJpZW5jZS4gVXNlcnMgY2FuIGNoZWNrIHJlYWwtdGltZSBiYWxhbmNlcyAoQ0VMTywgVVNEbSwgVVNEQywgVVNEVCksIHRyYWNrIHNwZW5kaW5nIHdpdGggYXV0by1jYXRlZ29yaXplZCBicmVha2Rvd25zIHZpYSBCbG9ja3Njb3V0IEFQSSwgc2V0IHNhdmluZ3MgZ29hbHMgd2l0aCB2aXN1YWwgcHJvZ3Jlc3MgdHJhY2tpbmcsIGFuZCBzZW5kIHBheW1lbnRzIHRocm91Z2ggYSBndWlkZWQgc3RlcC1ieS1zdGVwIGZsb3cuIEZlYXR1cmVzIGdhcyBhYnN0cmFjdGlvbiDigJQgZmVlcyBhcmUgcGFpZCBpbiBVU0RtLCBubyBDRUxPIHJlcXVpcmVkLiBCdWlsdCB3aXRoIFJlYWN0IDE5ICsgVml0ZSArIHZpZW0gMiwgZGVwbG95ZWQgb24gVmVyY2VsIFNlcnZlcmxlc3MuIFN1cHBvcnRzIE1pbmlQYXkgbmF0aXZlIGludGVncmF0aW9uIGFuZCBGYXJjYXN0ZXIgTWluaSBBcHAuXG4iLAogICJpbWFnZSI6ICJodHRwczovL2Jsb2IuODAwNHNjYW4uYXBwL2IzOWI4ZGRhNzkwNDFmMWEwZTZhOGYwZDEzNDk3MTI1MDMwYWU0NzU4MzY4YTBmNTRiYzYwMzRlOTBjODhlNjIuanBnIiwKICAic2VydmljZXMiOiBbCiAgICB7CiAgICAgICJuYW1lIjogIk1DUCIsCiAgICAgICJlbmRwb2ludCI6ICJodHRwczovL21pbmltYXRlLWdyZWVuLnZlcmNlbC5hcHAvYXBpL2NoYXQiLAogICAgICAidmVyc2lvbiI6ICIyMDI1LTA2LTE4IiwKICAgICAgIm1jcFRvb2xzIjogWwogICAgICAgICJjaGVja19iYWxhbmNlIiwKICAgICAgICAidHJhY2tfc3BlbmRpbmciLAogICAgICAgICJzZW5kX3BheW1lbnQiLAogICAgICAgICJjcmVhdGVfc2F2aW5nc19nb2FsIgogICAgICBdLAogICAgICAibWNwUHJvbXB0cyI6IFsKICAgICAgICAiY2hlY2tfYmFsYW5jZSIsCiAgICAgICAgInNwZW5kaW5nX3N1bW1hcnkiLAogICAgICAgICJzZW5kX3BheW1lbnQiCiAgICAgIF0sCiAgICAgICJtY3BSZXNvdXJjZXMiOiBbCiAgICAgICAgImNlbG9fbWFpbm5ldCIsCiAgICAgICAgImJsb2Nrc2NvdXRfYXBpIgogICAgICBdCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJPQVNGIiwKICAgICAgImVuZHBvaW50IjogImh0dHBzOi8vZ2l0aHViLmNvbS9hZ250Y3kvb2FzZi8iLAogICAgICAidmVyc2lvbiI6ICJ2MC44LjAiLAogICAgICAic2tpbGxzIjogWwogICAgICAgICJuYXR1cmFsX2xhbmd1YWdlX3Byb2Nlc3NpbmcvbmF0dXJhbF9sYW5ndWFnZV91bmRlcnN0YW5kaW5nL25hdHVyYWxfbGFuZ3VhZ2VfdW5kZXJzdGFuZGluZyIsCiAgICAgICAgIm5hdHVyYWxfbGFuZ3VhZ2VfcHJvY2Vzc2luZy9uYXR1cmFsX2xhbmd1YWdlX2dlbmVyYXRpb24vbmF0dXJhbF9sYW5ndWFnZV9nZW5lcmF0aW9uIiwKICAgICAgICAibXVsdGlfbW9kYWwvaW1hZ2VfcHJvY2Vzc2luZy92aXN1YWxfcWEiLAogICAgICAgICJuYXR1cmFsX2xhbmd1YWdlX3Byb2Nlc3NpbmcvcGVyc29uYWxpemF0aW9uL3BlcnNvbmFsaXphdGlvbiIsCiAgICAgICAgInRvb2xfaW50ZXJhY3Rpb24vd29ya2Zsb3dfYXV0b21hdGlvbiIsCiAgICAgICAgImFuYWx5dGljYWxfc2tpbGxzL21hdGhlbWF0aWNhbF9yZWFzb25pbmcvbWF0aGVtYXRpY2FsX3JlYXNvbmluZyIKICAgICAgXSwKICAgICAgImRvbWFpbnMiOiBbCiAgICAgICAgImZpbmFuY2VfYW5kX2J1c2luZXNzL2JhbmtpbmciLAogICAgICAgICJmaW5hbmNlX2FuZF9idXNpbmVzcy9maW5hbmNlIiwKICAgICAgICAidGVjaG5vbG9neS9ibG9ja2NoYWluL2NyeXB0b2N1cnJlbmN5IiwKICAgICAgICAidGVjaG5vbG9neS9ibG9ja2NoYWluL2Jsb2NrY2hhaW4iCiAgICAgIF0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIk1DUCIsCiAgICAgICJlbmRwb2ludCI6ICJodHRwczovL21pbmltYXRlLWdyZWVuLnZlcmNlbC5hcHAvYXBpL2hlYWx0aCIsCiAgICAgICJ2ZXJzaW9uIjogIjIwMjUtMDYtMTgiCiAgICB9CiAgXSwKICAicmVnaXN0cmF0aW9ucyI6IFtdLAogICJzdXBwb3J0ZWRUcnVzdHMiOiBbCiAgICAicmVwdXRhdGlvbiIKICBdLAogICJhY3RpdmUiOiB0cnVlLAogICJ4NDAyc3VwcG9ydCI6IGZhbHNlCn0=
checked at 2026-08-10T07:04:43.545160Z
Readable?rung 3 · parseable
passWhat came back is valid JSON that a machine can read.
passed
- body_bytes
- 2288
- body_sha256
- 3ab7637f135b169797b1f09cc5e30b202937da98f1a969ad7e79abb5157ce9e5
- content_type
- —
checked at 2026-08-10T07:04:43.545160Z
Follows the spec?rung 4 · conformant
passThe document meets what ERC-8004 requires of it.
passed
- both_fields_present
- false
- legacy_endpoints_field
- false
- may_gaps
- x402Support, supportedTrust
- must_violations
- (empty)
- registrations_checked
- 0
- services_field_source
- services
- services_status
- present
- should_gaps
- registrations
- spec_commit
- 68fc6765761a10fb26f0692df21c8a6f9d12b1be
checked at 2026-08-10T07:04:43.545160Z
Claims its identity?rung 5 · bound
unclaimedThe document names the on-chain agent it belongs to, rather than leaving it unsaid.
unclaimed — the document made no claim to check
- declared_agent_id
- —
- declared_chain
- —
- declared_registry
- —
- match
- —
- reason
- unclaimed
- registrations_seen
- 0
checked at 2026-08-10T07:04:43.545160Z
Answers?rung 6 · live
passA declared endpoint responds to a probe. Not implemented yet, so nobody passes or fails it.
passed
- endpoints
{"declared":"https://minimate-green.vercel.app/api/chat","elapsed_ms":782,"final_url":"https://minimate-green.vercel.app… (812 chars — expand)
{"declared":"https://minimate-green.vercel.app/api/chat","elapsed_ms":782,"final_url":"https://minimate-green.vercel.app/api/chat","http_status":405,"index":0,"kind":"https","name":"MCP","outcome":"not_live","probed":true,"probed_url":"https://minimate-green.vercel.app/api/chat"}, {"declared":"https://github.com/agntcy/oasf/","elapsed_ms":2334,"final_url":"https://github.com/agntcy/oasf/","http_status":200,"index":1,"kind":"https","name":"OASF","outcome":"live","probed":true,"probed_url":"https://github.com/agntcy/oasf/"}, {"declared":"https://minimate-green.vercel.app/api/health","elapsed_ms":1559,"final_url":"https://minimate-green.vercel.app/api/health","http_status":200,"index":2,"kind":"https","name":"MCP","outcome":"live","probed":true,"probed_url":"https://minimate-green.vercel.app/api/health"}- endpoints_answered_not_live
- 1
- endpoints_declared
- 3
- endpoints_live
- 2
- endpoints_our_error
- 0
- endpoints_payment_gated
- 0
- endpoints_probeable
- 3
- endpoints_probed
- 3
- endpoints_refused
- 0
checked at 2026-08-10T07:07:52.226139Z
Has feedback?rung 7 · attested
failAt least one on-chain feedback entry names this agent.
did not pass
- distinct_authors
- 0
- feedback_count
- 0
- reason
- no_feedback
checked at 2026-08-10T07:04:43.545160Z
Check it again, now
outside the censusOn-chain snapshot
celo- token id
- 9116
- owner
- 0x721e885be237ef193807d7a912c201c6a53da522
- block
- 74,443,315
- observed
- 2026-08-10T07:04:43.548588Z
What the fetch saw
data- scheme
- data
- request url
- —
- final url
- —
- http status
- —
- content type
- —
- size
- 2,288 bytes
- sha256
- 3ab7637f135b169797b1f09cc5e30b202937da98f1a969ad7e79abb5157ce9e5
- elapsed
- 0 ms
This run
reproducible- run
- 4131a5a1-0461-46ce-b393-bcd825d2113b
- chain
- celo
- pinned block
- 74,443,315
- agents
- 9,765
- started
- 2026-08-10T06:41:13.909696Z
- finished
- 2026-08-10T07:06:42.747601Z
- checker
- 0.7.0 · 55deaa9ce71c025a9199311a53cdc2de236eae53
- spec commit
- 68fc6765761a10fb26f0692df21c8a6f9d12b1be
cargo run -p sweeper -- celo # at block 74443315