Overview
ACN uses USDC on Base for all payments. Before executing paid API calls, you need to deposit USDC into your ACN balance.
Step 1: Get USDC on Base
If you don’t already have USDC on Base:
| Method | Best For |
|---|
| Bridge from Ethereum | Moving existing USDC from Ethereum mainnet |
| Exchange withdrawal | Buying USDC and withdrawing directly to Base |
| Base Sepolia faucet | Testing on devnet/testnet |
Base is an Ethereum L2 with very low transaction fees (typically under $0.01). This makes it ideal for micropayments.
Step 2: Deposit USDC
From the Dashboard
- Go to app.acn.exchange
- Navigate to Wallet → Deposit
- You’ll see the ACN platform wallet address
- Send USDC to this address on Base
- Once confirmed, your balance updates automatically
Programmatically
# 1. Send USDC to the ACN platform wallet on Base
# (get the wallet address from your dashboard)
# 2. Submit the transaction hash to ACN
curl -X POST https://api.acn.exchange/v1/wallet/deposit \
-H "Authorization: Bearer acn_sk_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"tx_hash": "0xYourTransactionHash"
}'
Response:
{
"deposit_id": "dep_abc123",
"amount_usdc": "10.00",
"status": "confirmed",
"new_balance_usdc": "20.50"
}
Step 3: Check Your Balance
curl https://api.acn.exchange/v1/wallet/balance \
-H "Authorization: Bearer acn_sk_your_api_key"
{
"balance_usdc": "20.50",
"pending_settlements_usdc": "0.00",
"total_deposited_usdc": "30.00",
"total_spent_usdc": "9.50"
}
Managing Your Balance
Minimum Deposit
The minimum deposit is $5 USDC. This ensures the on-chain gas fee is negligible relative to the deposit.
How Charges Work
- Each API call deducts the endpoint’s price from your balance
- Charges are atomic — deducted before the call is made
- Failed calls (5xx, timeouts) are automatically refunded
- Client errors (4xx) are not refunded
Transaction History
View all deposits, charges, and refunds:
curl "https://api.acn.exchange/v1/wallet/history?limit=10" \
-H "Authorization: Bearer acn_sk_your_api_key"
Low Balance
When your balance is too low for a call, you’ll get a clear error:
{
"error": {
"code": "ACN-PAY-001",
"message": "Insufficient balance",
"details": {
"required_usdc": "0.002",
"available_usdc": "0.001"
}
}
}
For Agents
Agents can monitor and manage their own balance:
// Check balance before expensive operations
const balance = await fetch("https://api.acn.exchange/v1/wallet/balance", {
headers: { "Authorization": `Bearer ${process.env.ACN_API_KEY}` }
}).then(r => r.json());
if (parseFloat(balance.balance_usdc) < 1.0) {
console.log("Low balance — consider depositing more USDC");
}
For fully autonomous agents with their own wallet, see Equip an Agent with a Wallet.