Payment OS for the Agent Economy — non-custodial MPC wallets with natural language spending policies for AI agents
Project description
Sardis
Payment OS for the Agent Economy
AI agents can reason, but they cannot be trusted with money. Sardis is how they earn that trust.
Website · Docs · Playground · Enterprise
📦 Quick Install
# MCP Server (Claude, Cursor, ChatGPT)
npx @sardis/mcp-server start
# Python SDK
pip install sardis
# TypeScript SDK
npm install @sardis/sdk
# LangChain
pip install sardis # Uses sardis-sdk under the hood
# CrewAI
pip install sardis # Compatible with CrewAI tools
# OpenAI Functions
pip install sardis # Use with OpenAI function calling
# Gemini / ADK
pip install sardis # Compatible with Google AI SDKs
# Vercel AI SDK
npm install @sardis/ai-sdk
🤔 What is Sardis?
Sardis gives AI agents non-custodial MPC wallets with natural language spending policies. It prevents financial hallucinations—agents accidentally spending $10k instead of $100—with a real-time policy firewall that validates every transaction before execution.
Your Claude agent, LangChain workflow, or autonomous bot gets its own wallet with programmable guardrails: "Max $100/day on cloud services, only approved vendors, no gambling." The agent cannot override these policies.
Sardis supports stablecoin payments (USDC, USDT), virtual Visa/Mastercard cards, and bank transfers (ACH/wire) across 5 blockchain networks.
✨ Key Features
- 🔐 Non-custodial MPC wallets — Turnkey/Fireblocks integration, zero private key exposure
- 🗣️ Natural language spending policies — "Max $50/tx, $200/day, SaaS vendors only"
- 🚫 Financial hallucination prevention — Policy firewall blocks invalid transactions
- 🤖 9 AI framework integrations — MCP, LangChain, OpenAI, Vercel AI, CrewAI, LlamaIndex, Mastra
- 💳 Virtual cards — Instant Visa/Mastercard issuance via Lithic for fiat payments
- 🤝 Agent-to-agent escrow — Cryptographic mandate chain for A2A payments
- 🔍 KYA (Know Your Agent) — Trust scoring and behavioral anomaly detection
- ⛓️ 5 blockchain networks — Base, Polygon, Ethereum, Arbitrum, Optimism
- 📊 Double-entry audit ledger — Append-only transaction history with cryptographic proofs
- 🎯 Protocol compliance — AP2, TAP, UCP, A2A, x402 payment standards
🚀 Quick Start
Python (5 lines)
from sardis import Sardis
sardis = Sardis(api_key="sk_...")
result = sardis.payments.create(
agent_id="agent_abc",
amount="50.00",
token="USDC",
recipient="merchant@example.com"
)
print(f"Payment: {result.tx_hash}")
TypeScript
import { SardisClient } from '@sardis/sdk';
const client = new SardisClient({ apiKey: 'sk_...' });
const agent = await client.agents.create({ name: 'my-agent' });
const wallet = await client.wallets.create({
agent_id: agent.agent_id,
currency: 'USDC',
limit_per_tx: '100.00',
});
const tx = await client.wallets.transfer(wallet.wallet_id, {
destination: '0x...',
amount: '25.00',
token: 'USDC',
chain: 'base_sepolia',
domain: 'openai.com',
});
MCP (Claude Desktop / Cursor)
Add to your claude_desktop_config.json:
{
"mcpServers": {
"sardis": {
"command": "npx",
"args": ["@sardis/mcp-server", "start"]
}
}
}
That's it. Your agent now has a wallet with spending limits.
🎯 Framework Integrations
| Framework | Package | Install |
|---|---|---|
| MCP (Claude, Cursor, ChatGPT) | @sardis/mcp-server |
npx @sardis/mcp-server start |
| LangChain | sardis |
pip install sardis |
| CrewAI | sardis |
pip install sardis |
| OpenAI Functions | sardis |
pip install sardis |
| Gemini / ADK | sardis |
pip install sardis |
| Vercel AI SDK | @sardis/ai-sdk |
npm install @sardis/ai-sdk |
| Claude Agent SDK | sardis |
pip install sardis |
| LlamaIndex | sardis |
pip install sardis |
| Mastra | @sardis/sdk |
npm install @sardis/sdk |
All frameworks use the same policy engine and MPC wallet infrastructure.
🏗️ Architecture
AI AGENT
(Claude, Cursor, LangChain, OpenAI)
|
MCP / SDK
|
┌─────────────┴─────────────┐
│ SARDIS POLICY ENGINE │
│ │
│ Natural Language Rules │
│ Merchant Allowlist │
│ Amount Limits │
│ Time-Based Controls │
└─────────────┬─────────────┘
|
┌─────────────┴─────────────┐
│ KYA (Know Your Agent) │
│ Trust Scoring + Anomaly │
└─────────────┬─────────────┘
|
┌─────────────┴─────────────┐
│ COMPLIANCE ORCHESTRATOR │
│ KYC • AML • Sanctions │
└─────────────┬─────────────┘
|
┌─────────────┴─────────────┐
│ MPC SIGNING (Turnkey) │
│ Non-custodial keys │
└─────────────┬─────────────┘
|
+──────────┴──────────+
| |
On-Chain Rails Fiat Rails
USDC on Base Virtual Cards
Polygon, ETH (Lithic)
Arbitrum, OP
| |
┌─────┴─────┐ ┌────┴────┐
│ LEDGER │ │ LEDGER │
│ Append │ │ Append │
│ Only │ │ Only │
└───────────┘ └─────────┘
📂 Repository Structure
sardis/
├── packages/ # Core monorepo packages
│ ├── sardis-core/ # Domain models, config, database
│ ├── sardis-api/ # FastAPI REST endpoints
│ ├── sardis-chain/ # Blockchain execution, chain routing
│ ├── sardis-protocol/ # AP2/TAP protocol verification
│ ├── sardis-wallet/ # Wallet management, MPC
│ ├── sardis-ledger/ # Append-only audit trail
│ ├── sardis-compliance/ # KYC (Persona) + AML (Elliptic)
│ ├── sardis-cards/ # Virtual cards (Lithic)
│ ├── sardis-mcp-server/ # MCP server for Claude/Cursor
│ ├── sardis-sdk-python/ # Full Python SDK
│ ├── sardis-sdk-js/ # TypeScript SDK
│ ├── sardis-cli/ # Command-line tool
│ └── sardis-checkout/ # Merchant checkout flows
├── sardis/ # Simple Python SDK (public interface)
├── contracts/ # Solidity smart contracts
│ └── src/
│ ├── SardisWalletFactory.sol
│ ├── SardisAgentWallet.sol
│ └── SardisEscrow.sol
├── dashboard/ # React admin dashboard
├── landing/ # Marketing website
├── mobile/ # React Native companion app
├── playground/ # Interactive demo sandbox
├── examples/ # Usage examples
├── demos/ # Demo applications
├── docs/ # Documentation
│ └── marketing/ # GTM content and strategies
└── tests/ # Integration tests
📚 Documentation
- Getting Started Guide — First payment in 5 minutes
- API Reference — Complete endpoint documentation
- MCP Server Setup — Claude Desktop integration
- Policy Language — Write spending rules in plain English
- Chain Support — Supported networks and tokens
- Framework Guides — LangChain, OpenAI, Vercel AI SDK
- Security Model — MPC architecture and threat model
- Compliance — KYC/AML/SAR framework
- Examples — Code samples for all frameworks
🤝 Contributing
We welcome contributions! Please see our Contributing Guide for details.
Quick contribution checklist:
- Fork the repository
- Create a feature branch:
git checkout -b feature/your-feature - Make your changes with tests
- Run the test suite:
uv run pytest tests/ - Submit a pull request
Development setup:
# Clone the repository
git clone https://github.com/EfeDurmaz16/sardis.git
cd sardis
# Install dependencies
uv sync
# Run tests
uv run pytest tests/
# Start local API server
uvicorn sardis_api.main:create_app --factory --port 8000
🔗 Links
- Website: sardis.sh
- Documentation: sardis.sh/docs
- Playground: sardis.sh/playground
- GitHub: github.com/EfeDurmaz16/sardis
- Discord: discord.gg/XMA9JwDJ
- PyPI: pypi.org/project/sardis
- npm: npmjs.com/package/@sardis/mcp-server
- Context7 Docs: context7.com/efedurmaz16/sardis
📄 License
This project uses an open-core licensing model:
-
MIT License — SDKs, MCP Server, Integration Adapters, CLI tools
sardis(Python meta-package)@sardis/sdk,@sardis/mcp-server,@sardis/ai-sdk- All integration adapters and examples
-
Proprietary — Core banking infrastructure, policy engine internals, MPC node management
See LICENSE.txt for full details.
Sardis — The Payment OS for the Agent Economy
Non-Custodial | MCP Native | Financial Hallucination Prevention
Built with ❤️ for the AI agent ecosystem
© 2026 Efe Baran Durmaz
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sardis-1.0.0.tar.gz.
File metadata
- Download URL: sardis-1.0.0.tar.gz
- Upload date:
- Size: 10.6 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
83e7484452c5439f77b3a37861fa35bd988b55303f1b1af662ae95cdb80bdbdd
|
|
| MD5 |
d92be689255d4f5c91fb812eea9b3c51
|
|
| BLAKE2b-256 |
6149c14f8f88ed9bc736d67368ffcf5470307f5cc856074155a33d348b8f96e6
|
File details
Details for the file sardis-1.0.0-py3-none-any.whl.
File metadata
- Download URL: sardis-1.0.0-py3-none-any.whl
- Upload date:
- Size: 22.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a005fa63aa3e292839a89902581016107ff94cfefe2276c32d5dca060e685236
|
|
| MD5 |
10bbaab80ca9631e30c98d048c9040dd
|
|
| BLAKE2b-256 |
d3418dc023dd1bdd530384ac7724e66dae1f23fdc9641f5c170845f07b886351
|