P2P and OpenPGP literacy for people who already care about Monero
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
| Field | Value |
|---|---|
| Topic | P2P trade literacy; OpenPGP public-key delivery; messenger plaintext risk; Monero layer hygiene |
| Format | Guide-first explainer for privacy / security-minded readers |
| Key sources | OpenPGP encryption overview · RFC 9580 · Telegram cloud vs secret chats · Domestic Monero public FAQ / Profile copy |
| Product mentioned | Domestic 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 not | User-to-user encrypted chat; seizure-proof guarantee; legal or tax advice; concealment manual |

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:
| Risk | Why it matters |
|---|---|
| Counterparty | Someone must move first or rely on a lock |
| Payment rails | Fake proofs, third-party deposits, tainted fiat (if any) |
| Channel hygiene | Fake support, off-platform pushes, paste-the-secret scams |
| Operational discipline | Deadlines, 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:
- Arrive from a transparent asset (BTC, ETH, USDT…)
- Coordinate through a messenger or web UI
- 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:
| Layer | What it can hide | What it cannot hide |
|---|---|---|
| Monero chain | Amounts / counterparties on that ledger | Your Telegram identity, screenshots, exchange KYC |
| Messenger cloud | Casual ISP snooping in transit | Platform-accessible cloud content; phone metadata under process |
| OpenPGP to your pubkey | Readable body of a delivered secret in that channel | A 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):
- A random session key encrypts the message body (symmetric).
- That session key is encrypted to the recipient’s public key.
- 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.”

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 pack | Your Profile OpenPGP key | |
|---|---|---|
| Purpose | Prove official bot / authenticity materials | Encrypt inbound sensitive notifications to you |
| Who decrypts | You verify signatures with the published operator key | You decrypt with your private key |
| Chat? | No | No — 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.

Practical habits (small, checkable)
- Generate and back up an OpenPGP key offline before you need it mid-trade.
- Register only the public key in Profile; never paste the private key or passphrase into Telegram.
- Enable encrypted notifications only after the key verifies.
- Copy trade shares to offline storage; treat chat history as hostile long-term storage.
- Verify the bot before any of the above: Verify official channels.
- Start with a small trade to rehearse decrypt → settle → Receive XMR / refund without adrenaline.

Terms in this article
| Term | Meaning here |
|---|---|
| P2P offer | Peer listing to buy/sell XMR against supported payment assets |
| Trade share | Authorization credential required to receive or refund XMR at the right state |
| OpenPGP | Public-key cryptography standard for encrypting/signing data |
| Cloud notification | Bot message delivered through Telegram’s default (non–Secret Chat) path |
| Multisig Trade Wallet | Platform-staged wallet address shown in-app — not on-chain Monero multisig you control |
| Trade #ref | Short 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
