Monerujo version: 4.1.7 'Exolix' (installed from F-Droid)
Android version: 12 (12 SKQ1.211019.001)
Device: POCO X3 NFC (MIUI Global 14.0.2 Stable)
Issue:
Monerujo cannot connect to my self-hosted Monero node, while Cake Wallet connects successfully with identical settings.
Node configuration:
- Domain: monero.magnoliya.homes
- Port: 18089 (SSL enabled)
- Setup: monerod (restricted-rpc) → SSH tunnel → nginx reverse proxy
- Certificate: Valid Let's Encrypt SSL certificate
What works:
✅ Cake Wallet connects successfully to monero.magnoliya.homes:18089
✅ curl with User-Agent "Monerujo/1.0" returns 200 OK:
curl -X POST https://monero.magnoliya.homes:18089/json_rpc \
-H 'User-Agent: Monerujo/1.0' \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":"0","method":"get_info"}' -k
# Result: HTTP 200 with valid blockchain data
✅ monerod works in restricted-rpc mode:
curl -X POST http://localhost:18089/json_rpc \
-d '{"jsonrpc":"2.0","id":"0","method":"get_info"}' \
-H 'Content-Type: application/json'
# Result: HTTP 200 with valid data
What doesn't work:
❌ Monerujo returns "ОШИБКА СОЕДИНЕНИЯ 400" (CONNECTION ERROR 400) when testing the node
Server logs show:
146.59.10.99 - - [10/Dec/2025:15:26:40 -0500] "POST /json_rpc HTTP/1.1" 400 255 "-" "Monerujo/1.0"
146.59.10.99 - - [10/Dec/2025:15:26:42 -0500] "POST /json_rpc HTTP/1.1" 400 255 "-" "Monerujo/1.0"
tcpdump capture shows Monerujo sends:
POST /json_rpc HTTP/1.1
Host: monero.magnoliya.homes:18089
User-Agent: Monerujo/1.0
Content-Length: 56
Accept: application/json
Accept-Encoding: gzip
Content-Type: application/json; charset=utf-8
{"jsonrpc":"2.0","id":"0","method":"getlastblockheader"}
Interesting observations:
- Method
getlastblockheader (no underscores) works when called directly via curl
- Method
get_last_block_header (with underscores) also works
- monerod accepts both method name variants
- Some requests from Monerujo return 200, but the node test still fails
Questions:
- Does Monerujo require any specific RPC methods for node validation?
- Why does curl with the same User-Agent work, but the app doesn't?
- Is there any documentation on Monerujo's node connection requirements?
Additional information:
- Port 18089 is specified in Monerujo settings, SSL is enabled
- No login/password specified (node runs in restricted-rpc mode without authentication)
- Certificate is valid and works in browser
- Cake Wallet connects to the same node without issues
Monerujo version: 4.1.7 'Exolix' (installed from F-Droid)
Android version: 12 (12 SKQ1.211019.001)
Device: POCO X3 NFC (MIUI Global 14.0.2 Stable)
Issue:
Monerujo cannot connect to my self-hosted Monero node, while Cake Wallet connects successfully with identical settings.
Node configuration:
What works:
✅ Cake Wallet connects successfully to
monero.magnoliya.homes:18089✅ curl with User-Agent "Monerujo/1.0" returns 200 OK:
✅ monerod works in restricted-rpc mode:
What doesn't work:
❌ Monerujo returns "ОШИБКА СОЕДИНЕНИЯ 400" (CONNECTION ERROR 400) when testing the node
Server logs show:
tcpdump capture shows Monerujo sends:
Interesting observations:
getlastblockheader(no underscores) works when called directly via curlget_last_block_header(with underscores) also worksQuestions:
Additional information: