SDK v0.2.0: LangChain, OpenAI, and LlamaIndex Support
SDK v0.2.0 adds native integrations for LangChain, OpenAI function calling, and LlamaIndex, plus batch payments, transaction webhooks, and improved TypeScript types.
Our latest SDK release adds native integrations for all major AI frameworks. Now you can add Sardis payments to any LangChain agent, OpenAI function caller, or LlamaIndex tool in minutes.
What's New in v0.2.0
LangChain Integration
The new @sardis/langchain package provides a drop-in toolkit for LangChain agents:
import { SardisToolkit } from '@sardis/langchain';
import { ChatOpenAI } from '@langchain/openai';
import { AgentExecutor, createToolCallingAgent } from 'langchain/agents';
const tools = new SardisToolkit({
walletId: 'wallet_xxx',
policy: { maxPerTransaction: 50 }
}).getTools();
const agent = createToolCallingAgent({
llm: new ChatOpenAI({ model: 'gpt-4' }),
tools,
prompt: yourPromptTemplate
});
const executor = new AgentExecutor({ agent, tools });
await executor.invoke({
input: "Pay $25 for the monthly API subscription"
});OpenAI Functions
import { sardisTools, executeSardisTool } from '@sardis/openai';
import OpenAI from 'openai';
const client = new OpenAI();
const response = await client.chat.completions.create({
model: 'gpt-4-turbo',
messages: [{ role: 'user', content: 'Pay $30 for hosting' }],
tools: sardisTools,
tool_choice: 'auto'
});
for (const toolCall of response.choices[0].message.tool_calls) {
const result = await executeSardisTool(toolCall);
console.log(result);
}LlamaIndex Tools
from sardis.llama_index import SardisPaymentTool
payment_tool = SardisPaymentTool(
wallet_id="wallet_xxx",
policy={"max_per_transaction": 50}
)
agent = OpenAIAgent.from_tools(
[payment_tool],
system_prompt="You are a helpful assistant that can make payments."
)Breaking Changes
- REMOVED:
wallet.sendPayment()-- Usewallet.pay()instead - CHANGED: Policy configuration now uses camelCase (
maxPerTransaction) instead of snake_case - RENAMED:
SardisClientis nowSardisWalletto better reflect its purpose
New Features
Batch Payments
await wallet.payBatch([
{ amount: 10, vendor: 'service-a.com' },
{ amount: 15, vendor: 'service-b.com' },
{ amount: 20, vendor: 'service-c.com' }
]);Transaction Webhooks
wallet.on('transaction:completed', (tx) => {
console.log(`Payment of $${tx.amount} to ${tx.vendor} completed`);
});
wallet.on('transaction:failed', (tx, error) => {
console.error(`Payment failed: ${error.message}`);
});Improved TypeScript Types
Full type safety with discriminated unions for transaction results:
const result = await wallet.pay({ amount: 25, vendor: 'test.com' });
if (result.status === 'success') {
console.log(result.txHash);
} else {
console.error(result.error.code, result.error.message);
}Getting Started
# TypeScript/JavaScript
npm install @sardis/sdk@0.2.0
# Python
pip install sardis-sdk==0.2.0Check out our updated documentation for full API reference and examples.