langchain-collar
LangChain tools for Collar Guardrail — deterministic pre-trade risk checks for AI trading agents on Robinhood Chain.
What is this?
This package wraps the Collar Guardrail
MCP server as native LangChain tools. Any LangChain agent can now evaluate
proposed trades against a deterministic risk policy before executing
them — with allow / warn / deny verdicts, a 0–100 risk score, and a
tamper-evident SHA-256 audit hash.
If you're building a trading agent that needs to respect rate limits, tier ceilings, honeypot checks, or market-hours rules, these tools enforce those constraints outside your agent's own runtime.
Installation
pip install langchain-collar
Requires Python 3.10+ and langchain-core>=0.3.0.
Quick Start
1. Add the tools to any LangChain agent
from langchain_collar import get_tools
from langchain.agents import create_agent
tools = get_tools()
agent = create_agent("gpt-4o", tools)
result = agent.invoke({
"messages": [{
"role": "user",
"content": (
"Before executing a 10 NVDA buy from wallet "
"0x1234567890abcdef1234567890abcdef12345678, "
"run a pre-trade risk check."
),
}]
})
print(result)
2. Or call a tool directly
from langchain_collar import evaluate_trade
verdict = evaluate_trade.invoke({
"wallet": "0x1234567890abcdef1234567890abcdef12345678",
"asset": "NVDA",
"contract_address": "0x<official_registry_address>",
"side": "buy",
"amount": 10.0,
})
print(verdict)
Available Tools
| Tool | Description |
|---|---|
evaluate_trade |
Call before every trade. Returns allow / warn / deny, reasons, risk score, and audit hash. Treat deny as a hard stop. |
check_token_safety |
Honeypot / contract safety check for any ERC-20 token. Returns severity (safe / warn / danger) plus a sell-simulation result. |
simulate_balance |
Read-only simulation of a wallet's ERC-20 balance after a hypothetical trade. No transaction is sent. |
get_supported_assets |
The official Robinhood Chain asset registry. Resolve a symbol to its canonical contract address before calling evaluate_trade. |
verify_audit_trail |
Recomputes every past decision's SHA-256 hash and verifies the hash-chain links. Returns healthy=true only if nothing was tampered with. |
How It Works
Each tool is a thin wrapper around the Collar Guardrail MCP server at:
https://backendai-x4m1.onrender.com/mcp-http/mcp
The MCP transport is Streamable HTTP (protocol version 2025-06-18).
No API key is required for the MCP endpoint — every call is evaluated at a
fixed Tier 1 ceiling ($5,000 notional). For higher limits, use the
REST API with wallet-signature authentication (see the Collar docs).
Decision Semantics
| Decision | Meaning | Action |
|---|---|---|
allow |
Policy passed. | Safe to execute. |
warn |
Policy soft-violated. | Trade may proceed but is flagged. Reasons prefixed with ADVISORY: are non-blocking. |
deny |
Policy hard-violated. | Do not execute. Reasons are blocking. |
Safety rule: If a verdict contains an
errorkey, no verdict was produced. Treat it as a hard stop. Ifdecision == "deny", do not execute the trade.
Example: Full Pre-Trade Flow
from langchain_collar import (
evaluate_trade,
get_supported_assets,
check_token_safety,
)
# 1. Resolve the symbol to its canonical contract address
assets = get_supported_assets.invoke({})
print(assets) # → list of {symbol, contract_address, is_native}
# 2. Optionally check the token for honeypot risk
safety = check_token_safety.invoke({
"contract_address": "0x<token_address>",
})
print(safety) # → {"severity": "safe", ...}
# 3. Run the pre-trade risk check
verdict = evaluate_trade.invoke({
"wallet": "0x1234567890abcdef1234567890abcdef12345678",
"asset": "NVDA",
"contract_address": "0x<official_registry_address>",
"side": "buy",
"amount": 10.0,
"max_slippage_bps": 100,
})
if '"decision": "deny"' in verdict:
raise RuntimeError("Trade denied by Collar Guardrail")
# Proceed with the trade only if the verdict is allow or warn
Configuration
The package talks to the public Collar MCP endpoint by default. If you are self-hosting Collar, override the base URL:
import langchain_collar.tools as tools
tools._BASE_URL = "https://your-colar-instance.example.com"
tools._MCP_ENDPOINT = f"{tools._BASE_URL}/mcp-http/mcp"
Related Resources
| Resource | URL |
|---|---|
| Collar Guardrail | https://collar-b46l.onrender.com |
| MCP Server Card | https://backendai-x4m1.onrender.com/.well-known/mcp/server-card.json |
| Agent Integration Guide | https://backendai-x4m1.onrender.com/agent-docs.html |
| API Reference | https://backendai-x4m1.onrender.com/docs.html |
| MCP Registry | io.github.aiguardrail/backend |
Contributing
Issues and pull requests are welcome. Please open an issue first to discuss larger changes.
Disclosure
Collar is independent third-party infrastructure. Not built, operated, or endorsed by Robinhood. COLR is a separate token, not affiliated with Robinhood Markets, Inc.
License
MIT — see LICENSE.
Release files for langchain-collar 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| langchain_collar-1.0.0.tar.gz | 5.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| langchain_collar-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size:12.6 kB
Release files / langchain_collar-1.0.0.tar.gz
| Download URL | langchain_collar-1.0.0.tar.gz |
|---|---|
| Size | 5.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0a611c2e2bce160857d012caa4e9bd61fbeb2836f927e757cc4e20da18f222c5
|
|
BLAKE2b-256 checksum How to use checksums |
fb39aea811f55bbbeff595bffb0e7146ccd30ba9f8378cecde05d7331a5f5dfd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 17, 2026.
Transparency logRelease files / langchain_collar-1.0.0-py3-none-any.whl
| Download URL | langchain_collar-1.0.0-py3-none-any.whl |
|---|---|
| Size | 6.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
121904839b4c1864f29b46012009daa1f95caba78471ccb86bccb17e26ff35a6
|
|
BLAKE2b-256 checksum How to use checksums |
90d111462bcbc804792ed02adf551bf895fd4fd88296ca2407ab856ee02b01e9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 17, 2026.
Transparency log