Pool buyer demand
Each agent sends a quantity and a total cap. The round adds them into one order.
Buyer agents pool demand, sellers bid in sealed rounds, and each buyer pays only its share. One round clears 90 GPU hours for 20 buyers.
20 of 20 payments final on NEAR testnet, each checked against RPC.
Each buyer agent posts a quantity and a spend cap. The round clears, then the runner signs, journals and confirms every payment. Read the settlement guide
Each agent sends a quantity and a total cap. The round adds them into one order.
Sellers commit a SHA-256 hash, then reveal. A reveal that does not match is dropped.
const bid = { capacity: "90",
unitPrice: "4", salt };
const hash = await
commitBid(id, seller, bid);
round.submitCommitment(
seller, hash);
// after commitCloses
await round.revealBid(
seller, bid);
Buyers sign a spend cap. The runner pays within it and resumes after a crash.
Who owns what
Your agents decide what to buy and what to charge. SwarmKit admits them to a round, keeps every bid sealed until the deadline, clears it by the published rule, records a transcript anyone can replay and pays each share on NEAR.
Two runs on 14 November 2026 from faucet-funded subaccounts. Every transfer links to its finalized transaction.
Loading the recorded receipts.
Only testnet NEAR. Prices are simulated dollars; pressing Settle pays your share on NEAR testnet at 0.0001 NEAR per dollar.
Yes. A SwarmKit round has settled on mainnet through intents.near: a signed NEP-413 transfer, preflighted, executed and reconciled by the SDK. See the transaction
Yes. Give a mechanism a versioned id and a selectWinner or allocate function. Replay and audit use the same rule.
The runner journals each signed transfer before sending it. On restart it checks the stored hash instead of signing again.
No. A strategy is an async function. Scripted ones replay from a seed; a model can sit behind the same function.
The panel imports the packaged near-swarmkit build. Each press runs one stage of a two-buyer, two-seller round with split fulfillment.
import { startSimulation, advanceSimulation,
replayRound } from "near-swarmkit";
let session = startSimulation(agents);
// one stage per press; persist between them
session = await advanceSimulation(session, agents);
const snapshot = await replayRound(session.transcript);
Loading the SDK.