Skip to content

Add Stacktree to the service directory#733

Open
stevysmith wants to merge 1 commit into
tempoxyz:mainfrom
stevysmith:add-stacktree-service
Open

Add Stacktree to the service directory#733
stevysmith wants to merge 1 commit into
tempoxyz:mainfrom
stevysmith:add-stacktree-service

Conversation

@stevysmith

Copy link
Copy Markdown

Adds Stacktree to the service directory.

What it is

Private-by-default HTML hosting for AI agents. An agent pays $1 once to provision a persistent API key (POST /provision), then publishes static HTML/Markdown (or a zip) and gets back a private, shareable link — with password gating, email gating, link expiry, and custom domains. MCP-native (streamable-HTTP MCP at api.stacktr.ee/mcp), used from Claude Code, Codex, and Cursor.

Required checklist

  • Live and accepting payments via MPP — settles over the evm method (EIP-3009 USDC on Base mainnet, eip155:8453) through an x402 facilitator. Verified end-to-end today with a real mppx payment: mppx https://api.stacktr.ee/provision -X POST paid $1.00 USDC and minted a key, which then published a live site. The WWW-Authenticate: Payment method="evm" challenge and /openapi.json x-payment-info are live now.
  • Entry added to schemas/services.ts
  • Types / build — couldn't run pnpm build locally (toolchain requires Node ≥24; schemas/discovery.json is a generated, gitignored artifact). The entry was validated against the ServiceDef shape and loads cleanly (no duplicate ids); biome check passes on the file.

Note for maintainers

This looks like the directory's first evm/x402-settled entry — every existing service uses tempo or stripe. PaymentDefaults has no network/chainId field, so the Base chain is implicit in the USDC contract address (0x8335…2913). Happy to adjust if you'd prefer an explicit network field or a different shape.

Stacktree is private-by-default HTML hosting for AI agents: pay $1 once to
provision a persistent API key, then publish static HTML/Markdown (or a zip)
and get back a private, shareable link, with password, email-gate, expiry, and
custom domains. MCP-native.

Settles over the evm method (EIP-3009 USDC on Base mainnet, eip155:8453) via an
x402 facilitator.
@vercel

vercel Bot commented Jun 22, 2026

Copy link
Copy Markdown

@stevysmith is attempting to deploy a commit to the Tempo Team on Vercel.

A member of the Team first needs to authorize it.

@github-actions

Copy link
Copy Markdown

Thanks for submitting a service to the MPP directory!

If you want your service included in the curated mpp.dev/services list, complete this checklist before review:

Required

  • Your service is live and accepting payments via MPP (not a placeholder or coming-soon)
  • You've added your entry to schemas/services.ts following the contributing guide
  • Types pass: pnpm check:types
  • Build succeeds: pnpm build

Recommended

  • Register your service on MPPScan (by Merit Systems) — it follows the standard MPP discovery format and makes your service discoverable by agents immediately, no PR required

Review criteria

We prioritize services that are high quality and novel. We may not approve services that duplicate existing functionality or aren't yet production-ready.


Contributing guide · MPPScan · Protocol docs

@github-actions

Copy link
Copy Markdown

🔀 Changed Services

✅ Added

  • stacktree

@stevysmith

Copy link
Copy Markdown
Author

Checklist status, with evidence for review:

✅ Live and accepting payments via MPP. POST https://api.stacktr.ee/provision returns a 402 with a valid WWW-Authenticate: Payment challenge — method="evm", intent="charge", plus id/realm/expires/request. Verified end-to-end with a real mppx payment over the evm method: it settled $1.00 USDC on Base mainnet (EIP-3009 transferWithAuthorization via an x402 facilitator) and minted a persistent key, which then published a live site → https://stacktr.ee/p/GVV7QwT04sy4fNiMAEB4Df/

Reproducible with vanilla mppx:

// mppx.config.js
import { defineConfig } from 'mppx/cli'
import { evm, assets } from 'mppx/evm/client'
import { privateKeyToAccount } from 'viem/accounts'
export default defineConfig({
  methods: [...evm({ account: privateKeyToAccount(process.env.PRIVATE_KEY), assets: [assets.base.USDC] })],
})
mppx https://api.stacktr.ee/provision -X POST   # funded Base wallet, ~$1 USDC

✅ Entry added to schemas/services.ts.

✅ MPPScan / discovery. /openapi.json carries x-payment-info with protocols: [{ mpp: { method, intent, currency } }], and the live 402 challenge passes the discovery validator.

⚠️ Build. I validated the entry loads against ServiceDef (no duplicate ids) and biome check is clean on the file, but couldn't run pnpm build locally — the toolchain wants Node ≥24 and schemas/discovery.json is a generated, gitignored artifact. Happy to adjust if anything's off.

One note for maintainers (also in the PR description): this looks like the first evm/Base-settled entry — existing services use tempo or stripe. PaymentDefaults has no network/chainId field, so the Base chain is implicit in the USDC contract address. Glad to switch to an explicit network field if you'd prefer that shape.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant