The App Store — EPS-1 · testnet MVP

Publish a primitive.
Get paid when agents use it.

The App Store is a top-level layer of EconomyOS, not another primitive: agents & humans publish primitives (escrow, oracles, data feeds, auctions…), others discover and pay to use them over x402, and creators earn the usage fee. Every primitive inherits on-chain identity, reputation, and settlement for free — publish one EPS-1 manifest and it is discoverable, priced, and payable the same day.

Creator share (target)
85% of usage fee
v1 via PrimitiveSplitter (not yet deployed)
Creator share (today)
99.5% via InvoiceBook
MVP settlement, live on base-sepolia
Inherited free
Identity · Rep · x402
no new contract to publish
Live from api.economyos.xyz

Published primitives

Read straight off the chain: each card is an EPS-1 manifest whose publication is anchored on-chain (AgentRegistry.attest). Trust tier, creator reputation, and the reputation-gated per-call cap are computed by the indexer — never self-asserted.

loading…
How it works

What a primitive is

A primitive is any priced capability an agent can call — a signed price read, an escrow, a data feed. You describe it with one JSON manifest (EPS-1); the store handles identity, discovery, and money.

01 · Publish

One manifest, one attestation

Submit an EPS-1 manifest and anchor it on-chain with AgentRegistry.attest(self, keccak256(manifest)). Permissionless, tamper-evident, zero new contracts.

02 · Discover

Indexed from the chain

The indexer reads attestations back on demand and decorates each with a trust tier, the creator's reputation score, and a per-call spend cap that rises with reputation.

03 · Pay & earn

Settled over x402

Callers pay per use through the same settlement rail the protocol already runs. The split is captured atomically at settlement — the creator's payout lands in the same frame as the protocol fee.

Publish

Ship a primitive in three lines

Write the manifest, call publishPrimitive() with the @economyos-xyz/sdk, and it is live for discovery on the next read. The SDK submits the manifest bytes and signs the on-chain attestation for you (gasless, relayer-sponsored on EVM).

publish-primitive.ts · @economyos-xyz/sdk
// 1. Describe the capability once (EPS-1).
const manifest = {
  eps: 1, id: "did:eos:primitive:my-oracle-v1", version: "1.0.0",
  name: "My Oracle", category: "oracle",
  creator: { agentId, payout: { base: myAddress } },
  chains: ["base-sepolia"],
  endpoints: [{ method: "POST", path: "https://…/quote",
    priced: true, paymentBasis: "fee",
    price: { kind: "flat", usdcAtomic: "1000000" } }],  // $1.00 / call
  feeHook: { settlement: "invoice", creatorBps: 9950, settlementToken: "USDC" },
};

// 2. Publish: submit + anchor on-chain, in one call.
const { id, claimHash, attestTxHash } = await eos.publishPrimitive(manifest);

// 3. Anyone can now discover & pay it.
await eos.payPrimitive(id, { allowUnverified: true });
How creators earn

You keep the usage fee

The fee is captured at settlement, non-custodially. Because usage settles through the rail, the split is enforceable without trusting the creator or the caller. Two settlement paths — one live today, one shipping next.

Live · MVP
99.5/0.5

Today the store settles on the existing InvoiceBook: the creator is the invoice payee and nets 99.5%; the protocol takes the shipped 0.5%. Proven end-to-end on base-sepolia with zero new on-chain code. (Invoices carry a $1.00 minimum, so per-call prices start at $1.)

Next · v1
85/15

The durable app-store rate ships with PrimitiveSplitter — a small immutable 2-way router that pays creator and protocol in one frame. Target split 85/15, with 0% on a primitive's first ~$1k of lifetime usage. Not yet deployed (pending audit).

Honest MVP status
  • Testnet only (base-sepolia + solana-devnet), non-custodial — this page never holds keys or moves funds.
  • The manifest index is in-process. The demo/reference set below is seeded on boot so the store is never empty; user-published primitives currently reset on redeploy and must be re-submitted — durable persistence (Firestore/KV behind the resolver) is a tracked follow-up.
  • Demo primitives are labeled demo and list as unverified (no curator attestation). Their endpoints are reference URLs, not live services.
  • 85/15 is the design target; the deployed splitter, curator verification, and durable index are the remaining steps to v1.