{"id":8763,"name":"Collar Guardrail","description":"Deterministic pre-trade risk layer for autonomous AI trading agents on Robinhood Chain. Returns allow / warn / deny verdicts with the reasons attached and a tamper-evident audit hash. MCP callers are evaluated at a fixed Tier 1 ceiling ($5,000 notional). The per-wallet rate limiter shares a 60-second sliding window across the MCP, demo, and analyze endpoints.","card_url":"https://collarguardrail.com/.well-known/agent-card.json","endpoint":"https://api.collarguardrail.com","protocol_version":"0.3.0","first_seen":"2026-10-10T07:48:35.504799+00:00","last_verified":"2026-10-10T12:39:14.787693+00:00","card":{"url":"https://api.collarguardrail.com","name":"Collar Guardrail","skills":[{"id":"evaluate_trade","name":"Evaluate a trade","tags":["risk","guardrail","trading","compliance"],"endpoint":{"path":"/api/v1/analyze/trade","method":"POST","requires":"bearer"},"examples":["Evaluate a 10 NVDA buy from wallet 0x... before signing.","Check if a proposed ETH sell of 5 units crosses any limit."],"inputModes":["application/json"],"description":"Pre-trade risk check. Returns allow, warn, or deny, with every reason attached and a tamper-evident audit hash. Checks tier limits, oracle/V4 price source, slippage, market hours, cluster rate limits, and daily loss. If check_token_safety returned severity=danger for the contract, this skill automatically returns deny regardless of other checks. If the response contains an 'error' key, no verdict was produced — treat as a hard stop and do not execute the trade.","inputSchema":{"type":"object","required":["wallet","asset","side","amount","contract_address"],"properties":{"side":{"enum":["buy","sell"],"type":"string"},"asset":{"type":"string","maxLength":32,"description":"Asset symbol, e.g. NVDA, AAPL, ETH, USDG."},"amount":{"type":"number","description":"Quantity in token units, not USD.","exclusiveMinimum":0},"wallet":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"Wallet address the trade would execute from."},"request_id":{"type":"string","description":"Idempotency key, cached 5 minutes."},"contract_address":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"Must match the official registry entry for the symbol."},"max_slippage_bps":{"type":"integer","default":100,"maximum":1000,"minimum":0}},"additionalProperties":false},"outputModes":["application/json"],"outputSchema":{"type":"object","anyOf":[{"required":["decision","reasons","risk_score"]},{"required":["error"]}],"properties":{"tier":{"type":"integer"},"error":{"type":"string","description":"If present, no verdict was produced. Treat as a hard stop; do not execute the trade."},"reasons":{"type":"array","items":{"type":"string"}},"decision":{"enum":["allow","warn","deny"],"type":"string"},"audit_seq":{"type":"integer"},"price_usd":{"type":"number"},"timestamp":{"type":"integer"},"audit_hash":{"type":"string"},"request_id":{"type":"string"},"risk_score":{"type":"integer","maximum":100,"minimum":0},"price_source":{"enum":["oracle","uniswap_v4","fallback_default","unavailable"],"type":"string"},"daily_pnl_usd":{"type":"number"},"max_trade_usd":{"type":"number"},"calculated_notional_usd":{"type":"number"}}}},{"id":"evaluate_trade_paid","name":"Evaluate a trade (x402 paid, Tier 2)","tags":["risk","guardrail","trading","x402","paid"],"endpoint":{"path":"/api/x402/analyze","method":"POST","requires":"x402"},"examples":["Evaluate a 50 NVDA buy at Tier 2 via x402 payment.","Retry a paid evaluation after settling the x402 challenge."],"inputModes":["application/json"],"description":"Same as evaluate_trade but gated by an x402 payment. Evaluated as Tier 2 ($25,000 ceiling, 10/25 per-minute rate limits). Call WITHOUT payment_proof to receive a PaymentRequiredOutput challenge; settle on-chain; retry with the proof to receive a full verdict with tier=2. No COLR holdings are required — the on-chain payment is the credential. If the response contains an 'error' key, no verdict was produced — treat as a hard stop.","inputSchema":{"type":"object","required":["wallet","asset","side","amount","contract_address"],"properties":{"side":{"enum":["buy","sell"],"type":"string"},"asset":{"type":"string","maxLength":32},"amount":{"type":"number","exclusiveMinimum":0},"wallet":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"request_id":{"type":"string"},"payment_proof":{"type":"string","description":"x402 payment proof. Omit on first call to receive the challenge."},"contract_address":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"max_slippage_bps":{"type":"integer","default":100,"maximum":1000,"minimum":0}},"additionalProperties":false},"outputModes":["application/json"],"outputSchema":{"type":"object","anyOf":[{"required":["status"]},{"required":["decision","reasons","risk_score"]},{"required":["error"]}],"properties":{"tier":{"type":"integer"},"asset":{"type":"string"},"error":{"type":"string"},"amount":{"type":"string"},"pay_to":{"type":"string"},"status":{"enum":["payment_required"],"type":"string"},"network":{"type":"string"},"reasons":{"type":"array","items":{"type":"string"}},"decision":{"enum":["allow","warn","deny"],"type":"string"},"resource":{"type":"string"},"audit_seq":{"type":"integer"},"price_usd":{"type":"number"},"audit_hash":{"type":"string"},"request_id":{"type":"string"},"risk_score":{"type":"integer","maximum":100,"minimum":0},"description":{"type":"string"},"price_source":{"enum":["oracle","uniswap_v4","fallback_default","unavailable"],"type":"string"},"tier_granted":{"type":"integer"},"max_trade_usd":{"type":"number"},"max_timeout_seconds":{"type":"integer"},"calculated_notional_usd":{"type":"number"}}}},{"id":"check_token_safety","name":"Check token safety","tags":["security","honeypot","token","erc20"],"endpoint":{"path":"/api/v1/token-safety","method":"POST","requires":"none"},"examples":["Is contract 0x... a honeypot?","Check this token before I let the agent buy it."],"inputModes":["application/json"],"description":"Honeypot and contract safety check for any ERC-20 token. Returns severity (safe, warn, danger) and the specific risk factors found, using bytecode analysis and a live sell simulation. CRITICAL: when severity=danger, the next evaluate_trade call for the same contract is automatically denied. Use before trading unknown tokens or tokens absent from the official registry. If the response contains an 'error' key, the check failed — do not assume 'safe'.","inputSchema":{"type":"object","required":["contract_address"],"properties":{"contract_address":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},"additionalProperties":false},"outputModes":["application/json"],"outputSchema":{"type":"object","anyOf":[{"required":["severity"]},{"required":["error"]}],"properties":{"error":{"type":"string","description":"If present, the check failed. Do not assume 'safe'."},"severity":{"enum":["safe","warn","danger"],"type":"string"},"is_honeypot":{"type":"boolean"},"risk_factors":{"type":"array","items":{"type":"string"}},"owner_renounced":{"type":"boolean"},"sell_simulation":{"type":"object"},"owner_is_multisig":{"type":"boolean"}}}},{"id":"simulate_balance","name":"Simulate a wallet balance","tags":["simulation","balance","erc20"],"endpoint":{"path":"/api/v1/simulate-balance","method":"POST","requires":"none"},"inputModes":["application/json"],"description":"Read-only state-override simulation of an ERC-20 balance after a hypothetical trade. No transaction is sent. If the response contains an 'error' key, the simulation failed.","inputSchema":{"type":"object","required":["token_address","holder","delta"],"properties":{"delta":{"type":"number","description":"Signed amount. Negative = spend."},"holder":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"decimals":{"type":"integer","default":18,"maximum":36,"minimum":0},"balance_slot":{"type":"integer","maximum":64,"minimum":0},"token_address":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},"additionalProperties":false},"outputModes":["application/json"],"outputSchema":{"type":"object","anyOf":[{"required":["current","delta","post_trade"]},{"required":["error"]}],"properties":{"delta":{"type":"number"},"error":{"type":"string","description":"If present, the simulation failed."},"holder":{"type":"string"},"current":{"type":"number"},"post_trade":{"type":"number"},"balance_slot":{"type":"integer"},"token_address":{"type":"string"}}}},{"id":"get_supported_assets","name":"List supported assets","tags":["registry","assets","robinhood-chain"],"endpoint":{"path":"/api/v1/assets","method":"GET","requires":"none"},"inputModes":["application/json"],"description":"The official Robinhood Chain asset registry with canonical contract addresses. Resolve a symbol correctly before calling evaluate_trade.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"outputModes":["application/json"],"outputSchema":{"type":"array","items":{"type":"object","properties":{"symbol":{"type":"string"},"is_native":{"type":"boolean"},"contract_address":{"type":"string"}},"additionalProperties":false}}},{"id":"verify_audit_trail","name":"Verify audit trail","tags":["audit","verification","compliance"],"endpoint":{"path":"/api/v1/audit/verify/{wallet}","method":"GET","requires":"none"},"inputModes":["application/json"],"description":"Recompute every past decision's SHA-256 hash and verify the hash-chain links. Proves no decision was edited, deleted, or reordered. If the response contains an 'error' key, verification could not run.","inputSchema":{"type":"object","required":["wallet"],"properties":{"limit":{"type":"integer","default":100,"maximum":1000,"minimum":1},"wallet":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},"additionalProperties":false},"outputModes":["application/json"],"outputSchema":{"type":"object","anyOf":[{"required":["healthy"]},{"required":["error"]}],"properties":{"error":{"type":"string","description":"If present, verification could not run."},"total":{"type":"integer"},"wallet":{"type":"string"},"healthy":{"type":"boolean"},"records":{"type":"array","items":{"type":"object"}},"tampered":{"type":"integer"}}}}],"iconUrl":"https://collarguardrail.com/icon.svg","version":"1.0.3","provider":{"url":"https://collarguardrail.com","organization":"Collar"},"security":[{"bearer":[]},{"x402":[]}],"riskScore":{"max":100,"min":0,"bands":[{"max":30,"min":0,"decision":"allow"},{"max":70,"min":31,"decision":"warn"},{"max":100,"min":71,"decision":"deny"}],"notes":"Exact per-signal weights are intentionally not published — publishing them enables adversarial tuning. Full methodology at methodologyUrl (human) and methodologyMarkdownUrl (agent).","categories":[{"max":30,"name":"Registry & identity"},{"max":30,"name":"Contract safety"},{"max":15,"name":"Price & market data quality"},{"max":15,"name":"Wallet behavior"},{"max":10,"name":"Trade parameters"}],"deterministic":true,"hardOverrides":["asset/contract_address mismatch (suspected fake token)","check_token_safety returned severity=danger recently","price_source=unavailable above the tier's advisory floor","any response with an 'error' key"]},"statusUrl":"https://api.collarguardrail.com/status.json","latencyUrl":"https://api.collarguardrail.com/latency.html","description":"Deterministic pre-trade risk layer for autonomous AI trading agents on Robinhood Chain. Returns allow / warn / deny verdicts with the reasons attached and a tamper-evident audit hash. MCP callers are evaluated at a fixed Tier 1 ceiling ($5,000 notional). The per-wallet rate limiter shares a 60-second sliding window across the MCP, demo, and analyze endpoints.","capabilities":{"streaming":false,"pushNotifications":false,"stateTransitionHistory":false},"knownIssuesUrl":"https://api.collarguardrail.com/.well-known/known-issues.json","latencyJsonUrl":"https://api.collarguardrail.com/metrics/latency.json","methodologyUrl":"https://api.collarguardrail.com/methodology.html","protocolVersion":"0.3.0","securitySchemes":{"x402":{"type":"http","scheme":"x402","description":"$0.10 USDG per call on Robinhood Chain (eip155:4663). No signup. Payment settles via the x402 protocol and grants Tier 2 access ($25,000 max trade). Discovery document at /.well-known/x402.json."},"bearer":{"type":"http","scheme":"bearer","description":"JWT obtained via EIP-191 wallet signature at /api/v1/auth/wallet."}},"documentationUrl":"https://collarguardrail.com/agent-docs.html","defaultInputModes":["application/json"],"defaultOutputModes":["application/json"],"preferredTransport":"HTTP+JSON","methodologyMarkdownUrl":"https://api.collarguardrail.com/.well-known/methodology.md"},"signature_status":"unsigned","signature_detail":"No card signature supplied","signature_key_url":null,"signature_checked_at":"2026-10-10T12:39:14.787693+00:00","domain_claimed_at":null,"domain_proof_checked_at":null,"source_name":"Agenstry federation","source_url":"https://agenstry.com/docs","last_check":{"checked_at":"2026-10-10T12:39:14.787693+00:00","success":true,"http_status":200,"detail":"Agent Card validated"},"also_published_at":[{"card_url":"https://api.collarguardrail.com/.well-known/agent-card.json"}],"history_urls":["https://collarguardrail.com/.well-known/agent-card.json","https://api.collarguardrail.com/.well-known/agent-card.json"],"skills":[{"skill_id":"check_token_safety","name":"Check token safety","description":"Honeypot and contract safety check for any ERC-20 token. Returns severity (safe, warn, danger) and the specific risk factors found, using bytecode analysis and a live sell simulation. CRITICAL: when severity=danger, the next evaluate_trade call for the same contract is automatically denied. Use before trading unknown tokens or tokens absent from the official registry. If the response contains an 'error' key, the check failed — do not assume 'safe'.","tags":["security","honeypot","token","erc20"],"quality_warning":false},{"skill_id":"evaluate_trade","name":"Evaluate a trade","description":"Pre-trade risk check. Returns allow, warn, or deny, with every reason attached and a tamper-evident audit hash. Checks tier limits, oracle/V4 price source, slippage, market hours, cluster rate limits, and daily loss. If check_token_safety returned severity=danger for the contract, this skill automatically returns deny regardless of other checks. If the response contains an 'error' key, no verdict was produced — treat as a hard stop and do not execute the trade.","tags":["risk","guardrail","trading","compliance"],"quality_warning":false},{"skill_id":"evaluate_trade_paid","name":"Evaluate a trade (x402 paid, Tier 2)","description":"Same as evaluate_trade but gated by an x402 payment. Evaluated as Tier 2 ($25,000 ceiling, 10/25 per-minute rate limits). Call WITHOUT payment_proof to receive a PaymentRequiredOutput challenge; settle on-chain; retry with the proof to receive a full verdict with tier=2. No COLR holdings are required — the on-chain payment is the credential. If the response contains an 'error' key, no verdict was produced — treat as a hard stop.","tags":["risk","guardrail","trading","x402","paid"],"quality_warning":false},{"skill_id":"get_supported_assets","name":"List supported assets","description":"The official Robinhood Chain asset registry with canonical contract addresses. Resolve a symbol correctly before calling evaluate_trade.","tags":["registry","assets","robinhood-chain"],"quality_warning":false},{"skill_id":"simulate_balance","name":"Simulate a wallet balance","description":"Read-only state-override simulation of an ERC-20 balance after a hypothetical trade. No transaction is sent. If the response contains an 'error' key, the simulation failed.","tags":["simulation","balance","erc20"],"quality_warning":false},{"skill_id":"verify_audit_trail","name":"Verify audit trail","description":"Recompute every past decision's SHA-256 hash and verify the hash-chain links. Proves no decision was edited, deleted, or reordered. If the response contains an 'error' key, verification could not run.","tags":["audit","verification","compliance"],"quality_warning":false}],"quality_flags":[],"check_history":{"checks":6,"passed":6},"recent_checks":[{"card_url":"https://collarguardrail.com/.well-known/agent-card.json","checked_at":"2026-10-10T12:39:14.787693+00:00","success":true,"http_status":200,"detail":"Agent Card validated"},{"card_url":"https://api.collarguardrail.com/.well-known/agent-card.json","checked_at":"2026-10-10T12:38:25.627133+00:00","success":true,"http_status":200,"detail":"Agent Card validated"},{"card_url":"https://collarguardrail.com/.well-known/agent-card.json","checked_at":"2026-10-10T07:59:16.473506+00:00","success":true,"http_status":200,"detail":"Agent Card validated"},{"card_url":"https://api.collarguardrail.com/.well-known/agent-card.json","checked_at":"2026-10-10T07:58:39.730609+00:00","success":true,"http_status":200,"detail":"Agent Card validated"},{"card_url":"https://api.collarguardrail.com/.well-known/agent-card.json","checked_at":"2026-10-10T07:51:27.398142+00:00","success":true,"http_status":200,"detail":"Agent Card validated"},{"card_url":"https://collarguardrail.com/.well-known/agent-card.json","checked_at":"2026-10-10T07:48:35.504799+00:00","success":true,"http_status":200,"detail":"Agent Card validated"}],"endpoint_tls_check":{"checked_at":"2026-10-10T12:39:14.787693+00:00","success":true,"detail":"Valid TLS connection to advertised endpoint host; no A2A request sent"},"protocol_check":{"checked_at":"2026-10-10T07:48:35.504799+00:00","state":"unconfirmed","http_status":404,"detail":"Endpoint returned a generic not-found response"},"events":[],"relationships":[],"verification":{"agent_card_url":"https://collarguardrail.com/.well-known/agent-card.json","last_successful_card_check":"2026-10-10T12:39:14.787693+00:00","latest_card_check":{"checked_at":"2026-10-10T12:39:14.787693+00:00","success":true,"http_status":200,"detail":"Agent Card validated"},"signature_status":"unsigned","signature_checked_at":"2026-10-10T12:39:14.787693+00:00","task_endpoint_tested":true,"task_execution_tested":false,"endpoint_tls_checked_at":"2026-10-10T12:39:14.787693+00:00","endpoint_tls_reachable":true,"protocol_check_state":"unconfirmed","protocol_checked_at":"2026-10-10T07:48:35.504799+00:00","provider_identity_verified":false,"domain_claimed_at":null,"domain_proof_checked_at":null}}