360 Secure SkillHub
360 安全技能中心

Sardis — Payment OS for AI Agents

为AI代理提供完整支付基础设施,核心功能含非托管MPC钱包创建、自然语言支出规则设置、自动合规的稳定币转账、虚拟卡发行、跨链余额查询及审计轨迹。典型场景:AI代理需支付平台费用、管理运营资金时调用。通过API或自然语言触发,输出结构化响应,保障资金操作安全合规。

efedurmaz16
efedurmaz16
热度 45.94
最近更新 2026-05-18 12:37:23
分类:自动化依赖:第三方 API / 代码执行应用场景:财务 / API 集成 / 自动化脚本

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add sardis
Metadata
name
sardis
description
Payment OS for AI agents. Create MPC wallets, execute stablecoin payments with automatic policy enforcement, set spending rules in natural language, check balances across chains, and issue virtual cards. Trigger: user asks an agent to pay for something, create a wallet, check a balance, set a spending limit, or issue a virtual card. Do not trigger: general finance questions unrelated to agent payments.
version
1.1.0
homepage
https://sardis.sh
metadata
{"openclaw":{"requires":{"env":["SARDIS_API_KEY"],"bins":["curl"]},"primaryEnv":"SARDIS_API_KEY","emoji":"💳","homepage":"https://sardis.sh","install":[{"kind":"uv","package":"sardis-openclaw","bins":[]}],"user-invocable":true,"disable-model-invocation":false}}

Sardis — Payment OS for AI Agents

AI agents can reason, but they cannot be trusted with money. Sardis is how they earn that trust.

Sardis provides complete payment infrastructure for AI agents: non-custodial MPC wallets (Turnkey-backed), natural language spending policies, stablecoin transfers with automatic policy enforcement, virtual card issuance, and full audit trails with on-chain anchoring.

Setup

export SARDIS_API_KEY="sk_your_key_here"
export SARDIS_API_URL="https://api.sardis.sh"   # optional, defaults to production

Get your API key at https://app.sardis.sh or via the API:

curl -X POST https://api.sardis.sh/api/v2/auth/signup \
  -H "Content-Type: application/json" \
  -d '{"email": "you@example.com", "password": "your-password"}'

Security Requirements

CRITICAL — ALWAYS ENFORCE:

  • ALWAYS check spending policy before payment execution
  • NEVER bypass approval flows for transactions
  • NEVER hardcode wallet addresses or private keys
  • ALWAYS log transaction attempts for audit trail
  • ALWAYS verify recipient address format before sending
  • FAIL CLOSED on policy violations (deny by default)
  • Use X-API-Key header for authentication on every request

API Reference

Base URL: https://api.sardis.sh

All endpoints require the X-API-Key header.

1. Create Agent + Wallet

Provision an agent identity with an MPC wallet in one call.

curl -X POST https://api.sardis.sh/api/v2/agents \
  -H "X-API-Key: $SARDIS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "my-agent",
    "description": "Payment agent for OpenAI billing"
  }'

Response:

{
  "agent_id": "agt_abc123",
  "name": "my-agent",
  "wallet_id": "wal_xyz789",
  "addresses": {"base": "0x...", "tempo": "0x..."},
  "kya_tier": "standard",
  "created_at": "2026-03-26T12:00:00Z"
}

Then attach a dedicated wallet if needed:

curl -X POST https://api.sardis.sh/api/v2/agents/agt_abc123/wallet \
  -H "X-API-Key: $SARDIS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"chain": "base", "provider": "turnkey"}'

2. Send Payment

Unified payment endpoint with automatic policy enforcement, chain routing, and FX.

curl -X POST https://api.sardis.sh/api/v2/pay \
  -H "X-API-Key: $SARDIS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "openai.com",
    "amount": "25.00",
    "currency": "USDC",
    "chain": "base"
  }'

Response:

{
  "status": "completed",
  "tx_hash": "0xabc...def",
  "amount": "25.00",
  "currency": "USDC",
  "chain": "base",
  "policy_result": {"allowed": true, "checks_passed": ["daily_limit", "merchant_allowlist"]},
  "route": {"chain": "base", "provider": "alchemy", "gas_estimate": "0.0012"}
}

Omit chain to let Sardis auto-route to the cheapest chain:

curl -X POST https://api.sardis.sh/api/v2/pay \
  -H "X-API-Key: $SARDIS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"to": "anthropic.com", "amount": "100.00", "currency": "USDC"}'

3. Check Policy (Dry Run)

Pre-flight check whether a payment would be allowed by current policies.

curl -X POST https://api.sardis.sh/api/v2/policies/check \
  -H "X-API-Key: $SARDIS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "agent_id": "agt_abc123",
    "amount": "50.00",
    "currency": "USDC",
    "merchant": "aws.amazon.com"
  }'

Response:

{
  "allowed": true,
  "reason": "All policy checks passed",
  "checks_passed": ["daily_limit", "per_tx_limit", "merchant_allowlist"],
  "checks_failed": [],
  "remaining_daily_limit": "450.00"
}

4. Set Policy (Natural Language)

Define spending rules in plain English. Sardis parses them into enforceable constraints.

curl -X POST https://api.sardis.sh/api/v2/policies/apply \
  -H "X-API-Key: $SARDIS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "agent_id": "agt_abc123",
    "natural_language": "Max $500 per day. Only allow OpenAI and Anthropic. No transactions over $200."
  }'

Response:

{
  "policy_id": "pol_def456",
  "agent_id": "agt_abc123",
  "parsed_rules": [
    {"type": "daily_limit", "value": "500.00", "currency": "USD"},
    {"type": "merchant_allowlist", "merchants": ["openai.com", "anthropic.com"]},
    {"type": "per_transaction_limit", "value": "200.00", "currency": "USD"}
  ],
  "version": 3,
  "applied_at": "2026-03-26T12:05:00Z"
}

You can also preview before applying:

curl -X POST https://api.sardis.sh/api/v2/policies/preview \
  -H "X-API-Key: $SARDIS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"agent_id": "agt_abc123", "natural_language": "Block all payments over $1000"}'

5. Check Balance

# Single-chain balance
curl -X GET "https://api.sardis.sh/api/v2/wallets/wal_xyz789/balance?chain=base" \
  -H "X-API-Key: $SARDIS_API_KEY"

Response:

{
  "wallet_id": "wal_xyz789",
  "chain": "base",
  "balance": "1250.00",
  "currency": "USDC",
  "updated_at": "2026-03-26T12:00:00Z"
}
# Multi-chain balances (all chains at once)
curl -X GET "https://api.sardis.sh/api/v2/wallets/wal_xyz789/balances" \
  -H "X-API-Key: $SARDIS_API_KEY"

6. Issue Virtual Card

Issue a stablecoin-funded virtual Visa card for real-world purchases.

curl -X POST https://api.sardis.sh/api/v2/cards/virtual/issue \
  -H "X-API-Key: $SARDIS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": "25.00",
    "card_type": "single_use"
  }'

Response:

{
  "card_id": "crd_abc123",
  "card_number": "4242424242424242",
  "cvv": "123",
  "expiry": "12/27",
  "amount": "25.00",
  "currency": "USD",
  "card_type": "single_use",
  "status": "active"
}

7. Wallet Transfer (Direct)

Transfer stablecoins from a specific wallet (with automatic policy enforcement).

curl -X POST https://api.sardis.sh/api/v2/wallets/wal_xyz789/transfer \
  -H "X-API-Key: $SARDIS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb",
    "amount": "50.00",
    "token": "USDC",
    "chain": "base",
    "agent_id": "agt_abc123"
  }'

Response:

{
  "tx_hash": "0xdef...abc",
  "status": "confirmed",
  "amount": "50.00",
  "token": "USDC",
  "chain": "base",
  "block_number": 12345678
}

8. Transaction Status

curl -X GET "https://api.sardis.sh/api/v2/transactions/status/0xabc...def" \
  -H "X-API-Key: $SARDIS_API_KEY"

9. Agent Spending Analytics

curl -X GET "https://api.sardis.sh/api/v2/agents/agt_abc123/spending" \
  -H "X-API-Key: $SARDIS_API_KEY"

10. Create Spending Mandate

Spending mandates define scoped, time-limited authority over funds.

curl -X POST https://api.sardis.sh/api/v2/mandates \
  -H "X-API-Key: $SARDIS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "wallet_id": "wal_xyz789",
    "agent_id": "agt_abc123",
    "max_amount": "1000.00",
    "currency": "USDC",
    "expires_at": "2026-04-01T00:00:00Z",
    "merchant_allowlist": ["openai.com", "anthropic.com"]
  }'

Complete Onboarding Flow

# 1. Create agent (auto-provisions wallet)
AGENT=$(curl -s -X POST https://api.sardis.sh/api/v2/agents \
  -H "X-API-Key: $SARDIS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name": "billing-agent", "description": "Handles API billing"}')
AGENT_ID=$(echo $AGENT | jq -r '.agent_id')
WALLET_ID=$(echo $AGENT | jq -r '.wallet_id')
echo "Agent: $AGENT_ID, Wallet: $WALLET_ID"

# 2. Set spending policy
curl -s -X POST https://api.sardis.sh/api/v2/policies/apply \
  -H "X-API-Key: $SARDIS_API_KEY" \
  -H "Content-Type: application/json" \
  -d "{\"agent_id\": \"$AGENT_ID\", \"natural_language\": \"Max \$100 per transaction, \$500 per day. Only OpenAI and Anthropic.\"}"

# 3. Check balance
curl -s -X GET "https://api.sardis.sh/api/v2/wallets/$WALLET_ID/balances" \
  -H "X-API-Key: $SARDIS_API_KEY" | jq '.'

# 4. Dry-run policy check
curl -s -X POST https://api.sardis.sh/api/v2/policies/check \
  -H "X-API-Key: $SARDIS_API_KEY" \
  -H "Content-Type: application/json" \
  -d "{\"agent_id\": \"$AGENT_ID\", \"amount\": \"25.00\", \"currency\": \"USDC\", \"merchant\": \"openai.com\"}"

# 5. Execute payment (policy auto-enforced)
curl -s -X POST https://api.sardis.sh/api/v2/pay \
  -H "X-API-Key: $SARDIS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"to": "openai.com", "amount": "25.00", "currency": "USDC", "chain": "base"}'

Error Handling

Always check response status codes:

Code Meaning
200 / 201 Success
400 Invalid parameters (check amount, address, token)
401 Invalid or missing API key
403 Policy violation — payment blocked by spending rules
404 Wallet, agent, or transaction not found
429 Rate limit exceeded
500 Internal error — contact support@sardis.sh

Example error (policy violation):

{
  "error": {
    "code": "POLICY_VIOLATION",
    "message": "Daily spending limit of $500 exceeded. Current: $475, Requested: $50",
    "details": {
      "limit": "500.00",
      "current": "475.00",
      "requested": "50.00"
    }
  }
}

Supported Chains & Tokens

Chain Tokens
Base USDC, EURC
Ethereum USDC, USDT, PYUSD, EURC
Arbitrum USDC, USDT
Optimism USDC, USDT
Polygon USDC, USDT, EURC
Tempo pathUSD

Related Skills

  • sardis-balance — Read-only balance checking and analytics
  • sardis-policy — Natural language spending policy management
  • sardis-cards — Virtual card issuance and management
  • sardis-guardrails — Circuit breaker and kill switch controls
  • sardis-identity — Agent identity with TAP verification
  • sardis-escrow — Smart contract escrow for agent-to-agent payments
  • sardis-tempo-pay — MPP-native payments on Tempo mainnet

Links