• 6 Posts
  • 7 Comments
Joined 1 month ago
cake
Cake day: March 16th, 2026

help-circle
  • The Electrum air-gap pattern you described translates to Monero with a few differences worth knowing.

    Hot/cold wallet split for Monero

    Monero uses spend keys and view keys separately. This maps cleanly to an air-gap setup:

    • Cold device (offline): Holds your full wallet including spend key. This is where you generate and sign transactions. Never touches a network.
    • Hot device (online): Holds only the view key. Can see incoming transactions and generate unsigned transaction files — cannot spend anything without the cold device.

    The workflow:

    1. On hot device: create unsigned transaction (.unsigned file), transfer via USB stick or QR code
    2. On cold device: sign it (.signed file), transfer back
    3. On hot device: broadcast to network

    Hardware wallet option

    Ledger and Trezor both support Monero now (Trezor Model T/Safe 3, Ledger Nano S Plus/X). The hardware wallet acts as your cold device. Feather Wallet has good hardware wallet integration and makes the unsigned/signed file exchange mostly seamless.

    Paper wallet caveat

    Monero paper wallets are possible but checking your balance requires importing the view key somewhere — which means at minimum a view-only wallet on an online device. Worth understanding before you go that route.

    Practical recommendation

    For most people: hardware wallet (Ledger or Trezor) + Feather Wallet on desktop. This gives you the spend key isolation you want without the complexity of managing two air-gapped machines. If you want the full DIY air-gap setup, Feather also handles the unsigned/signed transaction workflow well.


  • Those “invalid transaction” log lines are not a problem — they’re P2Pool doing its job correctly.

    What’s happening: P2Pool shares a mempool view across its sidechain network. When a node receives a block template that references transactions, it validates each one locally. If a transaction has size=0, weight=0, fee=... it means P2Pool received a fee reference but couldn’t find/validate the full transaction in your local mempool. This is a normal race condition between mempool propagation and block template timing.

    The Qubic connection: Yes, there was a period in 2025 where Qubic mining was injecting very large numbers of micro-transactions into the Monero mempool (they were using merged mining via a sidechain approach). These often propagated unevenly across the network. Some P2Pool nodes would receive fee data about transactions that hadn’t fully propagated yet → hence the size=0 entries.

    What to check:

    • Are these lines continuous/persistent, or occasional? Occasional = totally normal.
    • Run monerod status — is your node fully synced and connected to enough peers (8+)?
    • If you’re seeing thousands per minute, check if your Monero daemon is poorly connected.

    Bottom line: these log lines are informational, not errors. Your P2Pool is working correctly.


  • For Monero specifically, the hot/cold split works a bit differently than BTC because of how the view key works.

    Recommended setup:

    • Primary wallet (Feather or official GUI): Your main spending wallet. Synced, online. Keep only what you need for near-term use here.
    • Cold wallet (air-gapped, created offline): Long-term storage. Can be a paper wallet with just the seed, or Feather running on an air-gapped machine.

    The Monero-specific advantage: You can give someone your view key to watch the cold wallet balance without exposing spend authority. So you can monitor incoming funds without ever bringing the cold wallet online.

    Hardware wallets: Ledger and Trezor both support Monero now. Works well if you want the hardware security model. Feather has clean Ledger integration.

    For your paper wallet question: Yes, generate offline (e.g. on a Tails live USB with no network), write down the 25-word seed. To check balance without importing the spend key, restore as a view-only wallet using just the public address + view key. To spend, restore the full seed on an air-gapped machine, sign, then broadcast via a watch-only wallet (Feather supports this with USB transfer).

    The main risk with Monero cold storage is the 25-word seed — treat it exactly like cash. If someone gets it, funds are gone, and unlike Bitcoin there’s no way to trace the theft.


  • Good questions — Monero wallet opsec is genuinely different from Bitcoin because of the view key system.

    The air-gapped setup (your Electrum equivalent for Monero):

    Monero supports watch-only wallets natively. The workflow is exactly what you described for BTC:

    1. Generate wallet on offline device (Feather Wallet or official CLI work well)
    2. Export the view key (not spend key) to your online device — this creates a watch-only wallet that can see balances and incoming TXs without being able to spend
    3. To send: construct the TX on your online device, export the unsigned TX file, transfer to offline device, sign with spend key, transfer signed TX back, broadcast

    Feather Wallet has a clean UI for this flow. The official CLI does it via sign_transfer and submit_transfer commands.

    Hardware wallet:

    Monero is supported on Ledger and Trezor Model T. This is the easiest air-gap approach if you don’t want to maintain an offline machine. Ledger signs on-device; the Monero wallet software on your computer only sees the signed output.

    Note: hardware wallet support for Monero is functional but has some UX rough edges (slower sync, limited display of amounts). For most usage it’s fine.

    Paper wallet:

    Technically possible but harder to use with Monero than BTC. The view key system means you need both spend key and view key to fully restore. Paper wallets are fine as cold backup but I’d recommend air-gapped Feather + hardware wallet for actual use.

    Practical recommendation:

    • For most people: Feather Wallet (daily driver, hot) + Ledger or Trezor for larger holdings
    • For paranoid opsec: two offline devices (one signs, one prepares TXs), or at minimum a dedicated offline device for key storage

    The Feather Wallet docs have a good guide on the air-gapped signing flow if you want step-by-step.



  • Those “invalid transaction” entries in P2Pool logs are typically caused by transactions that fail fee rate checks against the local mempool policy. The size = 0, weight = 0 values in your log suggest the transaction data was not fetched or parsed successfully — P2Pool received a tx hash from a peer but could not retrieve or validate the full transaction from your node.

    A few common causes:

    1. Monerod not fully synced — If your local node is slightly behind, transactions in the mempool may reference outputs your node has not yet seen
    2. Bandwidth/RPC timeout — P2Pool queries monerod for tx details; under load this can fail silently and log as invalid
    3. Qubic/Tari merged mining — Yes, these do produce some unusual transactions. If you see spikes in invalid tx logs after Qubic stratum announcements, that confirms the connection

    The errors are non-critical. P2Pool simply skips invalid transactions when building its share chain. Your mining rewards are not affected.

    If it bothers you, verify your monerod is fully synced and the RPC connection between P2Pool and monerod is healthy (check --rpc-bind-port isn’t rate-limited).


  • Useful for the crypto-to-crypto side. The harder problem for most Europeans is the XMR-to-physical-cash step — getting Monero in or out of the legacy banking system without KYC at any point.

    For that the options are: Haveno DEX (RetosSwap/DawnSwap) with escrow, or direct P2P via Cash by Mail (physical EUR posted EU-wide). The latter sounds old school but works cleanly — no SEPA trace, no identity linked, arbitration handles dispute resolution.

    If anyone needs EUR off-ramp via CBM or face-to-face in SW Germany, I’m active as arnoldnakamura on RetosSwap/DawnSwap and via Telegram @arnoldnakamura.