Platform SDK
torque-node is the unified server SDK for Torque Platform — one business API key, one client for Intelligence, Assistant, and capabilities. Use it in Node scripts, Route Handlers, and backend services. Never expose your API key in browser bundles.
At a glance
| npm package | torque-node (0.1.1) |
| Auth | TORQUE_API_KEY (sk_live_…) |
| Default base URL | https://app.torque.fi/api/v1 |
| Intelligence timeout | 30s (default) |
| Assistant timeout | 180s (default) |
Installation
yarn add torque-node@^0.1.1 @torquefi/types@^0.1.1Related packages: Platform SDKs overview — @torquefi/types, torque-intelligence, torque-assistant, @torquefi/react, torque-webhooks, torque-checkout. Prefer torque-node when you use more than one HTTP surface.
Quick start
import { createTorqueFromEnv } from 'torque-node'
const torque = createTorqueFromEnv()
const manifest = await torque.capabilities()
const feed = await torque.intelligence.feed({
walletAddress: '0x…',
chainId: 8453,
includeBrief: 1,
})
const chat = await torque.assistant.chat({
messages: [{ role: 'user', content: 'What is the price of ETH?' }],
context: { walletAddress: '0x…', chainId: 8453 },
})
const yieldIdeas = await torque.opportunities.getYieldOpportunities({
walletAddress: '0x…',
})Or pass options explicitly with createTorque({ apiKey }). See Authentication for key setup.
Environment variables
| Variable | Required | Description |
|---|---|---|
| TORQUE_API_KEY | Yes | Business API key (sk_live_…) |
| TORQUE_BASE_URL | No | API base (default https://app.torque.fi/api/v1) |
Client surfaces
Subpath exports
import { createTorqueFromEnv } from 'torque-node'
import { createIntelligenceClient } from 'torque-node/intelligence'
import { createAssistantClient } from 'torque-node/assistant'Use subpaths when you only need one surface. The unified Torque client shares auth and base URL configuration.
Streaming
for await (const event of torque.assistant.chatStream({
messages: [{ role: 'user', content: 'Summarize my portfolio' }],
context: { walletAddress: '0x…' },
})) {
if (event.type === 'delta') process.stdout.write(event.text)
if (event.type === 'done') console.log(event.functionResults)
}Wraps SSE from POST /api/v1/assistant/chat?stream=true. See Assistant API for event types.
Timeouts
Intelligence and Assistant use separate default timeouts. Override when constructing the client:
const torque = createTorque({
apiKey: process.env.TORQUE_API_KEY!,
intelligenceTimeout: 30_000, // ms, default 30s
assistantTimeout: 180_000, // ms, default 180s
})