Production-ready examples for consuming the AlgoVault Verifiable-Signal v1.0 spec across downstream execution platforms. Each examples/<platform>/ directory is a self-contained transformer + demo for one consumer platform.
- Specification:
docs/INTEROP-SPEC-v1.md - JSON Schema:
schemas/verifiable-signal-v1.json - Reference emitter: AlgoVault MCP at
https://api.algovault.com/mcp(tool:get_trade_call)
Most examples ship as transform code (transform.ts / transform.py + tests + run.ts / run.py). Some platforms (those that are themselves MCP servers, or otherwise don't accept signal-input outbound) ship as reference-architecture documentation instead — a single emitter-neutral README.md documenting the cross-MCP orchestration pattern, with no transform code. A third class — MCP-connect recipes (examples/mcp-connect/) — covers AI-agent frameworks that consume a remote MCP server natively (LangChain, Vercel AI SDK, CrewAI): a short README + runnable snippet that points the framework's MCP client at api.algovault.com/mcp in ~5 lines, no transform code. Coinbase AgentKit — which can't consume a remote MCP server natively — gets a dedicated npm action provider, examples/agentkit/. A fourth class — decision-layer examples (examples/typesafe-jev/) — sits between the verdict and execution rather than downstream of it: the transformer returns a TypeSafe SystemOneRequest, a System One model answers typed questions about acting on the verdict, and code applies every threshold.
| Platform | Folder | Transformer signature | Transport |
|---|---|---|---|
| AI-Trader (ai4trade.ai) | examples/ai4trade/ |
toAi4tradeRequest(signal): Ai4tradeRequest | null |
REST POST /api/signals/realtime |
| Nautilus Trader | examples/nautilus_trader/ |
to_nautilus_signal(signal) -> AlgoVaultSignal | None |
Python in-process AlgoVaultSignal(Data) publish |
| 3Commas | examples/3commas/ |
makeToThreeCommasRequest(config) → (signal) => ThreeCommasRequest | null |
REST POST Signal Bot custom-signal webhook |
| QuantDinger | examples/quantdinger/ |
(reference-architecture doc) | IDE-mediated cross-MCP orchestration |
| Cryptohopper | examples/cryptohopper/ |
makeToCryptohopperRequest(config) → (signal) => CryptohopperRequest | null |
REST GET external-Signaler endpoint with HMAC-sha512 X-Hub-Signature |
| Hummingbot | examples/hummingbot/ |
to_hummingbot_signal(signal) -> HummingbotSignal | None |
Python in-process TypedDict → OrderCandidate(**signal) for StrategyV2Base |
| FreqTrade | examples/freqtrade/ |
to_freqtrade_signal(signal) -> FreqtradeSignal | None |
Python in-process TypedDict → IStrategy.populate_entry_trend() DataFrame flags |
| Coinbase AgentKit | examples/agentkit/ |
algoVaultActionProvider() (npm: agentkit-algovault) |
AgentKit action provider → AlgoVault MCP |
| LangChain / LangGraph | examples/mcp-connect/langchain/ |
(MCP-connect recipe) | MultiServerMCPClient → streamable-HTTP MCP |
| Vercel AI SDK | examples/mcp-connect/vercel-ai-sdk/ |
(MCP-connect recipe) | createMCPClient → streamable-HTTP MCP |
| CrewAI | examples/mcp-connect/crewai/ |
(MCP-connect recipe) | MCPServerAdapter → streamable-HTTP MCP |
| TypeSafe Jev | examples/typesafe-jev/ |
toJevRequest(signal, ctx): SystemOneRequest | null (decision layer) |
@typesafe-ai/sdk → POST /v1/systemone, direct or via Vercel AI Gateway; dry run with no key |
Examples are listed as they ship. Each transform-code example follows the same shape: a pure toXRequest(signal) transformer, unit tests, an end-to-end run demo, and a terse README. Reference-architecture-doc examples ship a single README.md with no transform code. Decision-layer examples keep the same four files; their transformer takes the caller's context too (toJevRequest(signal, ctx)), and transform.ts also holds a pure decide() beside its thresholds.
gh repo clone AlgoVaultLabs/algovault-integrations
cd algovault-integrations
npm install
npm testnpm test runs the transformer unit tests across all examples with zero network calls. See each example's README for the optional end-to-end demo.
algovault-integrations/
├── README.md
├── LICENSE
├── package.json # devDeps only
├── tsconfig.json # strict ES2022 NodeNext
├── .github/workflows/ci.yml # vitest across all examples
├── shared/ # TS primitives (interfaces + helpers) shared across examples
│ ├── types/verifiable-signal-v1.ts # canonical VerifiableSignalV1 interface
│ └── lib/reshape-to-envelope.ts # canonical raw-MCP → v1.0-envelope reshape helper
└── examples/
└── <platform>/
├── README.md # prereq + run command
├── transform.ts # pure mapper: VS v1.0 → platform request
├── run.ts # demo: MCP fetch → transform → log POST
└── tests/
└── transform.test.ts # vitest: mapper output structural validation
shared/ is internal to this mono-repo (NOT npm-published). Per-platform examples import via relative paths (../../shared/types/..., ../../shared/lib/...) per NodeNext ESM convention.
MIT — see LICENSE.