knowledge/technology/tools/Monero.md
2025-06-20 02:15:50 +02:00

7 KiB

website repo obj
https://www.getmonero.org https://github.com/monero-project/monero concept

Monero

Monero is a privacy-focused cryptocurrency that prioritizes anonymity and security in transactions. Launched in April 2014, Monero (XMR) has gained popularity for its commitment to providing private and untraceable transactions on a blockchain.

Features

1. Privacy and Fungibility

Monero employs advanced cryptographic techniques, including ring signatures and stealth addresses, to ensure that transactions are private and unlinkable. This focus on privacy enhances fungibility, as all units of Monero are considered equal and indistinguishable.

2. Ring Signatures

Monero uses ring signatures to mix a user's transaction with others, making it difficult to determine the actual sender. This ensures that the true origin of funds remains confidential.

3. Stealth Addresses

Stealth addresses generate a one-time address for each transaction, making it virtually impossible to trace funds back to the recipient. This feature enhances the privacy of the receiver.

4. Ring Confidential Transactions (RingCT)

RingCT further improves privacy by concealing transaction amounts. This is achieved by allowing users to prove the validity of their transaction without revealing the exact amount involved.

5. Dynamic Block Size and Fees

Monero dynamically adjusts block size and fees based on network demand, ensuring scalability and preventing congestion.

Daemon

monerod connects to the Monero Network and acts as a node.

Configuration

By default Monero looks for bitmonero.conf in Monero data directory.

To use a specific config file add --config-file option: ./monerod --config-file=/etc/monerod.conf

# ~/.bitmonero/bitmonero.conf
#
# Configuration file for monerod. For all available options see the MoneroDocs:
# https://docs.getmonero.org/interacting/monerod-reference/

# Data directory (blockchain db and indices)
data-dir=~/.bitmonero   # Blockchain storage location

# Optional pruning
#prune-blockchain=1           # Pruning saves 2/3 of disk space w/o degrading functionality but contributes less to the network
#sync-pruned-blocks=1         # Allow downloading pruned blocks instead of prunning them yourself

# Centralized services
check-updates=disabled         # Do not check DNS TXT records for a new version
enable-dns-blocklist=1         # Block known malicious nodes

# Banlist
#ban-list=/path/to/ban.txt      # Local list of peers to ban

# Log file
log-file=~/.bitmonero
log-level=0                    # Minimal logs, WILL NOT log peers or wallets connecting


# P2P full node
#p2p-bind-ip=0.0.0.0            # Bind to all interfaces (the default)
#p2p-bind-port=18080            # Bind to default port
#no-igd=1                       # Disable UPnP port mapping

# RPC open node
#public-node=1                  # Advertise to other users they can use this node for connecting their wallets
rpc-restricted-bind-ip=0.0.0.0 # Bind to all interfaces (the Open Node)
rpc-restricted-bind-port=18089 # Bind to a new RESTRICTED port (the Open Node)

# RPC TLS
rpc-ssl=autodetect             # Use TLS if client wallet supports it; [enabled|disabled|(default)autodetect]

# ZMQ
#zmq-rpc-bind-ip=127.0.0.1      # Default 127.0.0.1
#zmq-rpc-bind-port=18082        # Default 18082
zmq-pub=tcp://127.0.0.1:18083  # ZMQ pub
#no-zmq=1                       # Disable ZMQ RPC server

# Mempool size
max-txpool-weight=2684354560   # Maximum unconfirmed transactions pool size in bytes (here ~2.5GB, default ~618MB)

# Database sync mode
#db-sync-mode=safe:sync        # Slow but reliable db writes

# Network limits
out-peers=12              # Default 12
in-peers=48               # The default is unlimited; we prefer to put a cap on this

limit-rate-up=1048576     # 1048576 kB/s == 1GB/s; a raise from default 2048 kB/s; contribute more to p2p network
limit-rate-down=1048576   # 1048576 kB/s == 1GB/s; a raise from default 8192 kB/s; allow for faster initial sync

# Tor/I2P: broadcast transactions originating from connected wallets over Tor/I2P (does not concern relayed transactions)
#tx-proxy=i2p,127.0.0.1:4447,12,disable_noise  # I2P
#tx-proxy=tor,127.0.0.1:9050,12,disable_noise  # Tor

# Tor/I2P: tell monerod your onion address so it can be advertised on P2P network
#anonymous-inbound=PASTE_YOUR_I2P_HOSTNAME,127.0.0.1:18085,24         # I2P
#anonymous-inbound=PASTE_YOUR_ONION_HOSTNAME:18084,127.0.0.1:18084,24 # Tor

# Tor: be forgiving to connecting wallets
disable-rpc-ban=1

i2p

Monero should be used via i2p in order to combat networking attacks.

First setup two b32 addresses:

[monero-node]
type = server
host = 127.0.0.1
# Anonymous inbound port
port = 18085
inport = 0
keys = monero-mainnet.dat

[monero-rpc]
type = server
host = 127.0.0.1
# Restricted RPC port
port = 18089
keys = monero-mainnet.dat

Then set these in the config:

anonymous-inbound=yourlongb32i2paddress.b32.i2p,127.0.0.1:18085
tx-proxy=i2p,127.0.0.1:4447,disable_noise

monero-cli-wallet

monero-wallet-cli is the wallet software shipped in the Monero archives. It is a console program, and manages an account.

Generate new wallet:

monero-wallet-cli --generate-new-wallet <file>

Use existing wallet:

monero-wallet-cli --wallet-file <file> --password-file <passwd>

Commands

Command Description
wallet_info Show wallet main address and other info
balance Show balance
address all Show all addresses
address new [<label>] Create new subaddress
transfer <address> <amount> Send XMR to an address
show_transfers [in/out/pending/failed/pool] Show transactions
sweep_all <address> Send whole balance to another wallet
seed Show secret 25 words that can be used to recover this wallet
refresh Synchronize wallet with the Monero network
status Check current status of wallet

Applications

Sites accepting Monero

List of supported sites

Site Description
Mullvad VPN VPN