Documentation Index
Fetch the complete documentation index at: https://docs.agentwallex.com/llms.txt
Use this file to discover all available pages before exploring further.
Installation
npm install @agentwallex/sdk
Initialisation du client
import { AgentWallex } from "@agentwallex/sdk";
const aw = new AgentWallex({
apiKey: process.env.AGENTWALLEX_API_KEY!,
environment: "sandbox", // "sandbox" | "production"
baseUrl: undefined, // Custom endpoint (optional)
timeout: 30000, // Request timeout in ms (default: 30000)
});
| Parametre | Type | Par defaut | Description |
|---|
apiKey | string | Requis | Votre cle API (awx_...) |
environment | "sandbox" | "production" | "sandbox" | Environnement cible |
baseUrl | string | — | URL de base personnalisee (remplace l’environnement) |
timeout | number | 30000 | Timeout de requete en millisecondes |
Agents
aw.agents.create(params)
Creez un nouvel agent avec un portefeuille securise par MPC.
const agent = await aw.agents.create({
name: "my-agent",
chain: "eip155:8453",
policies: {
maxTransactionAmount: "100",
dailyLimit: "1000",
allowedAddresses: ["0x..."],
allowedTokens: ["USDC"],
requireHumanApproval: false,
},
metadata: { team: "growth" },
});
Retourne :
| Champ | Type | Description |
|---|
id | string | Identifiant unique de l’agent |
name | string | Nom d’affichage de l’agent |
wallet.address | string | Adresse du portefeuille on-chain |
wallet.chain | string | Identifiant de chaine CAIP-2 |
status | string | "active" ou "frozen" |
createdAt | string | Horodatage ISO 8601 |
aw.agents.get(agentId)
Recuperez un agent par ID.
const agent = await aw.agents.get("agent_abc123");
aw.agents.list(params?)
Listez tous les agents de votre compte.
const { agents, pagination } = await aw.agents.list({
limit: 20,
offset: 0,
status: "active",
});
aw.agents.freeze(agentId)
Gelez immediatement le portefeuille d’un agent, empechant toutes les transactions.
await aw.agents.freeze("agent_abc123");
aw.agents.unfreeze(agentId)
Reactiver le portefeuille d’un agent apres un gel (soumis a une periode de refroidissement de 10 minutes).
await aw.agents.unfreeze("agent_abc123");
Paiements
aw.payments.send(params)
Envoyez un paiement on-chain direct.
const tx = await aw.payments.send({
agentId: "agent_abc123",
to: "0xRecipientAddress",
amount: "50.00",
token: "USDC",
memo: "Payment for API access",
});
Retourne :
| Champ | Type | Description |
|---|
id | string | ID de la transaction |
hash | string | Hash de la transaction on-chain |
status | string | "pending", "confirmed", "failed" |
amount | string | Montant envoye |
token | string | Symbole du jeton |
fee | string | Frais de gas reseau payes |
aw.payments.get(transactionId)
Obtenez les details et le statut d’une transaction.
const tx = await aw.payments.get("tx_xyz789");
aw.payments.list(params)
Listez les transactions d’un agent.
const { transactions } = await aw.payments.list({
agentId: "agent_abc123",
limit: 50,
status: "confirmed",
});
Micropaiements x402
aw.x402.createSession(params)
Creez une session de paiement x402 avec un budget de depenses.
const session = await aw.x402.createSession({
agentId: "agent_abc123",
budgetLimit: "100.00",
chain: "eip155:84532",
ttlSeconds: 3600,
allowedUrls: ["https://paid-api.example.com/v1/data"],
});
aw.x402.check(params)
Verifiez si une URL cible supporte la negociation de paiement x402.
const info = await aw.x402.check({
url: "https://paid-api.example.com/v1/data",
});
aw.x402.pay(params)
Negociez et completez un paiement x402.
const result = await aw.x402.pay({
agentId: "agent_abc123",
targetUrl: "https://paid-api.example.com/v1/data",
sessionId: session.id, // optional
chain: "eip155:84532", // optional
});
aw.x402.sessionPay(sessionId, params)
Payez en utilisant un budget de session existant.
await aw.x402.sessionPay(session.id, {
targetUrl: "https://paid-api.example.com/v1/data",
});
aw.x402.httpInterceptor(params)
Creez un wrapper HTTP fetch qui gere automatiquement les challenges x402 v2 :
const fetchWithPayment = aw.x402.httpInterceptor({
agentId: "agent_abc123",
chain: "eip155:84532",
});
// Automatically handles 402 -> pay -> retry flow
const response = await fetchWithPayment("https://paid-api.example.com/v1/data");
const data = await response.json();
L’intercepteur :
- Lit l’en-tete
PAYMENT-REQUIRED d’une reponse 402
- Soumet le paiement via AgentWallex
- Retente la requete avec l’en-tete
PAYMENT-SIGNATURE
Politiques
aw.policies.update(agentId, policies)
Mettez a jour les politiques de depenses d’un agent.
await aw.policies.update("agent_abc123", {
maxTransactionAmount: "200",
dailyLimit: "2000",
allowedAddresses: ["0xAddr1", "0xAddr2"],
velocityLimit: { maxCount: 100, windowSeconds: 3600 },
});
aw.policies.get(agentId)
Obtenez les politiques actuelles d’un agent.
const policies = await aw.policies.get("agent_abc123");
aw.policies.applyTemplate(agentId, templateName)
Appliquez un modele de politique a un agent.
await aw.policies.applyTemplate("agent_abc123", "conservative");
aw.policies.createTemplate(name, rules)
Creez un modele de politique reutilisable.
await aw.policies.createTemplate("my-template", {
maxTransactionAmount: "200",
dailyLimit: "2000",
allowedTokens: ["USDC"],
velocityLimit: { maxCount: 50, windowSeconds: 3600 },
});
Webhooks
aw.webhooks.create(params)
Enregistrez un point de terminaison webhook.
const webhook = await aw.webhooks.create({
url: "https://your-app.com/webhooks/agentwallex",
events: [
"payment.completed",
"payment.failed",
"agent.frozen",
"policy.violated",
],
secret: "whsec_your_signing_secret",
});
Gestion des erreurs
Le SDK fournit des classes d’erreur typees :
import {
AgentWallexError,
PolicyViolationError,
} from "@agentwallex/sdk";
try {
await aw.payments.send({ ... });
} catch (error) {
if (error instanceof PolicyViolationError) {
console.log(`Policy violated: ${error.rule}`);
console.log(`Details: ${error.message}`);
} else if (error instanceof AgentWallexError) {
console.log(`API error: ${error.code} - ${error.message}`);
}
}
| Classe d’erreur | Declenchee quand |
|---|
AgentWallexError | Classe de base pour toutes les erreurs API |
PolicyViolationError | Transaction bloquee par le moteur de politiques |
AuthenticationError | Cle API invalide ou manquante |
NotFoundError | La ressource n’existe pas |
RateLimitError | Limite de debit depassee |
Types TypeScript
Tous les types sont exportes depuis le package :
import type {
Agent,
Payment,
Transaction,
Policy,
X402Session,
WebhookEvent,
} from "@agentwallex/sdk";