{"audit":{"version":"1.5","generated_at":"2026-11-13T15:15:10.314389+00:00","generated_by":"Agenstry","report_url":"https://agenstry.com/agents/api.blackforge.so","methodology_url":"https://agenstry.com/methodology","verifier_jwks_url":"https://agenstry.com/.well-known/jwks.json","subject":{"domain":"api.blackforge.so","name":"BlackForge","url":"https://api.blackforge.so/.well-known/agent-card.json"}},"identity":{"provider":{"organization":"BlackForge","url":"https://blackforge.so"},"registry_verification":null,"signature":{"signed":false,"signature_valid":null}},"protocol":{"version":"1.0","supports_streaming":false,"supports_push_notifications":false},"operational":{"live_state":"no_url","live_responds":null,"last_status_code":200,"last_elapsed_ms":67,"last_error":null},"track_record":{"first_seen":"2026-10-30T11:21:37.247051+00:00","last_checked":"2026-11-13T12:38:02.956244+00:00","last_seen_ok":"2026-11-13T12:38:02.956244+00:00","checks_total":29,"checks_ok":29,"uptime_pct":100.0,"uptime_window_days":30,"uptime_probes":1,"archived":false,"archived_reason":null},"conformance":{"score":52,"grade":"D","summary":"D-grade: significant issues, auth-gated, partially broken, or stale.","criteria":[{"key":"valid_card","label":"Valid AgentCard","points":10,"max_points":10,"status":"pass","detail":"Parseable AgentCard returned by the well-known endpoint (Agenstry readiness signal; not an official TCK certification)."},{"key":"live_responds","label":"Live JSON-RPC","points":10,"max_points":25,"status":"partial","detail":"Card declares only gRPC / HTTP+JSON interfaces; the live probe covers JSON-RPC, so the endpoint was not exercised. Not a defect in the card."},{"key":"protocol_version","label":"Protocol version","points":10,"max_points":10,"status":"pass","detail":"Declares A2A 1.0 with supportedInterfaces[] (current v1 card shape)."},{"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 1 probe so far, need ≥5 for an uptime grade."},{"key":"skills","label":"Skill declaration","points":10,"max_points":10,"status":"pass","detail":"Declares 5 skills with structured metadata."},{"key":"verified_identity","label":"Verified Identity","points":5,"max_points":10,"status":"partial","detail":"Provider declared: BlackForge (https://blackforge.so). 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":5,"max_points":5,"status":"pass","detail":"declares 1 modern capability flag(s) (x402); seen in upstream source within 0d"},{"key":"security","label":"Security declaration","points":2,"max_points":5,"status":"partial","detail":"Declares 1 security scheme(s) but none use PKCE or mTLS."}]},"card_read":{"findings":[],"clean":true,"source_url":"https://api.blackforge.so/.well-known/agent-card.json"},"skills":[{"id":"catalog","name":"Catalog and symbols","description":"Find what can be read before paying for anything: every venue and every column, spot and futures, with its unit, definition and the lowest plan that unlocks it (free, no key), and the pairs each venue lists. Routes: GET /v1/catalog, GET /v1/symbols.","tags":["catalog","discovery","symbols","metadata"],"examples":["GET /v1/catalog","GET /v1/symbols?exchange=binance"],"inputModes":["application/json"],"outputModes":["application/json"]},{"id":"spot","name":"Spot market data","description":"Raw measurements for any spot pair on the major exchanges: order book depth and shape, liquidity added and pulled, order ladders, market order cost, trade flow and trade sizes, candles and market context. The newest row for one pair, or one column over a time range at 1m, 5m, 1h or 1d. Routes: GET /v1/series, GET /v1/latest.","tags":["crypto","market-data","order-book","liquidity","trade-flow"],"examples":["GET /v1/latest?exchange=binance&symbol=BTCUSDT","GET /v1/series?exchange=binance&symbol=BTCUSDT&metric=price&from=2026-11-01T00:00:00Z&to=2026-11-02T00:00:00Z&interval=1h"],"inputModes":["application/json"],"outputModes":["application/json"]},{"id":"futures","name":"Futures data","description":"Linear perpetual and dated futures on the major futures venues: mark, index and last price, funding and predicted funding, open interest, taker flow and liquidations. The newest row, a series, a ranking across contracts and venues, and the liquidation event feed (Max and up). Routes: GET /v1/futures/latest, GET /v1/futures/series, GET /v1/futures/top, GET /v1/futures/liquidations, GET /v1/futures/symbols.","tags":["crypto","futures","funding-rate","open-interest","liquidations"],"examples":["GET /v1/futures/latest?exchange=binance&symbol=BTCUSDT","GET /v1/futures/top?metric=fundingRate&baseAsset=BTC"],"inputModes":["application/json"],"outputModes":["application/json"]},{"id":"live-formulas","name":"Live formulas and alerts","description":"Write your own measure from order book and trade data across venues, computed server-side in real time, and get notified by email or a signed webhook when it crosses a value you set (Ultra). Routes: POST /v1/formulas/validate, POST /v1/formulas, GET /v1/formulas, GET /v1/formulas/{id}, DELETE /v1/formulas/{id}, POST /v1/alerts, GET /v1/alerts, PATCH /v1/alerts/{id}, DELETE /v1/alerts/{id}, GET /v1/alerts/{id}/events.","tags":["formulas","alerts","webhooks","real-time"],"examples":["POST /v1/formulas/validate {\"expr\": \"mid(binance:BTCUSDT) - mid(okx:BTC-USDT)\"}"],"inputModes":["application/json"],"outputModes":["application/json"]},{"id":"account","name":"Usage and credits","description":"A key's recent requests and remaining monthly rows, and a prepaid bundle of pay per call credits bought over x402. Routes: POST /v1/credits, GET /v1/usage.","tags":["usage","billing","x402"],"examples":["GET /v1/usage"],"inputModes":["application/json"],"outputModes":["application/json"]}],"provenance":[{"source":"agentic_market","first_seen":"2026-10-30T11:21:37.247051+00:00"},{"source":"recrawl_paid","first_seen":"2026-10-30T11:22:54.058949+00:00"},{"source":"cdp_discovery","first_seen":"2026-10-31T11:28:05.835565+00:00"}],"recent_probes":[{"fetched_at":"2026-11-13T12:38:02.956244+00:00","ok":true,"status_code":200,"error":null,"elapsed_ms":67,"live_responds":null},{"fetched_at":"2026-11-06T12:09:36.962468+00:00","ok":false,"status_code":404,"error":"HTTP 404","elapsed_ms":null,"live_responds":null},{"fetched_at":"2026-10-30T11:22:54.056237+00:00","ok":false,"status_code":404,"error":"HTTP 404","elapsed_ms":null,"live_responds":null}],"catalog_attestation":null,"operator_revenue_evidence":{"evidence_class":"operator_submitted","authenticity":{"rung":"no_operator_evidence","rank":0,"why":"No verifiable operator evidence has been submitted for this agent.","thresholds":{"min_independent_payers":3,"min_verified_usd":25.0},"engine_table":"agent_authenticity","merge_rule":"max(existing_rank, rank)"},"metric_metadata":{"provenance":"operator_submitted_evidence","confidence":"attested","coverage":{"numerator":0},"as_of":"2026-11-13T15:15:10.327594+00:00","definition":"Revenue proofs submitted by the verified owner and re-checked by Agenstry against the settlement chain or the operator's own Stripe account. Only independently confirmed proofs are counted."},"counts":{"retained":0,"verified":0,"unverifiable":0},"verified":{"gross_usd":0.0,"transactions":0,"independent_payers":0},"detail_url":"https://agenstry.com/api/agents/api.blackforge.so/evidence","dispute_url":"https://agenstry.com/agents/api.blackforge.so/dispute"},"verification_history":[]}