{"audit":{"version":"1.3","generated_at":"2026-05-22T23:08:52.802694+00:00","generated_by":"Agenstry","report_url":"https://agenstry.com/agents/floor-a2a-production.up.railway.app","methodology_url":"https://agenstry.com/methodology","verifier_jwks_url":"https://agenstry.com/.well-known/jwks.json","subject":{"domain":"floor-a2a-production.up.railway.app","name":"FLOOR OTC Agent","url":"https://floor-a2a-production.up.railway.app/.well-known/agent.json"}},"identity":{"provider":{"organization":"Agora0x","url":"https://floor-otc.vercel.app"},"registry_verification":null,"signature":{"signed":false,"signature_valid":null}},"protocol":{"version":null,"supports_streaming":false,"supports_push_notifications":false},"operational":{"live_state":"wrong_response","live_responds":false,"last_status_code":200,"last_elapsed_ms":180,"last_error":null},"track_record":{"first_seen":"2026-05-20T19:01:01.287170+00:00","last_checked":"2026-05-22T14:03:10.620038+00:00","last_seen_ok":"2026-05-22T14:03:10.620038+00:00","checks_total":3,"checks_ok":3,"uptime_pct":100.0,"archived":false,"archived_reason":null},"conformance":{"score":34,"grade":"F","summary":"F-grade: card is reachable but fails most operational signals.","criteria":[{"key":"valid_card","label":"Valid AgentCard","points":10,"max_points":10,"status":"pass","detail":"Schema-validated A2A AgentCard returned by the well-known endpoint."},{"key":"live_responds","label":"Live JSON-RPC","points":5,"max_points":25,"status":"fail","detail":"Endpoint replies but body isn't a valid JSON-RPC 2.0 A2A response."},{"key":"protocol_version","label":"Protocol version","points":0,"max_points":10,"status":"fail","detail":"No protocolVersion in card."},{"key":"signature","label":"JWS signature","points":0,"max_points":10,"status":"info","detail":"Card is unsigned (most published agents are)."},{"key":"uptime","label":"Uptime track record","points":0,"max_points":15,"status":"info","detail":"Only 3 probes so far — need ≥5 for an uptime grade."},{"key":"skills","label":"Skill declaration","points":10,"max_points":10,"status":"pass","detail":"Declares 7 skills with structured metadata."},{"key":"verified_identity","label":"Verified Identity","points":5,"max_points":10,"status":"partial","detail":"Provider declared: Agora0x (https://floor-otc.vercel.app). Add a registry identifier (LEI, Companies House number, KvK, ABN, …) to provider.legalEntity for full verified-business credit."},{"key":"freshness","label":"Freshness + modern flags","points":4,"max_points":5,"status":"pass","detail":"seen in upstream source within 0d"},{"key":"security","label":"Security declaration","points":0,"max_points":5,"status":"info","detail":"No securitySchemes declared (common for open agents — not penalised)."}]},"skills":[{"id":"get_quote","name":"Get OTC Quote","description":"Get a live quote for a token swap at real market rates. Zero spread. Supports USDC, USDT, USDbC, DAI, WETH, ETH, BTC, and more.","tags":["otc","swap","quote","defi","trading"],"examples":["Get a quote for swapping 1000 USDC to DAI","How much WETH can I get for 5000 USDC?","Quote 10000 USDC to WETH"],"inputModes":[],"outputModes":[]},{"id":"execute_trade","name":"Execute OTC Trade","description":"Execute a trustless token swap through on-chain escrow on Base mainnet. Both parties deposit tokens, settlement is atomic.","tags":["otc","swap","trade","escrow","settlement"],"examples":["Swap 1000 USDC for DAI","Execute trade: 5000 USDC to WETH"],"inputModes":[],"outputModes":[]},{"id":"check_trade","name":"Check Trade Status","description":"Check the on-chain status of an existing trade by its trade ID.","tags":["trade","status","escrow"],"examples":["Check trade status for 0x8cb14ec9..."],"inputModes":[],"outputModes":[]},{"id":"get_prices","name":"Get Live Prices","description":"Get current token prices from CoinGecko.","tags":["prices","market","rates"],"examples":["What are the current token prices?"],"inputModes":[],"outputModes":[]},{"id":"prepare_trade","name":"Prepare CoW Order","description":"Build a CoW Protocol order for the calling agent to sign. Returns the EIP-712 typed data, FLOOR appData (with 25 bps partner fee), and a preflight check on the trader's balance and relayer allowance. The trader signs locally; FLOOR never custodies funds.","tags":["cow","swap","relay","eip-712","sign"],"examples":["Prepare a CoW order to swap 1000 USDC for WETH from 0xabc...","Build me a sell order: 0.5 WETH to USDC, trader 0xabc..."],"inputModes":[],"outputModes":[]},{"id":"submit_signed_trade","name":"Submit Signed CoW Order","description":"Forward a trader-signed CoW order to the CoW order book on Base. FLOOR validates the EIP-712 signature locally, then relays. Returns the orderUid and explorer URL. Solvers fill in the next batch.","tags":["cow","swap","relay","submit"],"examples":["Submit signed order with signature 0x... and trader 0xabc..."],"inputModes":[],"outputModes":[]},{"id":"check_cow_order","name":"Check CoW Order","description":"Look up the status of a CoW order by its 56-byte orderUid. Returns open / fulfilled / cancelled / expired plus executed amounts.","tags":["cow","status","order"],"examples":["Check CoW order 0x..."],"inputModes":[],"outputModes":[]}],"provenance":[{"source":"github_code","first_seen":"2026-05-20T19:01:01.287170+00:00"},{"source":"recrawl_hot","first_seen":"2026-05-22T07:49:13.413156+00:00"}],"recent_probes":[{"fetched_at":"2026-05-22T14:03:10.620038+00:00","ok":true,"status_code":200,"error":null,"elapsed_ms":180,"live_responds":false},{"fetched_at":"2026-05-22T07:49:13.413156+00:00","ok":true,"status_code":200,"error":null,"elapsed_ms":168,"live_responds":false},{"fetched_at":"2026-05-20T19:01:01.287170+00:00","ok":true,"status_code":200,"error":null,"elapsed_ms":171,"live_responds":false}],"catalog_attestation":null,"verification_history":[],"signatures":[{"protected":"eyJhbGciOiJFUzI1NiIsImprdSI6Imh0dHBzOi8vYWdlbnN0cnkuY29tLy53ZWxsLWtub3duL2p3a3MuanNvbiIsImtpZCI6ImFnZW50ZmluZGVyLWVzMjU2LTEiLCJ0eXAiOiJKT1NFIn0","signature":"SOH-dw7AdP8azIPH4V0l3_0d5MbAStSddzd-uDbRVYuMvjQw_VxmIDgcDxzc4A4H7iWeKAr2WMTsdYja1qaCoQ"}]}