Environment and service reference

Every environment variable, RPC method, timing constant, file and admin endpoint the Monero addon uses — the flat reference behind the guides.

1 min readUpdated 3 August 2026reference, environment, rpc, constants, endpoints

Everything on this page is read out of the shipped source. Where a number is given it is a compiled-in constant, not a setting — none of the timings below can be changed from .env.

Identity

Property Value
Chain code XMR
Currency XMR
Decimals 12 — amounts are handled in piconero and divided by 10^12
Product ID 54578959
Licence file lic/54578959.lic
Explorer https://xmrchain.net
Log tag XMR
Master wallet filename master_wallet
User wallet filename The ECO wallet's UUID

Environment variables

None of these are in .env.example. Add them to the project root .env and restart the backend — they are read once, when the Monero service is first constructed.

monerod JSON-RPC URL including the /json_rpc path. Used for get_info and get_fee_estimate, and forwarded to wallet-rpc as its daemon address.
monero-wallet-rpc JSON-RPC URL including the /json_rpc path. A failing get_version at startup disables the entire chain.
HTTP Digest username, sent to BOTH the daemon and the wallet RPC and forwarded as the daemon login in set_daemon. Leave unset only when both services run with --disable-rpc-login.
Password paired with XMR_RPC_USER.
Declares the operating network — mainnet, stagenet or testnet. Selects no endpoint. Drives withdrawal address-prefix validation and is compared against the daemon nettype by the diagnostics.

Ecosystem's background deposit scanner also affects this chain:

Set to "false" to disable the background deposit scanner platform-wide. On a Monero install this is the only path that catches deposits arriving after the user closes the deposit page.
Overrides the per-chain background scan rate in passes per second. The Monero default is 0.05 — one wallet sweep per twenty seconds — because each pass takes exclusive possession of the single wallet RPC.

Keys read by nothing

Key Reality
XMR_WALLET_PASSWORD Wallet files are created and opened with an empty password regardless of this value. The diagnostics warn when it is set
XMR_WALLET_USER Listed in the admin diagnostics, but read by no runtime code
XMR_MAINNET_RPC, XMR_STAGENET_RPC, XMR_TESTNET_RPC Display only — the Ecosystem overview badge checks presence; the Monero service never reads them

RPC methods used

Useful when you are writing a restricted RPC policy or reading a proxy log.

monero-wallet-rpc

Method Used for
get_version Startup health gate
set_daemon Pointing the wallet RPC at XMR_DAEMON_RPC_URL
create_wallet New user wallet and the master wallet
open_wallet / close_wallet Every operation; one wallet at a time
refresh Syncing before any read — without it, results are the on-disk cache
get_address Reading a new wallet's primary address
query_key Reading the mnemonic at creation, for encrypted storage
get_balance Total and unlocked balance
get_transfers Deposit detection and transaction history
get_transfer_by_txid Fetching the confirmed transfer being credited
transfer The do_not_relay fee probe and the real relay

monerod

Method Used for
get_info Height, synchronized, nettype
get_fee_estimate Pre-flight withdrawal fee estimate

get_fee_estimate is why the daemon must not run with restricted RPC.

Timing and limits

Deposits

Constant Value
Confirmations required to credit 6
Per-wallet check interval 5 seconds
Wallets checked per batch 3, sequentially
Loop sleep between passes 2 seconds
Empty checks before stopping 3 consecutive
Minimum monitoring before an early stop 10 minutes
Absolute monitoring cap 90 minutes
Idle retry cap 120 checks — only applies with nothing in flight
Credited-transaction dedup cache 30 minutes

Background refresh

Constant Value
Considered stale after 6 hours
Refresh budget per wallet 10 minutes
Runs when The queue is completely idle and there is no daemon back-off
Priority Low — always behind deposits and withdrawals
Eligible wallets XMR wallets with a positive balance

Withdrawals

Constant Value
Maximum wait for locked outputs 2 hours from row creation
Wallet open budget, recently refreshed 2 minutes
Wallet open budget, stale 15 minutes
transfer call timeout 120 seconds
Relay attempts 1 — never retried
Stale PROCESSING threshold in the queue 5 minutes, after which the row is flagged for manual review rather than reverted

RPC transport

Constant Value
Default call timeout 30 seconds
Default attempts 3, one second apart
Refresh default budget 60 seconds
Balance read refresh budget 120 seconds
Daemon back-off 30 s, doubling, capped at 5 minutes
Licence check cache 5 minutes

Ports

Only the P2P port needs to face the internet. Both RPC listeners should stay on loopback — the backend runs on the same host.

Port Service Exposure
18080 monerod P2P Public
18081 monerod RPC Loopback
18083 monero-wallet-rpc Loopback

The RPC ports are conventions, not requirements. Change them and change the two URLs in .env to match — nothing infers a port.

Files that matter

Path Contents Loss means
<--wallet-dir>/<uuid> and .keys One customer's Monero private keys Their balance is unspendable. Not recoverable from the master wallet
<--wallet-dir>/master_wallet and .keys The platform's XMR wallet Accumulated withdrawal profit is unspendable
lic/54578959.lic Machine-bound licence The chain cannot be enabled
monerod data-dir The blockchain A full resync, not a loss of funds

The mnemonics are also held, encrypted with the Ecosystem vault key, in wallet_data. That copy is only usable with the key material in .env — see Master wallets and the vault.

Admin endpoints

Full per-chain requirements report including every Monero key and prerequisite
Live probes — wallet-rpc get_version, monerod get_info, and the XMR_NETWORK against nettype comparison
Enables or disables the Monero chain row by product ID
Creates the XMR master wallet — calls create_wallet with the filename master_wallet
Live master wallet balance, cached for one minute in Redis
Registers XMR as a NATIVE token with a blank contract
Returns the user's ECO wallet, creating the Monero wallet file on first call