ERGO
10分以内

初めてのエージェント決済
Ergo testnetで。

理論なし。セットアップ儀式なし。1つのnpmパッケージ、30行、1つのコマンド — Ergo testnetエクスプローラーで実際のトランザクションを確認できます。

bash
npm install @fleet-sdk/core

前提条件

  • Node.js 18+がインストール済み
  • testnetアドレス(Nautilusウォレット → 設定 → testnetモードで作成)
  • testnet.ergofaucet.orgからtestnet ERGを取得
  • 集中できる5分間
01

Fleet SDKをインストール

~30秒
bash
mkdir my-agent && cd my-agent
npm init -y
npm install @fleet-sdk/core node-fetch

Fleet SDKはErgoの公式TypeScript/JS SDKです。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(ブラウザ)またはサーバーサイドキーで署名し、/api/v1/transactionsにPOSTしてください。

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}

さらに深く学びたいですか?

クイックスタートで動き始めましょう。完全なアーキテクチャリファレンスと7ステップPlaybookが待っています。

Follow for daily updates