Mailey

Developers

An address is all you need

One authenticated call turns any email into an account you can pay. No onboarding flow for the recipient, no wallet connect, no support thread asking for a 0x string.

typescript
const res = await fetch(
  "https://mailey.app/api/v1/resolve?email=" +
    encodeURIComponent("cfo@acme.com"),
  { headers: { Authorization: `Bearer ${process.env.MAILEY_KEY}` } },
);

const { data } = await res.json();

// data.address     → 0x7c3f…9a12   (pay this)
// data.claimed     → false         (owner hasn't verified yet)
// data.commitment  → 0x9ab3…       (verify the pairing yourself)

Endpoints

  • GET/api/v1/resolveInbox → account, commitment, lifecycle state
  • POST/api/auth/startIssue a one-time code for sign-in, claim or export
  • POST/api/auth/verifyExchange a code for a session
  • POST/api/sendTransfer to an inbox or a 0x address
  • POST/api/requestsEmail a payment request with a prefilled link
  • POST/api/exportOne-shot key release with a v3 keystore

Patterns

What teams build with it

Payroll and contractor payouts

You already have the contractor's email. Resolve it, pay it, and let them claim the account when they are ready.

Refunds without a wallet

Refund a customer who paid by card into an account only they can claim. No support ticket asking for an address.

Affiliate and creator payouts

Pay thousands of inboxes in a batch. Unclaimed accounts wait indefinitely — nothing expires, nothing bounces.

Invoicing

Attach a payment link to an invoice. The payer settles from their own inbox account or any wallet.