Premier paiement d'agent
sur Ergo testnet.
Pas de théorie. Pas de cérémonie de configuration. Un paquet npm, 30 lignes, une commande — et vous voyez une vraie transaction sur l'explorateur Ergo testnet.
npm install @fleet-sdk/core
Prérequis
- Node.js 18+ installé
- Une adresse testnet (créer dans Nautilus wallet → Paramètres → Mode testnet)
- testnet ERG depuis le faucet sur testnet.ergofaucet.org
- 5 minutes de concentration ininterrompue
Installer Fleet SDK
~30 secondesmkdir my-agent && cd my-agent npm init -y npm install @fleet-sdk/core node-fetch
Fleet SDK est le SDK officiel TypeScript/JS pour Ergo. Fonctionne dans Node.js et les navigateurs.
Créer agent-pay.js
~2 minutes// agent-pay.js
import { TransactionBuilder, OutputBuilder, SAFE_MIN_BOX_VALUE } from "@fleet-sdk/core";
// ── Config ───────────────────────────────────────────────────────────────────
const TESTNET_API = "https://api-testnet.ergoplatform.com";
const YOUR_ADDRESS = "YOUR_TESTNET_ADDRESS"; // paste your testnet address
const RECEIVER_ADDRESS = "3WwbzW6u8hKWBcL1W7kNVMr25s2UHfSBnYtwSHvrRQt7DdPuoXrt"; // testnet receiver
// ── 1. Fetch unspent boxes ────────────────────────────────────────────────────
const res = await fetch(
`${TESTNET_API}/api/v1/boxes/unspent/byAddress/${YOUR_ADDRESS}`
);
const { items: inputs } = await res.json();
// ── 2. Build transaction ──────────────────────────────────────────────────────
const unsignedTx = new TransactionBuilder(await getCurrentHeight())
.from(inputs)
.to(
new OutputBuilder("1000000", RECEIVER_ADDRESS) // 0.001 ERG
)
.sendChangeTo(YOUR_ADDRESS)
.payMinFee()
.build()
.toEIP12Object();
console.log("Unsigned TX:", JSON.stringify(unsignedTx, null, 2));
// → Sign with Nautilus wallet or server-side key, then submit
async function getCurrentHeight() {
const r = await fetch(`${TESTNET_API}/api/v1/info`);
const info = await r.json();
return info.fullHeight;
}Ce script récupère vos UTxO testnet, construit une transaction et produit l'objet TX non signé.
Exécuter le script
~10 secondesnode agent-pay.js
Vous verrez le JSON de transaction non signé. Signez-le avec Nautilus (navigateur) ou une clé côté serveur, puis POST vers /api/v1/transactions.
Ajouter un Note (paiement d'agent)
~5 minutes// Note payment — agent pays for an API call
import { TransactionBuilder, OutputBuilder, SByte, SColl } from "@fleet-sdk/core";
const TASK_HASH = "a1b2c3d4..."; // blake2b256 of task output
const noteOutput = new OutputBuilder("5000000", RECEIVER_ADDRESS) // 0.005 ERG
.setAdditionalRegisters({
R4: SColl(SByte, Buffer.from(TASK_HASH, "hex")), // task hash
R5: SByte(await getCurrentHeight() + 100), // expiry: +100 blocks
});
const tx = new TransactionBuilder(await getCurrentHeight())
.from(inputs)
.to(noteOutput)
.sendChangeTo(YOUR_ADDRESS)
.payMinFee()
.build();Ceci étend la TX de base pour créer un Note — un instrument au porteur avec un registre de hash de tâche. Le destinataire le rembourse contre une Reserve.
Voir votre TX sur l'explorateur
Après soumission, votre transaction apparaît sur l'explorateur Ergo testnet. Collez votre TX ID ici :
https://testnet.ergoplatform.com/transactions/{TX_ID}