Aicscan Documentation

Démarrage rapide

Ce guide vous mène de la création du compte à la réception d’une alerte. Comptez une dizaine de minutes. Les exemples utilisent curl ; chaque point d’accès de la référence donne aussi l’équivalent en JavaScript et en Python.

1. Créer un compte et un espace#

Créez votre compte sur aicscan.io/app/inscription, confirmez votre adresse email, puis créez votre espace : c’est lui qui regroupe vos adresses, vos règles, vos canaux et vos clés d’API. Chaque clé d’API appartient à un seul espace et ne voit que ses données.

L’API publique est comprise dans les offres Pro et Business. Sur les offres Gratuite et Starter, chaque appel authentifié répond 403 plan_required. Voir Offres et quotas.

2. Obtenir une clé d’API#

Dans l’espace client, ouvrez la page Clés d’API (propriétaire ou administrateur de l’espace) et cliquez sur « Créer la clé » après avoir choisi :

  • un nom qui dit où la clé sert ;
  • la portée : read (lecture seule) ou read et write (lecture et modification) ;
  • si besoin, une expiration (30 à 365 jours).

Voir Authentification pour les règles de création et de révocation. Pour une clé avec une limite de débit propre, écrivez à support@aicscan.io.

La clé complète, de la forme aic_k3J9xQ2a_…, n’est affichée qu’une seule fois : Aicscan n’en garde que l’empreinte SHA-256. Rangez-la dans un gestionnaire de secrets, jamais dans le code source ni dans une application mobile ou un navigateur.

Shell
export AICSCAN_API_KEY="aic_k3J9xQ2a_..."

3. Premier appel#

GET /v1/workspace renvoie l’espace de la clé, son offre, ses limites et sa consommation du jour. C’est le meilleur appel pour vérifier qu’une clé fonctionne.

Shell
curl https://aicscan.io/v1/workspace \
  -H "Authorization: Bearer $AICSCAN_API_KEY"
JSON
{
  "workspace": { "id": "0193a1b2-0c1d-7e4f-8a9b-1c2d3e4f5a01", "name": "Acme Treasury", "plan": "pro", "state": "active", "created_at": "2026-10-02T08:00:00Z" },
  "plan": { "code": "pro", "name": "Pro" },
  "limits": { "addresses": 100, "rules": null, "channels": 10, "channel_kinds": null, "chains": null, "requests_per_second": 25, "requests_per_day": 10000, "immediate_alert": true },
  "usage": { "addresses": 12, "rules": 4, "channels": 3, "requests_today": 318 },
  "api_key": { "id": "0193a1a0-77b1-7c3d-8e9f-0a1b2c3d4e5f", "prefix": "aic_k3J9xQ2a", "scopes": ["read", "write"] }
}

Une limite à null signifie « illimité ». Chaque réponse porte aussi les en-têtes de limite de débit (RateLimit-*) et, sur l’offre Pro, ceux du quota quotidien.

4. Créer un canal de réception#

Une règle envoie ses alertes vers un ou plusieurs canaux. Créons un webhook : Aicscan enverra chaque alerte en POST JSON sur votre serveur HTTPS.

Shell
curl -X POST https://aicscan.io/v1/channels \
  -H "Authorization: Bearer $AICSCAN_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"kind":"webhook","url":"https://hooks.example.com/aicscan","name":"SIEM","locale":"fr"}'

La réponse 201 contient l’identifiant du canal et, une seule fois, son secret de signature webhook_secret (whsec_…). Conservez-le : il sert à vérifier les signatures.

Vous préférez Telegram, helloMe, Discord, Slack ou l’email ? Voir Canaux.

5. Ajouter une adresse à surveiller#

Shell
curl -X POST https://aicscan.io/v1/addresses \
  -H "Authorization: Bearer $AICSCAN_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"chain_id":56,"address":"0x8894E0a0c962CB723c1976a4421c95949bE2D4E3","label":"Treasury"}'

L’adresse est vérifiée (somme de contrôle EIP-55 si elle est en casse mixte, base58 T… acceptée sur TRON) puis renvoyée en minuscules dans address et sous sa forme d’affichage dans display_address. Les identifiants de chaînes sont listés dans Chaînes et actifs.

Cette étape est facultative : une règle ajoute elle-même ses adresses aux adresses surveillées.

6. Créer une règle#

Alertez dès qu’une sortie d’au moins 50 000 USDT quitte l’adresse sur BNB Chain :

Shell
curl -X POST https://aicscan.io/v1/rules \
  -H "Authorization: Bearer $AICSCAN_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
    "name": "Treasury: large USDT outflows",
    "kind": "large_transfer",
    "chain_id": 56,
    "addresses": ["0x8894e0a0c962cb723c1976a4421c95949be2d4e3"],
    "asset": "0x55d398326f99059ff775485246999027b3197955",
    "threshold": "50000",
    "direction": "outgoing",
    "severity": "critical",
    "channel_ids": ["<id du canal créé à l’étape 4>"]
  }'

Le seuil s’écrit en unités du jeton ("50000", "0.5") ; Aicscan le convertit avec les décimales du jeton. Une règle critical envoie une première alerte dès que la transaction est vue, avant les confirmations, puis une seconde à la confirmation. Les autres types de règles sont décrits dans Types de règles.

7. Envoyer un message de test#

Shell
curl -X POST https://aicscan.io/v1/channels/$CHANNEL_ID/test \
  -H "Authorization: Bearer $AICSCAN_API_KEY"

La réponse 202 donne notification_id ; suivez l’envoi avec GET /v1/notifications/{id}, qui liste aussi les tentatives (delivery_attempts) avec le code HTTP renvoyé par votre serveur.

8. Recevoir une alerte#

Quand un transfert correspond à la règle, votre serveur reçoit :

HTTP
POST /aicscan HTTP/1.1
Host: hooks.example.com
Content-Type: application/json
User-Agent: Aicscan-Webhook/1
X-Event-Id: 0193a1c9-41aa-7b2e-9c0d-1e2f3a4b5c6d
X-Timestamp: 1794648613
X-Signature: sha256=5d0f4c…
JSON
{
  "id": "0193a1c9-41aa-7b2e-9c0d-1e2f3a4b5c6d",
  "type": "alert",
  "stage": "unconfirmed",
  "severity": "critical",
  "priority": 30,
  "attempt": 1,
  "timestamp": 1794648613,
  "title": "🔴 CRITIQUE · Treasury: large USDT outflows · sortant",
  "text": "🔴 CRITIQUE · Treasury: large USDT outflows · sortant\n⏳ NON CONFIRMÉE · 15 confirmations attendues\nChaîne : BNB Chain\n…"
}

Vérifiez la signature, répondez 2xx en moins de 10 secondes, et c’est terminé. Le guide Webhooks donne des récepteurs complets en Node.js, Python, PHP et Go.

Sans serveur public, vous pouvez aussi lire les alertes avec GET /v1/matches ou les recevoir en direct sur le flux temps réel.

Et ensuite#

Aicscan ne vous demandera jamais de vous connecter à un wallet, de signer une transaction ni d’envoyer des fonds.

aicscan.io · Statut · openapi.yaml