Security

Non-custodial.
By design.

Your customers pay you on-chain, directly to a wallet you control. We never hold the funds, never see the keys, and can't freeze the flow. The rest of this page shows exactly how that's enforced — in code, in architecture, and in operations.

0
private keys held
100%
on-chain settlement
always
public audit trail
Why non-custodial matters

Custodial processors hold your money. We don't.

With a custodial gateway your customers pay them, then you wait for a payout — which means holds, freezes, KYC gates, and a cut off the top. CRYPT.PE removes the middleman entirely.

swipe to compare →
Concern
CRYPT.PE
custodial (BitPay, etc.)
Who holds funds
You — direct to your wallet
The processor holds first
Account freezes
Impossible — we can't touch funds
Common — funds can be held
Chargebacks
None — on-chain is final
Dispute & reversal risk
Platform cut per tx
0% — you keep 100%
~1–2% + payout fees
KYC to get paid
Not required
Mandatory, can gate payouts
Payout delay
Instant, on-chain
Days — batched settlement
If the provider dies
You still get paid (it's your address)
Funds may be stuck
how money moves

The payment never touches us

A CRYPT.PE payment is a regular on-chain transfer with one difference: we present the QR code, your customer scans it, their wallet broadcasts the transaction. The destination address on that transaction is yours, not ours. We don't sit in the middle.

customer wallet  →  on-chain (ETH / SOL / BTC / TRON / ...)  →  YOUR wallet
                  ↑
                  CRYPT.PE shows the QR; we never sign, never relay.
what we don't touch

No keys. No seeds. No funds.

  • private keysnever stored, never transmitted, never generated by us.
  • seed phraseswe don't ask. we don't have a field for them. there is no endpoint that accepts one.
  • custodial balancesthere is no internal ledger of "your funds at CRYPT.PE". the only on-chain balance for your money is the one your own wallet shows.
  • signing authoritywe cannot move, pause, or claw back any payment. once it's broadcast it belongs to your wallet.
provability

Every payment is public, forever

Because settlement is on-chain, you can verify any payment independently of us — paste the tx hash into Etherscan, Solscan, Blockstream, Tronscan, and you'll see the exact same record we used to credit your dashboard.

If CRYPT.PE goes offline tomorrow, your historical payments stay verifiable. Your customers can still pay you (your QR code is just a string), and you can still spend the funds — they were never gated by us.

account protection

Your account, locked down

Getting paid means your account is a target. We ship the same controls a bank would — on every plan, free included:

  • 2FATOTP on any account; recovery codes generated client-side and shown once. A payout-address change re-checks 2FA and emails you.
  • sessionsSee every signed-in device with its location and last-active time. Revoke one device, or sign out everywhere with a single tap.
  • login alertsA sign-in from a new device, network, or country triggers an instant email so takeovers can't happen quietly.
  • brute forcePer-account + per-IP lockouts stop password-guessing; signup is throttled per IP.
  • verified badgeMerchants who verify email, enable 2FA, and take a payment earn a public checkmark — an honest, auto-revoking trust signal.
payment integrity

No double-spends, no replays

Because payments settle on-chain, we obsess over one thing: a transaction credits exactly one order, once.

  • unique amountsEvery invoice and gateway order is quoted a unique amount (a tiny per-order nonce), so an incoming payment binds to one order — never a different buyer's same-priced order.
  • one tx → one orderA settled transaction hash is locked to a single order at the database level. It can't be replayed to claim a second order or a free subscription.
  • age gatesPayments must post-date the order they pay for, blocking old-transaction replay attacks.
  • atomic settlementOrder state flips created → paid atomically, so a race can't credit twice.
  • signed webhooksEvery inbound chain webhook is signature-verified against a per-endpoint secret, with durable retries.
infrastructure

What we actually run

The boring half (so you know what's actually live):

  • APIFastAPI behind a TLS-only ingress; bcrypt-hashed passwords; JWT auth with per-device sessions + global revocation; rate limiting on every auth surface.
  • databaseMongoDB Atlas (managed, encrypted at rest); TTL indexes on every token collection; unique indexes enforcing one-tx-one-order; no PII beyond email + display name.
  • webhooksAlchemy Notify for EVM/Solana; signature verification on every inbound webhook; replay-protection via nonce store.
  • emailsResend with DKIM + SPF; recovery / verification links scoped to 24h.
legal entity

Who you're trusting (and with what)

CRYPT.PE is 3-102-969985 S.R.L., a Costa Rican limited liability company and software publisher domiciled in Escazú, San José, Republic of Costa Rica. You're trusting that entity with:

  • uptimeavailability of the dashboard, QR pages, and webhook routing.
  • UXthe buttons, the links, the analytics, the receipts.
  • privacyhandling your email + your display name responsibly per our privacy policy.

You are not trusting us with your money. That's the whole point.

responsible disclosure

Found a bug? Tell us first.

If you've found a security issue in CRYPT.PE, please email us before publishing details. We'll respond within 72 hours, work with you on a fix timeline, and credit you on our changelog if you'd like.

security@crypt.pe

PGP key available on request — we'll send fingerprint in the ack reply.

Last reviewed: Feb 2026 — this page is updated whenever the architecture changes. for the full technical changelog see /changelog.