Enable AI agents to make secure, policy-controlled payments through Sardis Payment OS
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 with non-custodial MPC wallets, natural language spending policies, and compliance-first design.
CRITICAL - ALWAYS ENFORCE:
export SARDIS_API_KEY=sk_your_key_here
export SARDIS_WALLET_ID=wallet_abc123
All API calls use the base URL: https://api.sardis.sh/v2
# Execute a payment (policy automatically enforced)
curl -X POST https://api.sardis.sh/v2/payments \
-H "Authorization: Bearer $SARDIS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"wallet_id": "'$SARDIS_WALLET_ID'",
"to": "0xRecipientAddress",
"amount": "25.00",
"token": "USDC",
"chain": "base",
"purpose": "OpenAI API credits"
}'
# Get wallet balance
curl -X GET https://api.sardis.sh/v2/wallets/$SARDIS_WALLET_ID/balance \
-H "Authorization: Bearer $SARDIS_API_KEY"
# Check if payment would be allowed WITHOUT executing
curl -X POST https://api.sardis.sh/v2/policies/check \
-H "Authorization: Bearer $SARDIS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"wallet_id": "'$SARDIS_WALLET_ID'",
"amount": "50.00",
"vendor": "openai.com",
"token": "USDC"
}'
# List recent transactions
curl -X GET https://api.sardis.sh/v2/wallets/$SARDIS_WALLET_ID/transactions?limit=10 \
-H "Authorization: Bearer $SARDIS_API_KEY"
# Step 1: Check policy FIRST
POLICY_CHECK=$(curl -s -X POST https://api.sardis.sh/v2/policies/check \
-H "Authorization: Bearer $SARDIS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"wallet_id": "'$SARDIS_WALLET_ID'", "amount": "25.00", "vendor": "openai.com"}')
# Step 2: Only proceed if allowed
if echo $POLICY_CHECK | grep -q '"allowed":true'; then
curl -X POST https://api.sardis.sh/v2/payments \
-H "Authorization: Bearer $SARDIS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"wallet_id": "'$SARDIS_WALLET_ID'", "to": "0x...", "amount": "25.00", "token": "USDC", "chain": "base"}'
else
echo "Payment blocked by policy: $POLICY_CHECK"
fi
# Get daily spending summary
curl -X GET https://api.sardis.sh/v2/wallets/$SARDIS_WALLET_ID/spending/summary?period=day \
-H "Authorization: Bearer $SARDIS_API_KEY"
Always check response status codes:
200 OK - Request successful400 Bad Request - Invalid parameters (check amount, address format, token)401 Unauthorized - Invalid or missing API key403 Forbidden - Policy violation (payment blocked by spending rules)404 Not Found - Wallet or transaction not found429 Too Many Requests - Rate limit exceeded500 Internal Server Error - Contact support@sardis.sh{
"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"
}
}
}
| Chain | Network | Tokens |
|---|---|---|
| Base | Mainnet | USDC, EURC |
| Polygon | Mainnet | USDC, USDT, EURC |
| Ethereum | Mainnet | USDC, USDT, PYUSD, EURC |
| Arbitrum | One | USDC, USDT |
| Optimism | Mainnet | USDC, USDT |
sardis-balance - Read-only balance checking and analyticssardis-policy - Natural language spending policy managementsardis-cards - Virtual card issuance and managementZIP package — ready to use