B

Mail — MPP Grade B

Preview responses and set spending limits for this service through use.mpp.land Free budget controls, response samples, and reliability routing.

On-chain Activity

6 Total txs
6 7d txs
$0.01 7d volume
$0.01 Total volume
1 Unique payers
0 Unique clients
7-day activity ▁█▁▁▁▁▁

Compliance Checks

All paid ops declare 402 response MUST 10pt
All x-payment-info valid MUST 10pt
Challenge has Cache-Control: no-store MUST 5pt
- Challenge digest on POST SHOULD 3pt
Challenge has expires SHOULD 3pt
Challenge has Problem Details SHOULD 2pt
Challenge has required params MUST 5pt
Challenge has WWW-Authenticate MUST 5pt
Challenge returns 402 MUST 10pt
Correct Content-Type MUST 5pt
Has Cache-Control on discovery SHOULD 5pt
Has input schemas SHOULD 5pt
Has llms.txt SHOULD 5pt
Has /openapi.json at root MUST 10pt
Has required top-level fields MUST 10pt
Served over HTTPS MUST 10pt
Uses standard categories SHOULD 2pt
1 issue
  • Multiple recipient addresses detected across endpoints (2 unique)

Paid Operations (9)

GET /inboxes dynamic
Email: List Inboxes

Free (identity-only) list of every inbox owned by the paying wallet, across all TTL tiers (random + vanity). Sign the $0 challenge to prove wallet ownership; no charge.

Amount
map[amount:0.000000 currency:USD mode:fixed]
Currency
-
Method
Intent
-
402 Declared
Yes
Non-standard x-payment-info fields: price: map[amount:0.000000 currency:USD mode:fixed] protocols: [map[mpp:map[amount:0 currency:0x20c000000000000000000000b9537d11c60e8b50 intent:charge method:tempo network:eip155:4217]] map[mpp:map[amount:0 currency:EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v intent:charge method:solana network:solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp]]]

Response Schema (200)

FieldTypeDescription
inboxes array[object] -
POST /inboxes dynamic
Email: Create Inbox

Create a disposable email inbox. Returns an address you can publish anywhere and read messages from via this API. TTL tier (1 / 7 / 30 / 90 days, default 30) drives both price ($0.002–$0.020 USDC) and inbox lifetime — R2 lifecycle deletes the inbox and its messages at expiry. Optional `local_part` reserves a globally-unique vanity address (`<local_part>@<EMAIL_DOMAIN>`, 30/90-day TTL, flat $0.10) — call the free `GET /inboxes/available?local_part=…` first to confirm it is free (if taken, create refunds and returns 409). Optional `webhook_url` fires HMAC-signed POSTs on every new inbound message. The returned `webhook_secret` is shown exactly once; store it to verify webhook signatures.

Amount
map[amount:0.002000 currency:USD mode:fixed]
Currency
-
Method
Intent
-
402 Declared
Yes
Non-standard x-payment-info fields: price: map[amount:0.002000 currency:USD mode:fixed] protocols: [map[mpp:map[amount:2000 currency:0x20c000000000000000000000b9537d11c60e8b50 intent:charge method:tempo network:eip155:4217]] map[mpp:map[amount:2000 currency:EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v intent:charge method:solana network:solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp]]]

Input Schema

FieldTypeRequiredDescription
local_part string No
ttl_days number No
enum: 1, 7, 30, 90
webhook_url string (uri) No

Response Schema (200)

FieldTypeDescription
address string (email) Disposable email address. Receive mail here.
expires_at string ISO-8601. R2 lifecycle deletes the inbox and its messages at this time.
slug string Inbox slug. Use in list/get/send route paths.
ttl_days integer TTL tier: 1, 7, 30, or 90.
webhook_secret string Returned only when a webhook is configured. Save it now — used to verify HMAC on incoming webhook POSTs. Never returned again.
webhook_url string (uri) -
POST /inboxes/:slug/extend dynamic
Email: Extend Inbox

Renew an inbox for another full TTL period, keeping the same address and tier. Resets the expiry to now + ttl_days and keeps existing messages alive. Wallet must own the inbox.

Amount
map[amount:0.002000 currency:USD mode:fixed]
Currency
-
Method
Intent
-
402 Declared
Yes
Non-standard x-payment-info fields: price: map[amount:0.002000 currency:USD mode:fixed] protocols: [map[mpp:map[amount:2000 currency:0x20c000000000000000000000b9537d11c60e8b50 intent:charge method:tempo network:eip155:4217]] map[mpp:map[amount:2000 currency:EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v intent:charge method:solana network:solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp]]]

Input Schema

{
  "anyOf": [
    {
      "not": {}
    },
    {
      "additionalProperties": false,
      "properties": {},
      "type": "object"
    }
  ]
}

Response Schema (200)

FieldTypeDescription
expires_at string New expiry after renewal (now + ttl_days).
slug string -
ttl_days integer -
GET /inboxes/:slug/messages dynamic
Email: List Messages

List the messages received by one of your inboxes. Wallet-scoped: 404 if the inbox is not owned by the paying wallet.

Amount
map[amount:0.001000 currency:USD mode:fixed]
Currency
-
Method
Intent
-
402 Declared
Yes
Non-standard x-payment-info fields: price: map[amount:0.001000 currency:USD mode:fixed] protocols: [map[mpp:map[amount:1000 currency:0x20c000000000000000000000b9537d11c60e8b50 intent:charge method:tempo network:eip155:4217]] map[mpp:map[amount:1000 currency:EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v intent:charge method:solana network:solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp]]]

Response Schema (200)

FieldTypeDescription
cursor [string null] -
messages array[object] -
GET /inboxes/:slug/messages/:id dynamic
Email: Read Message

Read a single message — parsed headers, text, html, and signed-once URLs to attachment bodies. Wallet-scoped: 404 if the inbox is not owned by the paying wallet.

Amount
map[amount:0.001000 currency:USD mode:fixed]
Currency
-
Method
Intent
-
402 Declared
Yes
Non-standard x-payment-info fields: price: map[amount:0.001000 currency:USD mode:fixed] protocols: [map[mpp:map[amount:1000 currency:0x20c000000000000000000000b9537d11c60e8b50 intent:charge method:tempo network:eip155:4217]] map[mpp:map[amount:1000 currency:EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v intent:charge method:solana network:solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp]]]

Response Schema (200)

FieldTypeDescription
attachments array[object] -
cc array[string] -
date [string null] -
from [string null] -
headers object -
html [string null] -
id string -
message_id [string null] -
received_at string -
slug string -
subject [string null] -
text [string null] -
to array[string] -
POST /inboxes/:slug/messages/:id/delete dynamic
Email: Delete Message

Free (identity-only) delete of a single message and its attachments. Sign the $0 challenge to prove wallet ownership; no charge. 404 if the inbox/message is not owned by the caller.

Amount
map[amount:0.000000 currency:USD mode:fixed]
Currency
-
Method
Intent
-
402 Declared
Yes
Non-standard x-payment-info fields: price: map[amount:0.000000 currency:USD mode:fixed] protocols: [map[mpp:map[amount:0 currency:0x20c000000000000000000000b9537d11c60e8b50 intent:charge method:tempo network:eip155:4217]] map[mpp:map[amount:0 currency:EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v intent:charge method:solana network:solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp]]]

Input Schema

{
  "anyOf": [
    {
      "not": {}
    },
    {
      "additionalProperties": false,
      "properties": {},
      "type": "object"
    }
  ]
}

Response Schema (200)

FieldTypeDescription
deleted boolean -
POST /inboxes/:slug/send dynamic
Email: Send

Send an email from one of your inboxes via Cloudflare Email Service. The `from` is locked to the inbox's own address (`<slug>@<EMAIL_DOMAIN>`); the wallet must own the slug. Upstream cost: $0.00035 per send (5.7× margin at $0.002). Requires the sender domain to be verified in the Cloudflare dashboard.

Amount
map[amount:0.002000 currency:USD mode:fixed]
Currency
-
Method
Intent
-
402 Declared
Yes
Non-standard x-payment-info fields: price: map[amount:0.002000 currency:USD mode:fixed] protocols: [map[mpp:map[amount:2000 currency:0x20c000000000000000000000b9537d11c60e8b50 intent:charge method:tempo network:eip155:4217]] map[mpp:map[amount:2000 currency:EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v intent:charge method:solana network:solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp]]]

Input Schema

FieldTypeRequiredDescription
bcc array No
cc array No
headers object No
html string No
reply_to string (email) No
subject string Yes
text string No
to Yes

Response Schema (200)

FieldTypeDescription
accepted_at string -
message_id string -
GET /inboxes/:slug/status dynamic
Email: Inbox Status

Free (identity-only) inbox status: existence, expiry, message count, and whether a webhook is configured. Sign the $0 challenge to prove wallet ownership; no charge. Use this to poll cheaply instead of paying per list.

Amount
map[amount:0.000000 currency:USD mode:fixed]
Currency
-
Method
Intent
-
402 Declared
Yes
Non-standard x-payment-info fields: price: map[amount:0.000000 currency:USD mode:fixed] protocols: [map[mpp:map[amount:0 currency:0x20c000000000000000000000b9537d11c60e8b50 intent:charge method:tempo network:eip155:4217]] map[mpp:map[amount:0 currency:EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v intent:charge method:solana network:solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp]]]

Response Schema (200)

FieldTypeDescription
address string -
exists boolean -
expires_at string -
message_count integer -
slug string -
ttl_days integer -
webhook_configured boolean -
POST /inboxes/:slug/update dynamic
Email: Update Inbox

Free (identity-only) inbox config update. Set/replace `webhook_url` (a fresh `webhook_secret` is returned once), or pass null to remove it; omit to leave unchanged. Sign the $0 challenge to prove wallet ownership; no charge.

Amount
map[amount:0.000000 currency:USD mode:fixed]
Currency
-
Method
Intent
-
402 Declared
Yes
Non-standard x-payment-info fields: price: map[amount:0.000000 currency:USD mode:fixed] protocols: [map[mpp:map[amount:0 currency:0x20c000000000000000000000b9537d11c60e8b50 intent:charge method:tempo network:eip155:4217]] map[mpp:map[amount:0 currency:EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v intent:charge method:solana network:solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp]]]

Input Schema

FieldTypeRequiredDescription
webhook_url No

Response Schema (200)

FieldTypeDescription
slug string -
webhook_secret string Returned once when a new webhook URL is set. Save it to verify HMAC signatures.
webhook_url -

Payment Methods

Methods
solana, tempo (from challenge)
Intents
charge (from challenge)
Currencies (discovery)
-
Currency (challenge)
USDC
Multiple Challenges
Yes

Recipients (Multi-Recipient)

  • 0x19491164262c8963b11E1BcB1E4351c101B420FF
  • 2SbhPjHwijJExLcjjDuk6hAgxHCbBqs7xu45cXz5DCEb
Per-endpoint breakdown
GET /inboxes
2SbhPjHwijJExLcjjDuk6hAgxHCbBqs7xu45cXz5DCEb
GET /inboxes/:slug/messages
2SbhPjHwijJExLcjjDuk6hAgxHCbBqs7xu45cXz5DCEb
GET /inboxes/:slug/messages/:id
2SbhPjHwijJExLcjjDuk6hAgxHCbBqs7xu45cXz5DCEb
POST /inboxes
2SbhPjHwijJExLcjjDuk6hAgxHCbBqs7xu45cXz5DCEb
POST /inboxes/:slug/extend
2SbhPjHwijJExLcjjDuk6hAgxHCbBqs7xu45cXz5DCEb
POST /inboxes/:slug/messages/:id/delete
2SbhPjHwijJExLcjjDuk6hAgxHCbBqs7xu45cXz5DCEb

Security

TLS Version
TLSv1.3
Challenge ID Unique
Yes
Challenge ID Length
43
Digest Binding
-

Uptime

Discovery
Reachable (302ms)
Challenge
Reachable (258ms)
Last Checked

Schema Completeness

Paid Operations
9
With Input Schema
5
With Description
9
4 missing schema
  • GET /inboxes
  • GET /inboxes/:slug/messages
  • GET /inboxes/:slug/messages/:id
  • GET /inboxes/:slug/status

Documentation

Homepage
-
API Reference
-
llms.txt
-

Discovery

OpenAPI URL
https://mail.payweave.services/openapi.json
OpenAPI Version
3.1.0
Service Version
1.0.0
Document Size
16607 bytes
Document Hash
f93a97df043b2757dd16050a7cf18d4546a96467bd7851111b19c600864665c3

Version History (6 snapshots)

  • document hash changed (no semantic differences detected)
Scan snapshots
Date Grade Score Response Status
2026-06-15 B 83% 488ms Up
2026-06-16 B 83% 263ms Up
2026-06-17 B 83% 526ms Up
2026-06-18 B 83% 449ms Up
2026-06-19 B 83% 222ms Up
2026-06-20 B 83% 248ms Up