Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "obol",
"description": "Skills for running decentralised infrastructure and agents with Obol",
"version": "1.3.0",
"version": "1.4.0",
"author": {
"name": "Obol"
}
Expand Down
2 changes: 1 addition & 1 deletion skills/run-obol-stack/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -199,7 +199,7 @@ NICHE → SCOUT → PACK ALPHA → BUILD → EVALUATE → PRICE → SELL → MEA
3. **Build** — `obol agent new <name> --model <m> --skills <a,b> --objective "..." --create-wallet`.
4. **Evaluate** — the gate most people skip: ask the agent the 10 hardest questions a paying buyer would ask, compare against a raw-model baseline, list only on a clear win. Details in the reference.
5. **Price + sell** — `obol sell agent <name> --price ... --token OBOL|USDC --chain ethereum|base`.
6. **Storefront** — `obol tunnel setup` for a permanent URL (optionally `obol domain register` for a real domain), `obol sell info set --display-name ... --tagline ... --logo-url ...` for branding, `obol sell register --chain` for ERC-8004 discovery.
6. **Storefront** — `obol tunnel setup` for a permanent URL (optionally `obol domain register` for a real domain), `obol sell info set --display-name ... --tagline ... --logo-file ... --theme light|dark|obol --description '<markdown>'` for branding (applies to the storefront AND the 402 paywall pages; see the agent-commerce reference for the full knob set incl. `--accent`, `--css-file`, per-hostname overrides), `obol sell register --chain` for ERC-8004 discovery.
7. **Measure + iterate** — revenue is the payTo wallet's on-chain balance; refresh alpha on a cadence; kill offers that don't sell within ~30 days and reuse the parts.

The agent *inside* the Stack ships with a `sub-agent-business` skill covering this same loop from in-cluster — once the user is in `obol hermes chat`, their agent can scout, build children via its agent-factory, and evaluate them itself. Your job from outside is the host-side half: tunnel, domain, branding, registration signing, and honest quality judgment.
Expand Down
19 changes: 16 additions & 3 deletions skills/run-obol-stack/references/agent-commerce.md
Original file line number Diff line number Diff line change
Expand Up @@ -181,16 +181,29 @@ When quoting prices, always name the unit explicitly (`0.01 OBOL / MTok`, `0.001

### Storefront branding — `obol sell info`

The tunnel hostname serves a public storefront landing page plus a machine-readable catalogue at `/api/services.json` (and `/skill.md`). Branding is operator-set:
The tunnel hostname serves a public storefront landing page plus a machine-readable catalogue at `/api/services.json` (and `/skill.md`). Branding is operator-set and applies to every buyer-facing surface — storefront, 402 paywall pages, wallet sign-in, `/api` docs, per-offer landing pages:

```bash
obol sell info # buyer's-eye view: branding + every on-sale service
obol sell info <name> # focus one service + how-to-buy (add --verbose for health)
obol sell info set --display-name "Acme Labs" --tagline "Paid APIs." --logo-url "https://…"
obol sell info set \
--display-name "One Dollar Audit" \
--tagline "A serious security audit. One dollar." \
--logo-file ./logo.png \
--theme obol \
--description 'Ships as a **signed report** — findings ranked by severity.'
obol sell info reset # back to defaults (or reset individual fields via flags)
```

`sell info` shows what buyers see (only operationally-ready offers); operator health and conditions (including draining/not-ready offers) live under `obol sell status`. Run `sell info` with the user after any change — it's the fastest "would I buy from this storefront?" check.
The full knob set (all optional, all patch-only):

- `--theme light|dark|obol` — built-in presets (`light` default); `--accent '#hex'` recolors any of them.
- `--logo-file` / `--favicon-file` / `--og-image-file` — inline local images as data: URIs (no hosting, no CORS pain); the OG image drives link previews.
- `--description '<markdown>'` — longer seller copy; safe markdown subset (bold, lists, links, small headings) rendered on the storefront and paywall pages.
- `--css-file custom.css` — capped custom stylesheet injected after the theme; target the stable `data-obol="…"` attributes (e.g. `[data-obol="price"]`). This is the styling API — write CSS against these hooks, not against class names.
- `--hostname <host> …` — per-origin override for an offer bound to its own hostname (each product gets its own identity; unset fields inherit the storefront's). `--contact-email` stays storefront-wide.

`sell info` shows what buyers see (only operationally-ready offers); operator health and conditions (including draining/not-ready offers) live under `obol sell status`. Run `sell info` with the user after any change — it's the fastest "would I buy from this storefront?" check. For a visual check, open the tunnel URL in a browser, and curl a paid route with `Accept: text/html` to see the branded 402 checkout page.

### Surviving restarts — `obol sell resume`

Expand Down
Loading