PermaTell Logo

POMP developer docs

Build partner apps that create and claim PermaTell POMPs using the open tag protocol and the @permatell/pomp-sdk.

Integration gate (required before integrating)

You need an AO/Arweave signer, the exact Module/Authority/Scheduler below, the correct write URL, Arweave artwork, and a full Spawn → Eval → Setup. Missing any of these breaks create/claim or keeps the POMP hidden from Discover.

  • Signer: Wander, PermawebOS, or your own AO/Arweave (or ETH type-3) key via @permaweb/aoconnect. An XRP-only wallet is not enough.
  • Artwork: POMP-Artwork must be a 43-char Arweave tx id. IPFS → fetch → upload to Arweave first (optional POMP-Artwork-IPFS for provenance).
  • Lifecycle: Spawn → Eval campaign Lua → Setup-POMP-Campaign. Incomplete setup stays hidden from public Discover. Optional POMP-Client for attribution.
  • Create fee: may apply on PermaTell’s create UI after a free quota. Partner SDK spawns do not use the site fee voucher. Claims are never charged.
  • Install: npm install @permatell/pomp-sdk (peer: @permaweb/aoconnect). npmjs.com/package/@permatell/pomp-sdk — v0.1.1+ defaults Scheduler; on 0.1.0 pass scheduler explicitly.

Overview

Discover indexes any AO process that carries the right tags. There is no custodial mint API — spawn with documented Module/Scheduler/Authority, Eval campaign Lua, then Setup-POMP-Campaign. Keep App-Name=PermaTell; use POMP-Client for partner attribution.

Required Discover tags

  • App-Name = PermaTell
  • POMP-Asset-Type = native-event | poap-claim
  • POMP-Source = POMP | POAP

After spawn: Eval campaign Lua → Setup-POMP-Campaign. Incomplete setup stays hidden from public Discover.

Optional: POMP-Client (e.g. xrp-mini-app) and POMP-Client-Version for attribution. Filter Discover with ?client=.

Spawn constants (PermaTell mainnet)

Public on every PermaTell spawn. SDK 0.1.1+ defaults to this Module / Authority / Scheduler triple. Keep write URL with the same triple (RSA: https://app-1.forward.computer; ETH: https://schedule.forward.computer).

  • Module = ISShJH1ij-hPPt9St5UFFr_8Ys3Kj5cyg7zrMGt7H9s
  • Authority = a5ZMUKbGClAsKzB4SHDYrwkOZZHIIfpbaxrmKwUHCe8
  • Scheduler = n_XZJhUnmldNFo4dhajoPZWhBXuJk-OcQr5JQ49c4Zo
  • RSA write URL = https://app-1.forward.computer
  • ETH write URL = https://schedule.forward.computer

SDK install

npm install @permatell/pomp-sdk

Published on npm as @permatell/pomp-sdk. Peer dependency: @permaweb/aoconnect. Browser-first — pass your own aoconnect DataItemSigner; no wallet UI is bundled. createPomp / claimPomp / getCampaignState / listDiscover. Prefer 0.1.1+ for Scheduler defaults.

Artwork (IPFS → Arweave)

POMP-Artwork must be a 43-character Arweave transaction id. If media is on IPFS, fetch the CID, upload bytes to Arweave, then pass the tx id. Optional POMP-Artwork-IPFS is provenance only.

Read APIs & CORS

GET/OPTIONS CORS is enabled on /api/pomp/discover, /top, /profile, /campaign/[id], and /asset/[id]. HyperBEAM proxy and create-fee routes stay same-origin — call HyperBEAM nodes or GraphQL directly for raw process state.

  • GET /api/pomp/discover
  • GET /api/pomp/top
  • GET /api/pomp/profile?wallet=
  • GET /api/pomp/campaign/[id]
  • GET /api/pomp/asset/[id]

Security & spam

Anyone who can spawn AO can stamp PermaTell tags. Avoid PermaTell-Test and test title prefixes. Claim words must be ≥6 characters; weak words are discouraged. We may hide abusive process ids. Unique 1/1 minting is optional and needs Arweave L1 signing — see the EVM guide for caveats.

EVM wallet guide

Partner checklist (e.g. XRP mini-app)

  1. Provide an AO/Arweave signer (Wander / PermawebOS / own key) — XRP-only is not enough.
  2. Fetch IPFS artwork → upload to Arweave → keep the 43-char artworkId.
  3. Spawn with Module/Authority/Scheduler + write URL (or SDK 0.1.1+ defaults), then Eval → Setup-POMP-Campaign.
  4. Optional POMP-Client; share /pomp/claim/{assetId}; confirm HyperBEAM state and Discover after indexing.

XRP-only wallets cannot sign AO/ANS-104 — you need an Arweave/AO signer (Wander, PermawebOS, or your own key).

Radio · StreamVault
POMP developer docs · PermaTell