moneroc
is a tool designed for automating the process of distributing funds between multiple Monero accounts and churning them (i.e., transferring funds between accounts multiple times) in the same wallet using monero-wallet-rpc. It interacts with the Monero RPC server to create new accounts, distribute funds, churn, and shuffle balances. The goal is to enhance the privacy and transaction obfuscation, making it more difficult to trace the origin and flow of funds. moneroc
accomplishes this by leveraging Monero's ring signature privacy and simulating the natural fund movements with randomized delays between transactions.
moneroc
is designed for:
- Obfuscating the source of funds by introducing multiple decoy addresses that get mixed into future transactions, utilizing ring signatures to obscure transaction origins.
- Simulating real-world transaction patterns by adding unpredictable delays and repeating churn operations over several hours, preventing any identifying patterns in fund transfers.
NOTE: moneroc
is not offering or guaranting full complete untraceability of your Monero, simply put it is just a tool designed to help Monero users who participate in churning to do it properly (read up carefully before you use). Monero is a tool just like moneroc
and tools are meant to be used correctly. There is no silver bullet for privacy, people can slip up and make mistakes—just be smart, cautious, and aware/vigilant.
I have tried and will continue to try to make this tool as user-friendly as possible so even the most non-technical/average person is able to use it easily and successfully.
- Dynamic Range Calculation:
moneroc
automatically calculates the range of atomic units (AMU) to distribute based on the total balance of the account (main account 0). - Account Creation & Transfer:
moneroc
automatically creates new monero accounts and distributes a random amount of XMR within a specific range between them. - Churn Automation: Configurable churn range to randomly perform churns between accounts for a set number of times to enhance privacy.
- Monitors Account Balance:
moneroc
ensures that sufficient unlocked funds are available before proceeding with any transactions. - Delays: Random (30-60 minutes delay range) delays between each operation because after each churn, 8-10+ hours pass, and decoy addresses start to appear, making it difficult for anyone monitoring the process to detect patterns, trace, or link activities.
- Your OWN (local - will explain why later on why local node is needed) Monero node.
- monero-wallet-rpc completely setup with the JSON-RPC interface enabled (default is
http://127.0.0.1:18082/json_rpc
) - bun - https://bun.sh/ for running the tool.
All moneroc
requires to install is bun.sh, execute the following:
git clone https://github.com/antichainalysis/xmr-churner.git
cd xmr-churner
curl -fsSL https://bun.sh/install | bash
bun install
PLEASE READ THIS BEFORE YOU INSTALL AND RUN moneroc
.
To run moneroc
, execute the following command:
bun run main.ts --rpc-url <RPC_URL> --churnRange <min,max>
--rpc-url
or-rpc
: The RPC URL of your Monero node (defaults tohttp://127.0.0.1:18082/json_rpc
).--churnRange
or-cr
: A comma-separated range (e.g., 3,7) that specifies how many times to perform the churn operation. The tool will randomly select a number within this range (defaults to3,7
).
Example:
bun run main.ts --rpc-url http://127.0.0.1:18082/json_rpc --churnRange 3,7
Read this for a tldr/faster, better, simpler, and clearer understanding of moneroc
.
1. Check Account Balance
moneroc
first checks the balance and unlocked balance of the wallet.- If the balance is below the upper limit of
maxRange
,moneroc
breaks the loop and stops distributing funds. - If the unlocked balance is insufficient, it waits for the funds to become available by polling the balance every 5 seconds
2. Create new Account
- Once sufficient funds are avaiable,
moneroc
creates a new Monero account and retrieves the account's address and index
3. Fund Distribution
- A random amount of XMR (within the
amuRange
range) is selected and transferred to the newly created account using the Monerotransfer
method via a RPC call.
4. Wait for Unlocked Funds
- If the unlocked balance is not enough,
moneroc
waits until the funds are unlocked.
5. Random Delays Between Operations
- After each transfer,
moneroc
introduces a random delay between 30 and 60 minutes to mimic more natual, human-like behaviour. This preventsmoneroc
from acting in a predictable manner and makes it harder for any observer to track/trace the flow of funds.
6. Churning Process
- After all funds have been distributed across the accounts created in the same wallet,
moneroc
starts the churning process:- It retrieves a list of all accounts and their balances.
- Accounts with non-zero balances are selected for churning.
moneroc
transfers funds from each account to a newly created account, iterating over each account as specific by thechurnRange
7. Churning Iterations
moneroc
performs the churn operation for each selected account a random number of times (iters
), defined within thechurnRange
. Each churn operation involves transferring all available funds from an account to a new one.