torque-assistant
v0.1.0
Published
Official Torque Assistant SDK — server-side chat and SSE streaming for Platform API v1
Maintainers
Readme
torque-assistant
Official server-side client for Torque Assistant (Platform API v1).
Uses the same business API key as Checkout (sk_live_…). Targets BFF / backend integrators — not in-app browser sessions.
Install
yarn add torque-assistant @torquefi/typesQuick start
import { createTorqueAssistantFromEnv } from 'torque-assistant'
const assistant = createTorqueAssistantFromEnv()
const reply = await assistant.chat({
messages: [{ role: 'user', content: 'Summarize my BTC exposure' }],
context: { walletAddress: '0x…', chainId: 8453 },
})
console.log(reply.content, reply.functionResults)Streaming (SSE)
for await (const event of assistant.chatStream({
messages: [{ role: 'user', content: 'What moved today?' }],
context: { walletAddress: '0x…', chainId: 8453 },
})) {
if (event.type === 'delta') process.stdout.write(event.text)
if (event.type === 'done') console.log(event.functionResults)
if (event.type === 'error') throw new Error(event.message)
}Pass signal via the second argument to cancel:
const controller = new AbortController()
const stream = assistant.chatStream(request, { signal: controller.signal })Configuration
import { createTorqueAssistant } from 'torque-assistant'
const assistant = createTorqueAssistant({
apiKey: process.env.TORQUE_API_KEY!,
baseUrl: 'https://app.torque.fi', // optional
timeout: 180_000, // optional — Gemini tool rounds can be slow
})Environment variables: TORQUE_API_KEY, optional TORQUE_BASE_URL.
Endpoint
| Method | SDK | HTTP |
|--------|-----|------|
| chat | JSON response | POST /api/v1/assistant/chat |
| chatStream | Async iterator over SSE | POST /api/v1/assistant/chat?stream=true |
Errors
| Status | Code | Class |
|--------|------|-------|
| 402 | assistant_credits_exhausted | TorqueAssistantCreditsError |
| v1 JSON | { error: { code, message } } | TorqueAssistantError |
import {
TorqueAssistantCreditsError,
TorqueAssistantError,
ASSISTANT_CREDITS_ERROR_CODE,
} from 'torque-assistant'
try {
await assistant.chat({ messages, context })
} catch (e) {
if (e instanceof TorqueAssistantCreditsError) {
console.log(e.remaining, '/', e.limit, 'messages left')
}
}Actions / signing
functionResults may include confirmable swap, transfer, lend, or borrow payloads. This SDK does not sign or submit transactions — implement confirmation in your client (same contract as in-app AssistantTransactionHandler).
Docs
License
MIT
