Менее 10 минут
Первый платёж агента
на Ergo testnet.
Никакой теории. Никаких церемоний настройки. Один пакет npm, 30 строк, одна команда — и вы видите реальную транзакцию в обозревателе Ergo testnet.
bash
npm install @fleet-sdk/core
Предварительные требования
- Установлен Node.js 18+
- Адрес testnet (создайте в Nautilus wallet → Настройки → Режим testnet)
- testnet ERG из крана на testnet.ergofaucet.org
- 5 минут непрерывной концентрации
01
Установить Fleet SDK
~30 секундbash
mkdir my-agent && cd my-agent npm init -y npm install @fleet-sdk/core node-fetch
Fleet SDK — официальный TypeScript/JS SDK для Ergo. Работает в Node.js и браузерах.
02
Создать agent-pay.js
~2 минутыjavascript
// 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;
}Этот скрипт получает ваши testnet UTxO, строит транзакцию и выводит неподписанный объект TX.
03
Запустить скрипт
~10 секундbash
node agent-pay.js
Вы увидите JSON неподписанной транзакции. Подпишите его с помощью Nautilus (браузер) или серверного ключа, затем POST на /api/v1/transactions.
04
Добавить Note (платёж агента)
~5 минутjavascript
// 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();Это расширяет базовую TX для создания Note — инструмента на предъявителя с регистром хеша задачи. Получатель погашает его против Reserve.
Посмотрите TX в обозревателе
После отправки ваша транзакция появится в обозревателе Ergo testnet. Вставьте TX ID сюда:
https://testnet.ergoplatform.com/transactions/{TX_ID}