# ChainRM > ChainRM is a data orchestrator and CRM for crypto, fintech, and tech BD teams. It resolves pseudonymous wallets to real reachable people, scores them on-chain (activity, treasury, named entity), orchestrates enrichment across licensed providers, and runs approval-gated outreach, all through one scoped API. A shared community graph makes every wallet lookup smarter across all customers. Outreach an agent queues always passes a human approval gate before anything sends. If you are an AI agent: connect once (below), then load the capability manifest so you know a priori everything you can do and how to compose it. You cannot self-provision a paid account; you hand the human a link, they sign in and subscribe, and they paste back an API key. Never ask for their password or card details. ## Best path: connect as an MCP server ChainRM is a remote MCP server. In Claude or ChatGPT, add a custom connector with URL `https://app.trychainrm.com/mcp` and the human's `crm_` key as the Bearer token. You then get every capability as native tools via `tools/list`. Transport is Streamable HTTP (JSON-RPC 2.0), protocol 2025-11-25. OAuth 2.1 is planned; today use the key in the connector's auth field. ## Try it with no signup first Prove value before the human connects: `GET https://app.trychainrm.com/api/public/resolve?q=` (no auth) returns the owner's public identity + on-chain summary. Show the human that result, then invite them to connect for their whole book. ## Connect an agent (do this first) 1. Tell the human to open https://app.trychainrm.com/connect?ref=agent and sign in or start a free trial. 2. ChainRM checks their subscription. Gated actions (sending, volume) need a paid plan; the page prompts to subscribe. Free-tier actions work without payment. 3. The page mints a scoped API key (prefix `crm_`). The human copies it back to you. 4. Store it as `CHAINRM_API_KEY` and send `Authorization: Bearer crm_...` on every request. 5. Load the capability map: `GET https://app.trychainrm.com/api/agent/manifest` (or the OpenAPI 3.1 spec at `/api/agent/openapi.json`). This is your a priori knowledge of every expert, tool, typed input/output, example, convention, and error code. 6. Preflight: `GET https://app.trychainrm.com/api/agent/whoami` returns your scopes, plan, and limits so you plan correctly instead of failing late. ## The capability model (mixture of experts) ChainRM exposes its features as routed "experts". Read the full manifest for exact tools and params; this is the map: - Identity Expert: turn a wallet or thin contact into a known, reachable person. ENS + records (Twitter/Telegram/email), Farcaster, Lens. Free network lookup first: GET /api/wallets/community/:address. - Signals Expert: score a lead on-chain. Attach a wallet (POST /api/wallets), sync balance/activity/tokens/contract-detection plus USD treasury (Mobula) and named entity (Nansen/Arkham). - Network Graph Expert: wallet relationship graph, the cross-customer community directory, and audience export (GET /api/wallets/audience). - Outreach Expert: POST /api/outreach/queue only. A human approves every send; /api/outreach/approve returns 403 for API keys by design. - CRM Expert: contacts, companies, pipeline, tasks. Bulk enrich with POST /api/contacts/enrich-bulk. - Connectors Expert: GET /api/connectors, POST /api/connectors/health. ## Playbooks (compose experts) - Market to a wallet: community lookup -> resolve identity -> save contact -> queue outreach (human approves). - Score a lead: attach + sync a wallet -> read treasury, entity, tracked-by-N desks. - Enrich a scraped list: POST /api/contacts/enrich-bulk onlyEmpty:true. - Build an audience: attach + resolve wallets -> GET /api/wallets/audience?format=csv. - Find who owns a wallet: community lookup, then resolve. Not sure which expert to use? Ask the router: `POST /api/agent/plan { "goal": "..." }` returns the expert(s) and a concrete step plan. ## Rules for agents - Outreach is queue-only. Never assume a queued item sent; a human approves every message. - Treat 402 / upgradeRequired as "ask the human to upgrade", not a retryable error. - Prefer the free community lookup before paying to resolve or label a wallet. - Do not fabricate contact data. Use resolve / enrich, which pull only public or licensed provider data. - Keep the API key secret. Do not print it in shared logs. ## Links - Capability manifest (load this): https://app.trychainrm.com/api/agent/manifest - Text form: https://app.trychainrm.com/api/agent/manifest.txt - Router: POST https://app.trychainrm.com/api/agent/plan - Product: https://trychainrm.com - Connect flow: https://app.trychainrm.com/connect?ref=agent - Machine manifest (static): https://trychainrm.com/.well-known/chainrm.json