Quickstart
This guide walks you through the four steps needed to start accepting crypto payments with Aeses: create an API key, check your balances, generate a deposit address, and verify an incoming webhook. You will be ready to integrate in production by the end.
1. Create an API key
Sign in to the Aeses Dashboard and open Developers → API keys. Create a new test mode key for development. Test mode uses public test networks (Sepolia, Bitcoin testnet, Tron Nile, Solana devnet) and never moves real funds.
Your secret key looks like sk_live_4eC39HqLyjWDarjtT1zdp7dc. Store it in an environment variable — never commit it to source control or expose it to a browser.
Anyone with your secret key can authorize transfers and view all your account data. Rotate immediately if exposed.
2. List your balances
Every Aeses account has an internal ledger of balances per asset. List them to confirm the key is working.
curl https://api.aeses.io/v1/balances \
-H "x-api-key: sk_live_4eC39HqLyjWDarjtT1zdp7dc"A fresh account returns an empty data array. After you receive your first deposit the corresponding balance appears here.
3. Create a deposit
Generate a single-use address for a customer to send funds to. Aeses derives the address from a hardened HD wallet — you never handle private keys.
curl https://api.aeses.io/v1/deposits \
-H "x-api-key: sk_live_4eC39HqLyjWDarjtT1zdp7dc" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"asset": "USDT",
"chain": "ethereum",
"amount": "10.00",
"webhook_url": "https://example.com/webhooks/aeses"
}'The response contains a fresh address valid for 30 minutes:
{
"id": "dep_01HXYZ7M2P5RT4VG3K8AQWE9FN",
"object": "deposit",
"status": "pending",
"asset": "USDT",
"chain": "ethereum",
"address": "0x8f3a9c2bF7e1A4d62D8b9fF6E3c5a7E1d2B4c8A9",
"expected_amount": "10.00",
"expires_at": 1731600000
}Send the customer to the address. On testnet, you can fund it from a faucet.
4. Receive and verify the webhook
When the deposit reaches the required confirmations, Aeses POSTs a deposit.completed event to the webhook_url. Every webhook carries an X-Webhook-Signature header you must verify before trusting the payload — see Webhook signatures for the full algorithm.
A minimal verification handler in Node:
# Forward webhooks from the dashboard to your local server
ngrok http 3000
# Update webhook_url in the deposit request to the ngrok URL
# Trigger a test event from Developers → Webhooks → Send test eventOnce you receive and verify the event, credit the customer's order in your own system and return 200 OK.
Next steps
- Learn how authentication and environments work in detail.
- Make your integration safe to retry with idempotency keys.
- Browse the full API reference.
- Configure webhook endpoints and review the event catalog.