Skip to main content

P2P and OpenPGP literacy for people who already care about Monero

· 9 min read
Domestic Monero
Domestic Monero team

Monero’s ledger already hides amounts and counterparties by default. That is necessary. It is not sufficient. The leak that ruins a careful stack is often boring: a trade secret sitting in plain text inside a messenger, a screenshot of a share, a “support” DM that asks you to paste what only you should hold.

This post is literacy — P2P role and limits, then why encrypting sensitive delivery to your own public key is part of the same skill set — not a product pitch dressed as a thriller.

At a glance

FieldValue
TopicP2P trade literacy; OpenPGP public-key delivery; messenger plaintext risk; Monero layer hygiene
FormatGuide-first explainer for privacy / security-minded readers
Key sourcesOpenPGP encryption overview · RFC 9580 · Telegram cloud vs secret chats · Domestic Monero public FAQ / Profile copy
Product mentionedDomestic Monero — optional OpenPGP on Profile for encrypted notifications
Official entry@domestic_monero_bot
Support/support on the official bot only (include Trade #ref + trade state)
Assets (P2P)XMR ↔ BTC, LTC, ETH, SOL, USDT (ERC-20 on Ethereum mainnet only)
What it is notUser-to-user encrypted chat; seizure-proof guarantee; legal or tax advice; concealment manual
Three horizontal layers labeled Monero chain, messenger delivery, and OpenPGP envelope — each with a short what-it-covers line.
Three layers. Collapsing them into one slogan is how leaks happen.

What P2P is for (role, effect, performance, security)

Role. Peer-to-peer trading connects two people who already agree on asset, amount, and rails — without a central limit-order book deciding the match. A platform may still stage the deal (offers, locks, proofs, settlement gates). That staging is not the same as “a stranger in a group chat holding your coins.”

Effect. When regulated venues delist privacy coins or freeze accounts mid-KYC, P2P conversion paths stay available as a category: desktop Tor markets, instant swaps, structured Mini Apps, and — riskiest — informal chat deals. Archive already maps those differences: Instant swap vs P2P, Telegram is not an escrow.

Performance. P2P is usually slower than a liquid CEX click. Stake, on-chain payment proof, confirmation waits, and human timing are the cost of a trust model that does not assume a licensed broker. Calling that “bad UX” without naming the trust trade is incomplete.

Security. P2P shifts risk toward:

RiskWhy it matters
CounterpartySomeone must move first or rely on a lock
Payment railsFake proofs, third-party deposits, tainted fiat (if any)
Channel hygieneFake support, off-platform pushes, paste-the-secret scams
Operational disciplineDeadlines, exact amounts, keeping credentials offline

Escrow or multisig-style staging reduces some theft shapes. It does not erase bad payment sources, device compromise, or plaintext secrets in chat history. For bank-freeze angles on fiat-receipt P2P, see P2P bank freezes.

Why this literacy is mandatory for Monero people

Monero addresses on-chain visibility. Most users still:

  1. Arrive from a transparent asset (BTC, ETH, USDT…)
  2. Coordinate through a messenger or web UI
  3. Store recovery material and trade credentials on devices

If step 2 leaves Authorization Credentials in readable chat history, the chain’s privacy did not fail — the delivery path did.

Privacy advocates already think in layers (keys, freeze planes, legal obligations). Apply the same habit to Monero ops:

LayerWhat it can hideWhat it cannot hide
Monero chainAmounts / counterparties on that ledgerYour Telegram identity, screenshots, exchange KYC
Messenger cloudCasual ISP snooping in transitPlatform-accessible cloud content; phone metadata under process
OpenPGP to your pubkeyReadable body of a delivered secret in that channelA seized device that also holds your private key + passphrase

Sibling framing for messenger architecture: Why a Telegram Mini App.

OpenPGP in one page (the useful half)

OpenPGP is a hybrid cryptosystem (openpgp.dev, RFC 9580):

  1. A random session key encrypts the message body (symmetric).
  2. That session key is encrypted to the recipient’s public key.
  3. Only the matching private key unlocks the session key, then the body.

Anyone can hold your public key. Only you should hold the private key. Ciphertext in a cloud chat is still ciphertext to everyone who lacks that private key — including a curious admin, a stolen session screenshot farm, or a future dump of chat backups.

Hard limits (say them out loud):

  • Endpoint compromise wins. If the private key and passphrase live on the seized phone, the envelope is open.
  • Metadata remains. Who was messaged, when, and that a PGP blob arrived can still be visible.
  • Not forward-secret by default. A long-term private key leak can decrypt older captured ciphertext.
  • Not a chat protocol. Registering a key for inbound service delivery is not “encrypted DMs with counterparties.”
Two columns: left shows a plain trade-share string in a chat bubble; right shows a PGP ciphertext block labeled only you can decrypt.
Same channel. Different residue if the history is copied later.

What Domestic Monero actually ships (public UI)

Profile can hold an optional OpenPGP public key. With notifications configured, sensitive trade materials — including trade share delivery — can be sent as a PGP message only you can decrypt. Public string: “Sensitive trade details are sent as a PGP message only you can decrypt.”

Critical disambiguation:

Operator PGP packYour Profile OpenPGP key
PurposeProve official bot / authenticity materialsEncrypt inbound sensitive notifications to you
Who decryptsYou verify signatures with the published operator keyYou decrypt with your private key
Chat?NoNo — still not user-to-user messaging

Unshipped / out of scope for Archive as “live”: peer-to-peer encrypted trade chat between counterparties. Do not invent it.

When a trade is created you still get a trade share. Keep it offline. The app warns it will not show again after you agree. Lost share recovery paths that resend via Telegram are exactly why ciphertext beats plaintext in that chat.

Telegram Mini App Profile Notifications — toggles and PGP key card with key material blurred.
Optional PGP on Profile — notifications, not a social inbox.

Practical habits (small, checkable)

  1. Generate and back up an OpenPGP key offline before you need it mid-trade.
  2. Register only the public key in Profile; never paste the private key or passphrase into Telegram.
  3. Enable encrypted notifications only after the key verifies.
  4. Copy trade shares to offline storage; treat chat history as hostile long-term storage.
  5. Verify the bot before any of the above: Verify official channels.
  6. Start with a small trade to rehearse decrypt → settle → Receive XMR / refund without adrenaline.
Two columns contrasting operator authenticity PGP with user Profile PGP for encrypted inbound delivery.
Two different keys. Mixing them up is a common support ticket waiting to happen.

Terms in this article

TermMeaning here
P2P offerPeer listing to buy/sell XMR against supported payment assets
Trade shareAuthorization credential required to receive or refund XMR at the right state
OpenPGPPublic-key cryptography standard for encrypting/signing data
Cloud notificationBot message delivered through Telegram’s default (non–Secret Chat) path
Multisig Trade WalletPlatform-staged wallet address shown in-app — not on-chain Monero multisig you control
Trade #refShort public trade identifier for /support

Disclaimer

This article is editorial opinion and general security literacy, not legal advice, not tax advice, and not a guide to evade lawful process. Encrypting notifications changes who can read a chat transcript; it does not make you invisible, seize-proof, or exempt from local law. If a device holding your private key is compromised, assume ciphertext for that key is readable.

FAQ

Is OpenPGP required on Domestic Monero?
No. It is optional. Public FAQ recommends it if you want Authorization Credentials and notifications off plain chat.

Does registering a key let me chat privately with my counterparty?
No. There is no user-to-user chat. PGP encrypts service → you delivery of sensitive materials.

If police seize my phone, am I safe?
If the private key / passphrase unlocks on that phone, no. Ciphertext in Telegram helps against others reading the cloud copy without your key. It is not a device-seizure talisman.

Why not just use Secret Chats?
Secret Chats are one-to-one human E2EE and do not redefine how bots deliver cloud notifications. Product notifications ride the cloud path; encrypt the payload if the payload is sensitive.

What is Domestic Monero?
A Telegram Mini App for peer-to-peer Monero trades against BTC, LTC, ETH, SOL, and USDT (ERC-20). Official entry: @domestic_monero_bot.

Open the Mini App: @domestic_monero_bot

Related: Why a Telegram Mini App · Telegram support DM near-miss · Self-custody habits · Verify official channels