# DiabloArb — Full Guide: Overview, Quick Start, Risks, and FAQ

# DiabloArb — Full Guide: Overview, Quick Start, Risks, and FAQ


https://github.com/cryptodiablo/diabloarb


## 1) What this bot is


DiabloArb is an arbitrage bot for Solana. It looks for price discrepancies of the same token across different pools (Pump, DLMM, etc.) and attempts to buy where it’s cheaper and sell where it’s more expensive. Everything is done in a single transaction to lock in profit before the window closes.


The bot uses:

- frequent transaction sending (on‑chain spam),

- priority fees,

- sometimes Jito to land in a block faster than competitors.


## 2) How arbitrage appears


Arbitrage appears when:

- someone makes a large trade in one pool,

- the price there changes faster than in other pools,

- for a short time (~400ms) there’s a “window” where the token is cheaper in one place and more expensive in another.


These windows are very short. That’s why you need:

- high attempt frequency,

- priority fees.


## 3) What you need beforehand


- A non‑custodial wallet (exporting `key.json` is required).

- SOL for gas + a small buffer.

- One RPC for reading and several RPCs for sending.

- A VPS/server if you want stable operation.


## 4) Quick start (step by step)


### Step 1. Repository


Code and description: `https://github.com/cryptodiablo/diabloarb`


If you’re setting up on a fresh server:


**apt update**


**apt install -y unzip wget**


Then download and unpack:


**wget -O diabloarb.zip https://github.com/cryptodiablo/diabloarb/archive/refs/heads/main.zip**


**unzip diabloarb.zip**


**cd diabloarb-main**


**chmod +x ./sender**


### Step 2. Wallet and key


Export your key from the wallet into `key.json`.  

Do not share this file with anyone.


### Step 3. RPC setup


In config there are two types:


- `rpc` — reading state (quotes/accounts),

- `send_rpcs` — sending transactions.


For on‑chain spam, **diversity of `send_rpcs`** is more important than the speed of a single node: txs can “land” via different RPCs every time.


Example logic:


```

rpc = "https://READ_RPC"


send_rpcs = [

 "https://SEND_RPC_1",

 "https://SEND_RPC_2",

 "https://rpc-indianapolis.constant-k.com/?api-key=YOUR_CONST_K",

 "https://rpc-frankfurt.constant-k.com/?api-key=YOUR_CONST_K"

]


keypair = "key.json"

flashloan = true

```


Recommendation:


- **Read RPC:** `https://www.constant-k.com/` for $5 or $50  

 (20% discount code **YURYSENTME** at Stripe checkout).

- **Send RPC:** `helius.dev` (plan $49) + you can add `quicknode` and `chainstack`.

- Also add **2 Constant‑K endpoints** to `send_rpcs` (e.g., Indianapolis + Frankfurt) to increase delivery chances.


### Step 4. Open a WSOL account


Profit comes in WSOL, gas is spent in SOL.  

You need to create a WSOL account once (wrap a bit of SOL):


**./sender update**


**./sender wrap config.toml 0.1** # wrap 0.1 SOL -> 0.1 WSOL


**./sender unwrap config.toml 0.1** # unwrap 0.1 WSOL -> SOL


**./sender unwrap config.toml all** # unwrap all WSOL (without closing ATA)


```


### Step 5. Markets (market.toml)


Where to find pairs:


- Successful arbs channel: <https://t.me/profit_arb_stream>

- https://moneyprinter.bot/pools/


Practice from chat: take a token from a successful tx and find its pools  

(often a Pump + DLMM pair).


Update `market.toml` regularly based on activity — old pairs stop arbing fast.


### Step 6. Jito / priority fees


If you see `429` from Jito — that’s rate limit.  

Increase delay:


```

jito_process_delay_ms = 1100

```


Or increase `jito_cooldown_ms` in `gas.json`.


Conservative baseline (start):


```json

{

 "enable_jito_max_tip": 5000,

 "enable_jito_min_tip": 1000,

 "enable_max_prio": 15000,

 "enable_min_prio": 100,

 "jito_cooldown_ms": 1000,

 "spam_cooldown_ms": 300,

 "spam_rpc": true,

 "spam_jito": true

}

```


### Step 7. Run


Start the bot and watch logs.  

Most attempts are “missed windows” — that’s normal.


## 5) How to tell it works


Signs it works:

- logs show `Dispatched tx`;

- blockhash updates;

- sometimes you see successful txs.


Important: most attempts won’t execute — that’s normal.


## 6) Where to see results


Exact results are best checked here:


- `https://diabloarb.bot/` — primary accurate stats,

- `https://moneyprinter.bot/stats/` — general stats,

- `https://moneyprinter.bot/pools/` — pools,

- `https://axiom.trade/trackers?chain=sol` — wallet tracking.


**Add wallet** — to track your wallets in My Wallets.


## 7) Risks and limitations


Quickly about the main points:


- competition — arb windows are very short;

- fees and spam attempts can eat small profits;

- operational issues (markets/LUT/WSOL/Jito) lead to “works but no profit”.


## 8) Common problems and fixes


### Problem: “Console says it works, but no txs”


Reasons:

- wrong `market.toml` or LUT;

- too many accounts → `Tx too large`.


Fix:

- simplify the markets list;

- update markets/tables;

- test just one or two pairs.


If you see `Tx too large`, open a successful tx from `@profit_arb_stream`,

copy **Lookup Tables** and add them to your LUT list

(e.g. `royallut.txt` / `lut.txt`).


### Problem: Jito `429 Rate limit`


Increase delays:


`jito_cooldown_ms` or `jito_process_delay_ms = 1100`.


### Problem: Jito `uuid parsing failed`


Set `jito_uuid = ""` or comment it out.


### Problem: “I see profit in Axiom, but wallet is empty”


Axiom often shows “virtual” profit.  

Check on `diabloarb.bot`, and profit is often in WSOL.


### Problem: SOL is zero, WSOL remains


Unwrap WSOL:


**./sender unwrap config.toml all**


## 9) Security


- Keep `key.json` only locally, with no external access.

- Don’t run the bot on “someone else’s” servers.

- Make backups of configs.


Source: [https://telegra.ph/Diablo-Arb-Bot---gajd-01-26](https://telegra.ph/Diablo-Arb-Bot---gajd-01-26)

Report Page