sardis

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.

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "sardis" with this command: npx skills add efedurmaz16/sardis

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:

CodeMeaning
200 / 201Success
400Invalid parameters (check amount, address, token)
401Invalid or missing API key
403Policy violation — payment blocked by spending rules
404Wallet, agent, or transaction not found
429Rate limit exceeded
500Internal 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

ChainTokens
BaseUSDC, EURC
EthereumUSDC, USDT, PYUSD, EURC
ArbitrumUSDC, USDT
OptimismUSDC, USDT
PolygonUSDC, USDT, EURC
TempopathUSD

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

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Web3

Netfluid

Enables AI agents to process fiat and crypto payments, manage accounts, and handle multi-currency transfers via Netfluid.

Registry SourceRecently Updated
1271Profile unavailable
Web3

vultisig-sdk

Use this skill when an agent needs to create crypto wallets, send transactions, swap tokens, check balances, or perform any on-chain operation across 36+ blockchains using threshold signatures (TSS). Vultisig SDK provides self-custodial MPC vaults — no seed phrases, no single point of failure. Fast Vaults (2-of-2 with VultiServer) enable fully autonomous agent operations without human approval.

Registry SourceRecently Updated
1.6K2Profile unavailable
Web3

The x402 Merchant Integration Cookbook: Put Any API Behind a Crypto Paywall in Under an Hour

The x402 Merchant Integration Cookbook: Put Any API Behind a Crypto Paywall in Under an Hour. Practical recipes for integrating x402 payments into any web se...

Registry SourceRecently Updated
1660Profile unavailable
Web3

payrail402

Cross-rail spend tracking for AI agents — Visa IC, Mastercard Agent Pay, Stripe ACP, x402, and ACH in one dashboard.

Registry SourceRecently Updated
5410Profile unavailable