Skip to content

Commit d2b8a16

Browse files
committed
2 parents 099323f + f20c24d commit d2b8a16

37 files changed

Lines changed: 63406 additions & 1 deletion

idl/drift.json

Lines changed: 16466 additions & 0 deletions
Large diffs are not rendered by default.

idl/drift.ts

Lines changed: 16473 additions & 0 deletions
Large diffs are not rendered by default.

idl/marginfi_drift.json

Lines changed: 13537 additions & 0 deletions
Large diffs are not rendered by default.

idl/marginfi_drift.ts

Lines changed: 13543 additions & 0 deletions
Large diffs are not rendered by default.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
"lint": "prettier */*.js \"*/**/*{.js,.ts}\" --check"
2323
},
2424
"dependencies": {
25-
"@coral-xyz/anchor": "^0.30.1",
25+
"@coral-xyz/anchor": "^0.31.0",
2626
"@coral-xyz/spl-token": "^0.30.1",
2727
"@mrgnlabs/marginfi-client-v2": "6.1.4",
2828
"@mrgnlabs/mrgn-common": "2.0.3",

scripts/drift-staging/BANKS.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# Drift-Enabled Banks
2+
3+
## Staging Environment
4+
5+
Program: `5UDghkpgW1HfYSrmEj2iAApHShqU44H6PKTAar9LL9bY`
6+
Group: `ERBiJdWtnVBBd4gFm7YVHT3a776x5NbGbJBR5BDvsxtj`
7+
8+
| Asset | Bank | Market Index | Oracle Type | Token Program |
9+
|-------|------|--------------|-------------|---------------|
10+
| USDC | `73PAdXZSH7s89QBLUHntp12QaHWqdc6GChCYLSVF1RBJ` | 0 | Pyth Push | SPL Token |
11+
| SOL | `H2FT24RksVSq6kxhfPZacyqbEaXUtRZNi1QvMGV9RrFX` | 1 | Switchboard Pull | SPL Token |
12+
| jitoSOL | `7TduwJSpq2zhPguaciA3GADsnspwSx6FQjZUhy37Jtgz` | 6 | Switchboard Pull | SPL Token |
13+
| PYUSD | `8txe1gXz2yGGsy22NAtimJnCM4ivDQSQAf5kz2VZJsRR` | 22 | Pyth Push | Token-2022 |
14+
| USDS | `5kW3rsj6XoB2VsE7RdGkmWMo4wQy5ZgLNcH3CFRHEq7J` | 28 | Pyth Push | SPL Token |
15+
| bSOL | `7iPsp3XiMFe3yJppCzSj7dLhkhnejm8id2ejBBoW4RgW` | 8 | Switchboard Pull | SPL Token |
16+
| SOL (Isolated) | `BWAm7qFe3uQ3mEzuJNU8umCjKBMvsMr3AiFKGowiD5B8` | 49 | Switchboard Pull | SPL Token |
Lines changed: 245 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,245 @@
1+
# Drift Protocol Mainnet Spot Markets Research
2+
3+
**Date:** 2025-11-08
4+
**Purpose:** Identify viable Drift spot markets for marginfi integration
5+
6+
## Summary
7+
8+
Successfully fetched **61 Drift spot markets** from mainnet. Below are the top candidates for marginfi drift integration.
9+
10+
## Key Findings
11+
12+
### Token-2022 Assets (5 total)
13+
These are particularly interesting as they demonstrate Token-2022 program compatibility:
14+
15+
1. **PYUSD** (PayPal USD)
16+
- Market Index: 10500
17+
- Mint: `2b1kV6DkPAnxd5ixfnxCpjxmKwqjjaYmCZfHsFu24GXo`
18+
- Oracle: `5QZMnsyndmphvZF4BNgoMHwVZaREXeE2rpBoCPMxgCCd`
19+
- Token Program: Token-2022
20+
- **Recommended**: Yes - major stablecoin on Token-2022
21+
22+
2. **AUSD** (Agora USD)
23+
- Market Index: 10500
24+
- Mint: `AUSD1jCcCyPLybk1YnvPWsHQSrZ46dxwoMniN4N2UEB9`
25+
- Oracle: `9JYpqJfLXgrW8Wqzfd93GvJF73m2jJFjNqpQv3wQtehZ`
26+
- Token Program: Token-2022
27+
- **Recommended**: Maybe - newer stablecoin
28+
29+
3. **PUMP**
30+
- Market Index: 13000
31+
- Mint: `pumpCmXqMfrsAkQ5r49WcJnRayYRqmXz6ae8H7H9Dfn`
32+
- Oracle: `5r8RWTaRiMgr9Lph3FTUE3sGb1vymhpCrm83Bovjfcps`
33+
- Token Program: Token-2022
34+
- **Recommended**: Maybe - meme coin, higher risk
35+
36+
4. **AI16Z**
37+
- Market Index: 15000
38+
- Mint: `HeLp6NuQkmYB4pYWo2zYs22mESHXPQYzXbB8n4V98jwC`
39+
- Oracle: `3BGheQVvYtBNpBKSUXSTjpyKQc3dh8iiwT91Aiq7KYCU`
40+
- Token Program: Token-2022
41+
- **Recommended**: Maybe - AI meme coin
42+
43+
5. **sACRED-4**
44+
- Market Index: 10500
45+
- Mint: `59CwZq5b6drmDizgGfxECG7f16hxDpG1nXrxPoQx4y8g`
46+
- Oracle: `GheMfcCB49SuVCWrFReQDD2tLkcPDMG3qZEZWU44mHu`
47+
- Token Program: Token-2022
48+
49+
## Top 10 Recommended Candidates for Integration
50+
51+
### 1. USDC (Native)
52+
- **Market Index:** 10000
53+
- **Mint:** `EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v`
54+
- **Oracle:** `9VCioxmni2gDLv11qufWzT3RDERhQE4iY5Gf7NTfYyAV`
55+
- **Decimals:** 6
56+
- **Token Program:** SPL Token
57+
- **Drift Spot Market:** `6gMq3mRCKf8aP3ttTyYhuijVZ2LGi14oDsBbkgubfLB3`
58+
- **Priority:** HIGH - Core stablecoin
59+
60+
### 2. SOL (Native)
61+
- **Market Index:** 11000
62+
- **Mint:** `So11111111111111111111111111111111111111112`
63+
- **Oracle:** `3m6i4RFWEDw2Ft4tFHPJtYgmpPe21k56M3FHeWYrgGBz`
64+
- **Decimals:** 9
65+
- **Token Program:** SPL Token
66+
- **Drift Spot Market:** `3x85u7SWkmmr7YQGYhtjARgxwegTLJgkSLRprfXod6rh`
67+
- **Priority:** HIGH - Native SOL
68+
69+
### 3. PYUSD (Token-2022)
70+
- **Market Index:** 10500
71+
- **Mint:** `2b1kV6DkPAnxd5ixfnxCpjxmKwqjjaYmCZfHsFu24GXo`
72+
- **Oracle:** `5QZMnsyndmphvZF4BNgoMHwVZaREXeE2rpBoCPMxgCCd`
73+
- **Decimals:** 6
74+
- **Token Program:** Token-2022
75+
- **Drift Spot Market:** `GyyHYVCrZGc2AQPuvNbcP1babmU3L42ptmxZthUfD9q`
76+
- **Priority:** HIGH - Token-2022 stablecoin, PayPal backed
77+
78+
### 4. jitoSOL (LST)
79+
- **Market Index:** 11000
80+
- **Mint:** `J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn`
81+
- **Oracle:** `2cHCtAkMnttMh3bNKSCgSKSP5D4yN3p8bfnMdS3VZsDf`
82+
- **Decimals:** 9
83+
- **Token Program:** SPL Token
84+
- **Drift Spot Market:** `6Aq7WBtsZVyumcRxpAoKNyWb97gAzp3be2LeQ9yE6SVX`
85+
- **Priority:** HIGH - Popular LST with rewards
86+
87+
### 5. mSOL (LST)
88+
- **Market Index:** 11000
89+
- **Mint:** `mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So`
90+
- **Oracle:** `FY2JMi1vYz1uayVT2GJ96ysZgpagjhdPRG2upNPtSZsC`
91+
- **Decimals:** 9
92+
- **Token Program:** SPL Token
93+
- **Drift Spot Market:** `Mr2XZwj1NisUur3WZWdERdqnEUMoa9F9pUr52vqHyqj`
94+
- **Priority:** HIGH - Marinade LST
95+
96+
### 6. bSOL (LST)
97+
- **Market Index:** 11000
98+
- **Mint:** `bSo13r4TkiE4KumL71LsHTPpL2euBYLFx6h9HP3piy1`
99+
- **Oracle:** `BmDWPMsytWmYkh9n6o7m79eVshVYf2B5GVaqQ2EWKnGH`
100+
- **Decimals:** 9
101+
- **Token Program:** SPL Token
102+
- **Drift Spot Market:** `3fy2oMRJGceC3GAt9zGUBWt8MzjV5XxQDWKYLtiHPevX`
103+
- **Priority:** MEDIUM - Blaze LST
104+
105+
### 7. JLP (Jupiter LP Token)
106+
- **Market Index:** 11000
107+
- **Mint:** `27G8MtK7VtTcCHkpASjSDdkWWYfoqT6ggEuKidVJidD4`
108+
- **Oracle:** `4VMtKepA6iFwMTJ7bBbdcGxavNRKiDjxxRr1CaB2NnFJ`
109+
- **Decimals:** 6
110+
- **Token Program:** SPL Token
111+
- **Drift Spot Market:** `DVYXHwLhwALZm94pChALZDJ2b6a7uZTKPXntAGMQtRoM`
112+
- **Priority:** MEDIUM - Popular LP token
113+
114+
### 8. USDT
115+
- **Market Index:** 10250
116+
- **Mint:** `Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB`
117+
- **Oracle:** `JDKJSkxjasBGL3ce1pkrN6tqDzuVUZPWzzkGuyX8m9yN`
118+
- **Decimals:** 6
119+
- **Token Program:** SPL Token
120+
- **Drift Spot Market:** `7pPeeTqcqYeED7k4ocdeaSx3MAwT56Y7khyCx1zfS8jM`
121+
- **Priority:** HIGH - Major stablecoin
122+
123+
### 9. wBTC (Wrapped Bitcoin)
124+
- **Market Index:** 11000
125+
- **Mint:** `3NZ9JMVBmGAqocybic2c7LQCJScmgsAZ6vQqTDzcqmJh`
126+
- **Oracle:** `fqPfDa6uQr9ndMvwaFp4mUBeUrHmLop8Jxfb1XJNmVm`
127+
- **Decimals:** 8
128+
- **Token Program:** SPL Token
129+
- **Drift Spot Market:** `54Ai4NTZmPgsT4kUr1w4zFbh33JaC34ptvvvByamsaSw`
130+
- **Priority:** MEDIUM - BTC exposure
131+
132+
### 10. wETH (Wrapped Ethereum)
133+
- **Market Index:** 11000
134+
- **Mint:** `7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs`
135+
- **Oracle:** `6bEp2MiyoiiiDxcVqE8rUHQWwHirXUXtKfAEATTVqNzT`
136+
- **Decimals:** 8
137+
- **Token Program:** SPL Token
138+
- **Drift Spot Market:** `64WtBLXJsFnmoFR2kXqbTz3KzNP5x1SrpSn8zmkbF6xB`
139+
- **Priority:** MEDIUM - ETH exposure
140+
141+
## Additional Notable Markets
142+
143+
### 2Z Token
144+
- **Market Index:** 13000
145+
- **Mint:** `J6pQQ3FAcJQeWPPGppWRb4nM8jU3wLyYbRrLh7feMfvd`
146+
- **Oracle:** `4HTDpcHAwBTHCJLNMwT35w4FGc4nfA4YhT1BkcZQwQ2m`
147+
- **Decimals:** 9
148+
- **Token Program:** SPL Token
149+
- **Drift Spot Market:** `8h4B1tfDseHKhSdcywsj9QMpZe5LEV5uWGYUaBtNcTns`
150+
- **Priority:** MEDIUM - Similar to our PUMP/2Z addition
151+
152+
### JUP (Jupiter)
153+
- **Market Index:** 12500
154+
- **Mint:** `JUPyiwrYJFskUPiHa7hkeR8VUtAeFoSYbKedZNsDvCN`
155+
- **Oracle:** `DXqKSHyhTBKEW4qgnL7ycbf3Jca5hCvUgWHFYWsh4KJa`
156+
- **Decimals:** 6
157+
- **Token Program:** SPL Token
158+
- **Drift Spot Market:** `7GGF99Et8AN8bjKug9nh6BJAQ3LKSziD2ceCps89zvQa`
159+
- **Priority:** MEDIUM - Major DEX token
160+
161+
### WIF (Dogwifhat)
162+
- **Market Index:** 14000
163+
- **Mint:** `EKpQGSJtjMFqKZ9KQanSqYXRcF8fBopzLHYxdM65zcjm`
164+
- **Oracle:** `4QXWStoyEErTZFVsvKrvxuNa6QT8zpeA8jddZunSGvYE`
165+
- **Decimals:** 6
166+
- **Token Program:** SPL Token
167+
- **Drift Spot Market:** `GyhmatSvGuo5nwPMLwH7CELGfDL8hLH4KSzRZj64whk2`
168+
- **Priority:** LOW - Meme coin
169+
170+
### Bonk
171+
- **Market Index:** 14000
172+
- **Mint:** `DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263`
173+
- **Oracle:** `BERaNi6cpEresbq6HC1EQGaB1H1UjvEo4NGnmYSSJof4`
174+
- **Decimals:** 5
175+
- **Token Program:** SPL Token
176+
- **Drift Spot Market:** `7AJ4HcUkTLJimx5Q5NSoGrQ3ffm83Sh55fr5iavUJHJV`
177+
- **Priority:** LOW - Meme coin
178+
179+
## Oracle Type Information
180+
181+
**Important:** All Drift oracles need to be verified for their oracle type. The marginfi drift integration expects **Pyth Pull** oracles specifically.
182+
183+
To verify oracle type, we need to:
184+
1. Check the Drift spot market account's `oracle_source` field
185+
2. Ensure it's set to `PythPull` variant
186+
3. Get the oracle address from Drift's configuration
187+
188+
The oracles listed above are Drift's oracle accounts. For marginfi integration, we need to:
189+
- Use Drift's oracle address in the `driftOracle` config field
190+
- Separately specify the Pyth Pull oracle address in the `oracle` config field
191+
192+
## Next Steps
193+
194+
1. **Verify Oracle Types**: Check each oracle to ensure it's Pyth Pull compatible
195+
2. **Check Token Mint Decimals**: The decimal values in the research may be off by factor (need to verify actual mint decimals)
196+
3. **Create Config Files**: For each candidate, create a config file in `/root/projects/mrgn-ts-scripts/scripts/drift-staging/configs/`
197+
4. **Test Integration**: Start with USDC and SOL as they're the most straightforward
198+
5. **Add Token-2022 Support**: PYUSD is a great candidate to test Token-2022 compatibility
199+
200+
## Config File Template
201+
202+
Based on `/root/projects/mrgn-ts-scripts/scripts/drift-staging/configs/example.json`:
203+
204+
```json
205+
{
206+
"programId": "STAGING_PROGRAM_ID_HERE",
207+
"group": "GROUP_PUBKEY_HERE",
208+
"bankMint": "MINT_PUBKEY_HERE",
209+
"driftMarketIndex": 0,
210+
"oracle": "PYTH_PULL_ORACLE_PUBKEY",
211+
"driftOracle": "DRIFT_ORACLE_PUBKEY",
212+
"depositLimit": "100000000000000",
213+
"totalAssetValueInitLimit": "10000000000000",
214+
"seed": "555",
215+
"initDepositAmount": "100"
216+
}
217+
```
218+
219+
## Drift Program Information
220+
221+
- **Drift Program ID:** `dRiftyHA39MWEi3m9aunc5MzRF1JYuBsbn6VPcn33UH`
222+
- **Total Spot Markets:** 61
223+
- **Network:** Mainnet
224+
- **RPC:** `https://rpc.ironforge.network/mainnet?apiKey=01JSM3YXH7YWNSDTPDKVSR85QN`
225+
226+
## Research Script Location
227+
228+
- Main script: `/root/projects/mrgn-ts-scripts/scripts/drift-staging/research_drift_markets_simple.ts`
229+
- Output: `/tmp/drift_markets_research.txt`
230+
231+
## Notes
232+
233+
1. **Decimals Verification Needed**: The decimal values extracted from Drift's SpotMarket accounts appear incorrect (showing market_index values). Need to verify actual mint decimals from token mint accounts.
234+
235+
2. **Multiple Market Instances**: Some assets have multiple market indices (e.g., USDC, jitoSOL, JTO). This could indicate:
236+
- Different pool configurations
237+
- Historical markets
238+
- Different trading pairs
239+
- Need to investigate which is the primary/active market
240+
241+
3. **Oracle Source**: Need to determine oracle type (Pyth, Pyth Pull, Switchboard) for each market to ensure compatibility with marginfi's integration.
242+
243+
4. **Liquidity & Volume**: Should check on-chain data or Drift's UI for actual liquidity and trading volume before selecting markets.
244+
245+
5. **Token-2022 Opportunities**: The 5 Token-2022 assets found are excellent candidates for testing Token-2022 program compatibility, especially PYUSD as a major stablecoin.

0 commit comments

Comments
 (0)