← Marketplace

Palmyr

Palmyr is an x402-native service at https://palmyr.ai, indexed from the x402 Bazaar (Coinbase's public discovery directory). It charges callers itself in USDC on Base and is paid directly at its own wallet; Monex Protocol passes your request and payment headers through untouched. 12 endpoints listed.

Base

Offers

OfferEndpointPrice
Cards
List your prepaid cards (status, last4, balance — never full card numbers; those are per-card via GET /cards/:id).
/m/bz-palmyr-ai/cards0.01 USDC
Cards :Id
Retrieve a prepaid card you own: full card number, CVV, expiry, balance. Owner-verified ($0.01 ownership proof).
/m/bz-palmyr-ai/cards/:id0.01 USDC
:Id Refresh
Refresh a card's live balance and transactions from the issuer (rate-limited upstream: 1 per 5 min per card).
/m/bz-palmyr-ai/cards/:id/refresh0.01 USDC
Email Inboxes
Create an end-to-end encrypted email inbox keyed to your Solana wallet. Defaults to {name}@palmyr.ai; pass `domain` to provision on a Namecheap-registered domain you own (auto-sets MX/SPF/DKIM records).
/m/bz-palmyr-ai/email/inboxes2 USDC
Email Temp
Provision a cheap, disposable, receive-only email inbox for receiving a one-time verification or order-confirmation email. Auto-expires (default 24h). Reads return plaintext after an x402 ownership proof from the owning wallet.
/m/bz-palmyr-ai/email/temp0.5 USDC
Phone Numbers
List all phone numbers owned by or shared with the calling wallet.
/m/bz-palmyr-ai/phone/numbers0.01 USDC
:Id Wait Otp
Wait (blocking, up to 90s) for an SMS verification code / OTP to arrive on a phone number you own, and return the parsed code. Body (all optional): { timeout_s (default 60, max 90), lookback_s (default 10; pass 0 for reused numbers), pattern (custom regex, max 256 chars) }
/m/bz-palmyr-ai/phone/numbers/:id/wait-otp0.02 USDC
Phone Temp
Lease a cheap, instant, receive-only US phone number from a pool to receive one SMS verification code — the phone analogue of a disposable temp email inbox. $0.20 for 30 min (ttl_seconds, clamp 300–1800). Receive-only; call wait-otp to catch the code. Good for one-time verification on sites like Google/X/Discord; some (Telegram/WhatsApp/OpenAI) block VoIP numbers. Recycled — one-time codes only.
/m/bz-palmyr-ai/phone/temp0.2 USDC
Pool Mine
List pool-bought X accounts your wallet owns or has shared access to.
/m/bz-palmyr-ai/social/twitter/pool/mine0.001 USDC
Twitter Profile
Update the profile (name/bio/location/url) of an X account you control.
/m/bz-palmyr-ai/social/twitter/profile0.001 USDC
Registered Mine
List registered X accounts your wallet owns or has shared access to.
/m/bz-palmyr-ai/social/twitter/registered/mine0.001 USDC
Accounts Mine
List X accounts your wallet owns or has shared access to (returns full credentials).
/m/bz-palmyr-ai/x/accounts/mine0.01 USDC

Machine-readable: openapi.json with x-payment-info offers.

Try it live

Run the full MPP flow from your browser: catch the 402, sign the payment with your wallet, and watch it settle on-chain.

This merchant settles over the mppx rail; pay it from an agent with the snippet below.

Pay with an agent

Any MPP or x402-compatible client works. With mppx, payment is automatic:

import { Mppx, evm } from 'mppx/client'
import { privateKeyToAccount } from 'viem/accounts'

const mppx = Mppx.create({
  methods: [evm({
    account: privateKeyToAccount(process.env.KEY),
    currencies: [evm.assets.base.USDC],
  })],
})

const res = await mppx.fetch('https://api.meshgateway.co/m/bz-palmyr-ai/cards')
// 402 challenge signed and settled automatically; response includes Payment-Receipt

Or inspect the challenge yourself:

curl -i https://api.meshgateway.co/m/bz-palmyr-ai/cards
# HTTP/1.1 402 Payment Required
# WWW-Authenticate: Payment id="…", method="evm", intent="charge", …