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.
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.
Ecosystem's background deposit scanner also affects this chain:
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.