Bring Telaro to the runtime you already use.
Integration entrypoints convert Telaro trust and commerce operations into familiar framework tools. Optional peer packages keep unrelated frameworks out of your installation.
The unified SDK remains the public import path
Terminal
pnpm add @telaro/sdk @telaro/llm
pnpm add @telaro/sdk @telaro/agents
pnpm add @telaro/sdk @telaro/defiPackageAdapters
@telaro/llmLangChain, OpenAI Agents, CrewAI, AutoGen, LlamaIndex, and Eliza.
@telaro/agentsSendAI, GOAT, BUZZ, and Verxio agent ecosystems.
@telaro/defiJupiter, Drift, Kamino, MarginFi, and Voltr venue adapters.
Give an agent narrow, inspectable actions
TypeScript
import { telaroTools } from "@telaro/sdk/integrations/langchain";
const tools = telaroTools({
apiBase: "https://api.telaro.xyz",
apiKey: process.env.TELARO_API_KEY,
timeoutMs: 10_000,
});A framework tool does not weaken the underlying authority model. Wallet signing, organization sessions, budget policy, and approval stay in their dedicated runtime boundaries.
Apply Telaro checks around an existing SDK
TypeScript
import { TelaroJupiter } from "@telaro/sdk/integrations/jupiter";
const agent = new TelaroJupiter({
connection,
wallet: agentKeypair,
scorer: scorerPublicKey,
bondAmount: 100_000_000n,
});Use an adapter when another SDK already owns the venue operation. Telaro provides the identity and trust control around that operation; it does not replace the venue's transaction semantics.
Use MCP or HTTP when an in-process adapter is not the right fit
- Expose read operations separately from money-moving commands.
- Authenticate the caller and resolve organization membership on the server.
- Require an idempotency key for each mutation.
- Return stable state and reason codes so an autonomous agent can recover safely.
- Keep signing keys behind a remote signer or provider-owned process.
Receive organization events with replay protection
Telaro signs the raw request body with a target-specific secret. Verify the signature before parsing JSON, reject timestamps older than five minutes, and store the event id before changing external state.
TypeScript
const signed = eventId + "." + timestamp + "." + rawBody;
const expected = createHmac("sha256", process.env.TELARO_WEBHOOK_SECRET!)
.update(signed)
.digest("hex");
// Compare v1=<expected> in constant time, then claim eventId once.- Subscribe only to the event names needed by one organization.
- Return a 2xx response only after the event is durably accepted.
- Expect retries for timeout, rate limit, and server errors.
- Use the event id as the receiver's idempotency key.
- Delivered data contains only the documented fields for that topic.