How it works

Live on NEAR Mainnet Contract swarm.hlpok1lad.tg. Robots: curator.hlpok1lad.tg, painter.hlpok1lad.tg, critic.hlpok1lad.tg, seller.hlpok1lad.tg. Owner and payout: hlpok1lad.tg.

20 NFTs minted on mainnet so far (e.g. token #1 on NearBlocks); every robot transaction is in the Ledger with an explorer link. No outside sales yet. The 30/10/30/15/15 sale split is proven on testnet during development; on mainnet it is pending its first buyer.

Muse Swarm is a small art business run by four AI robots. Each robot is its own NEAR account with its own budget. The owner sets the rules once, and a smart contract enforces them on every move.

Try it in 60 seconds

1 · Run a cycle

On the Studio, press Free demo cycle (or Commission a piece). Four robot transactions land on NEAR in about 30 s, and each one appears in the live activity feed with an explorer link.

2 · Collect the work

Connect a NEAR wallet through NEAR Connect (Meteor, Intear, Nightly, Ledger or NEAR CLI) and press Collect. The contract transfers the NFT and splits the payment in the same tx.

3 · Check the receipts

Open Robots for each agent's budget, earnings, keys and P&L, Ledger for every tx, and /api/health for live status.

1
Curator: Reads live trends

Pulls what people are searching right now (Google Trends daily RSS, US & UK) and what builders discuss (Hacker News), skips unsafe topics, and writes a short art brief. Then it opens a job on-chain with curator_open_job. Only one job runs at a time, and stale jobs expire after 10 minutes.

2
Painter: Paints and pins to IPFS

Turns the brief into an 800×1000 artwork, pins it to IPFS through Pinata, and records the CID with painter_submit. Its AI fee goes to the treasury, and the storage it adds is charged to its own budget. It also pays the Curator 0.002 NEAR for the brief, budget to budget inside the contract: agents hire agents.

3
Critic: Scores it, and the contract gates the mint

Looks at the finished image and gives a score with a one-line review. critic_review mints a NEP-171 NFT only when the score is 7.0 or higher. Below that, the work is rejected for good and stays unminted in the gallery.

4
Seller: Prices, markets and lists, beyond this website

Prices the NFT from the score and recent demand (the contract refuses anything outside the owner's floor and max price) and pays the Critic 0.001 NEAR for the appraisal. With the Curator's trend context it writes a marketing plan: pitch, audience, channel, best time, hashtags and two X post drafts. The plan is pinned to IPFS as the token's NEP-177 reference and logged on-chain as a marketing_plan event. In the same seller_list call the contract approves Mintbase's market (NEP-178) and lists the NFT there, so it is for sale on our site and on a real NEAR marketplace at once. Unsold work is marked down 15% after 15 minutes, on both venues.

5
Collector: Buys, and the contract splits the money

Anyone with a NEAR wallet can call buy. The contract sends the token, pays the owner 30%, and adds 10/30/15/15% to the curator, painter, critic and seller budgets. Anything above a robot's budget cap is swept to the owner. Robots pay for their next AI calls and gas from these budgets, so the swarm funds itself.

Selling beyond the website

Cross-listed on Mintbase

Every new listing is also listed on Mintbase's market contract (simple.market.mintbase1.near). When someone buys there, Mintbase calls our nft_transfer_payout (NEP-199) and the contract pays the same owner/robot split. The Gallery's Buy via Mintbase button calls the market contract directly. On testnet the same path already sold works: 9xXN7jQp… ↗.

A marketing plan per piece

The Seller, using the Curator's trend context, writes a pitch, target audience, channel, best posting time and hashtags for every piece with NEAR AI. Open any work in the Gallery and press Sales & marketing.

Drafts, never posts

Each plan includes two X post drafts with a Copy button. The app never posts to X or any other account. A human decides what goes out. Wallets and marketplaces read the NEP-177 metadata: title, description, absolute image URL and the plan as reference JSON.

Architecture

  visitor ──"Run a cycle"──▶ Next.js API (Vercel)                              NEAR Mainnet
                                 │  one step = one robot tx                ┌───────────────────────────────┐
  Google Trends / Hacker News ─▶ │  curator ── FC key ───────────────────▶ │ swarm.hlpok1lad.tg            │
  NEAR AI Cloud (LLM/image/VLM) ─▶ │  painter ── FC key ── pin to IPFS ────▶ │  rules · budgets · jobs       │
  Pinata IPFS ◀───────────────── │  critic  ── FC key ── score ≥ 7.0? ───▶ │  NEP-171 NFTs + NEP-297 events│
                                 │  seller  ── FC key ── floor ≤ p ≤ max ▶ │  buy() → on-chain split       │
  Mintbase market ◀── nft_on_approve (NEP-178) ─────────────────────────── │  nft_transfer_payout (NEP-199)│
  wallet (NEAR Connect) ─────────┼──────────────────── buy ──────────────▶ │  fees → treasury              │
                                 │  guardian ─ FC key ── pause ≤ 120 s ──▶ │  kill switch (owner)          │
  studio / gallery / ledger ◀── view calls + FastNear tx API ◀───────────── └───────────────────────────────┘

Guardrails

Function-call keys only

Robot keys can call only their own method (plus robot_refuel). They can't send NEAR, deploy code or add keys.

Budgets, caps and a floor

A daily spend cap and a per-call fee cap for each robot, a jobs-per-day limit, a minimum and maximum price, and a budget cap with sweeps to the owner.

Kill switch

The owner can freeze every robot action. For the public demo, a guardian can pause the swarm for up to 120 s, and the pause always releases itself.

No public budget drain

Running a cycle is rate-limited per visitor and paced swarm-wide from on-chain job timestamps (12 per 10 min, across every server instance). Only one job runs at a time, and a signed driver token stops two visitors driving the same job.

Nothing stranded

AI fees go to a treasury account rather than piling up on keys that can't withdraw. The owner can withdraw any robot's budget.

Lean storage

Each robot pays for the storage it adds. NFT metadata holds the title, a short description, the image URL and a reference to the plan JSON. The image and the plan live on IPFS.

Why it matters

Agents with accounts, not API keys

Each AI agent is a NEAR account with a budget, a scoped key and a public track record. You can audit what it spent, what it earned and every decision it made, on-chain.

A business that pays for itself

Sales refill the robots' budgets, and they spend that on AI, storage and gas within caps the owner set. A scheduled cron runs one cycle every two hours (up to 12 a day) with no human in the loop; on mainnet it runs through 17 Nov 2026, then stops until the owner renews it. Anyone can back a robot with fund(role).

A template for agent teams

Swap the art for any pipeline (research, design, moderation). The pattern is the same: one contract that holds the rules and the money, many agents with their own accounts, and a split paid on every sale.

What's real, and what's a fallback

real The contract, the robot accounts and keys, and every tx, budget, mint, listing, sale and split, all on NEAR. The live trends. IPFS pinning. Wallet purchases.

real AI brains: NEAR AI Cloud. Curator: Qwen/Qwen3.6-35B-A3B-FP8. Painter: black-forest-labs/FLUX.2-klein-4B. Critic: Qwen/Qwen3-VL-30B-A3B-Instruct. Seller (pricing + marketing): Qwen/Qwen3.6-35B-A3B-FP8. If a NEAR AI call fails, that one step uses the labeled local fallback and the on-chain model field says fallback-*.

mainnet Real NEAR. No demo collector. Buys by our own accounts (the owner hlpok1lad.tg and its sub-accounts) are labeled test and never counted as outside revenue. Development history: the full test record, including the proven sale split, is on testnet at swarm.museswarm.testnet.

Accounts

Muse Swarm is a NEAR hackathon project by Sina Jalilian. Sina's other entry is Atelier One, a single-agent studio and a separate project.