Skip to content

Commit 7a85190

Browse files
Neutral.trade adapter (DefiLlama#12674)
Co-authored-by: g1nt0ki <[email protected]>
1 parent 3b195b0 commit 7a85190

File tree

3 files changed

+146
-0
lines changed

3 files changed

+146
-0
lines changed

projects/helper/chain/rpcProxy.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,12 @@ module.exports = {
2020
return data
2121
}
2222
},
23+
drift: {
24+
vaultTvl: async (vault, version) => {
25+
const { data } = await client.get('/drift/vault_tvl', { params: { vault, version } })
26+
return data
27+
}
28+
},
2329
injective: {
2430
mitoVaultQuery: async ({ address }) => {
2531
const { data } = await client.get('/injective/mito-vault/' + address)

projects/neutral-trade/constants.js

Lines changed: 123 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,123 @@
1+
const DATA_URL = 'https://raw.githubusercontent.com/neutral-trade/vaults-data/main';
2+
3+
const START_TIMESTAMP = 1730419200; // 2024-11-01
4+
5+
6+
const TOKENS = {
7+
USDC: {
8+
name: 'USDC',
9+
mint: 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v',
10+
decimals: 6
11+
},
12+
SOL: {
13+
name: 'SOL',
14+
mint: 'So11111111111111111111111111111111111111112',
15+
decimals: 9
16+
},
17+
WBTC: {
18+
name: 'Wrapped BTC (Wormhole) (WBTC)',
19+
mint: '3NZ9JMVBmGAqocybic2c7LQCJScmgsAZ6vQqTDzcqmJh',
20+
decimals: 8
21+
},
22+
WETH: {
23+
name: 'Wrapped ETH (Wormhole) (WETH)',
24+
mint: '7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs',
25+
decimals: 8
26+
}
27+
};
28+
29+
const VAULTS = [
30+
{
31+
name: "USDC Basis (Perps Basket)",
32+
address: "4cvgasNfbJ36yeMVJSkscgL2Yco9dFGdj52Wrg91fmHv",
33+
token: TOKENS.USDC,
34+
dataUrl: `${DATA_URL}/btcethfunding.json`
35+
},
36+
{
37+
name: "BTC Super Staking",
38+
address: "BVddkVtFJLCihbVrtLo8e3iEd9NftuLunaznAxFFW8vf",
39+
token: TOKENS.WBTC,
40+
dataUrl: `${DATA_URL}/btcjlpnl.json`
41+
},
42+
{
43+
name: "ETH Super Staking",
44+
address: "ENr5e1BMN5vFUHf4iCCPzR4GjWCKgtHnQcdniRQqMdEL",
45+
token: TOKENS.WETH,
46+
dataUrl: `${DATA_URL}/ethjlpnl.json`
47+
},
48+
// {
49+
// name: "USDC Staking (JLP Delta Neutral)",
50+
// address: "9Fcn3Fd4d5ocrb12xCUtEvezxcjFEAyHBPfrZDiPt9Qj",
51+
// token: TOKENS.USDC,
52+
// dataUrl: `${DATA_URL}/jlpdn.json`,
53+
// version: 1,
54+
// },
55+
{
56+
name: "USDC Staking (JLP Delta Neutral) v2",
57+
address: "41Y8C4oxk4zgJT1KXyQr35UhZcfsp5mP86Z2G7UUzojU",
58+
token: TOKENS.USDC,
59+
dataUrl: `${DATA_URL}/jlpdnv2.json`
60+
},
61+
{
62+
name: "USDC Basis (Sanctum-INF)",
63+
address: "CxL8eQmGhN9LKSoHj7bU95JekFPtyZoUc57mbehb5A56",
64+
token: TOKENS.USDC,
65+
dataUrl: `${DATA_URL}/solbasis.json`
66+
},
67+
{
68+
name: "SOL Super Staking",
69+
address: "EuSLjg23BrtwYAk1t4TFe5ArYSXCVXLBqrHRBfWQiTeJ",
70+
token: TOKENS.SOL,
71+
dataUrl: `${DATA_URL}/soljlpnl.json`
72+
},
73+
{
74+
name: "JLP Traders Print",
75+
address: "85XuR4kE5yxp1hk91WHAawinXZsuJowxy59STYYpM9pK",
76+
token: TOKENS.USDC,
77+
dataUrl: `${DATA_URL}/tradersprint.json`
78+
},
79+
{
80+
name: "JLP Traders Rekt",
81+
address: "2r81MPMDjGSrbmGRwzDg6aqhe3t3vbKcrYfpes5bXckS",
82+
token: TOKENS.USDC,
83+
dataUrl: `${DATA_URL}/tradersrekt.json`
84+
},
85+
{
86+
name: "vip01",
87+
address: "CZU38L2NyL6tqFxzYAGYkmkf2JG98tZfZ2CnUapVgXQe",
88+
token: TOKENS.USDC,
89+
dataUrl: `${DATA_URL}/vip01.json`
90+
},
91+
{
92+
name: "vip02",
93+
address: "DUW6uWcrsjYmsYDjp9iGDN4JdRa2MqznjuxjKVok5Fsj",
94+
token: TOKENS.USDC,
95+
dataUrl: `${DATA_URL}/vip02.json`
96+
},
97+
{
98+
name: "vip03",
99+
address: "Fd3k4c6Dv7m9673ae87P6duQrftY9UVfwiCxngNbJrUQ",
100+
token: TOKENS.USDC,
101+
dataUrl: `${DATA_URL}/vip03.json`
102+
},
103+
// 'vip04', // currently inactive
104+
{
105+
name: "vip05",
106+
address: "9BMEyctGvajEubk5iCRBnM9fkeTXUhrxaweYq34jZdC8",
107+
token: TOKENS.USDC,
108+
dataUrl: `${DATA_URL}/vip05.json`
109+
},
110+
{
111+
name: "vip06",
112+
address: "6DFDj66PbPoTC16Sh51MJijoTTMYCbMCVC85tnc5UfQ3",
113+
token: TOKENS.USDC,
114+
dataUrl: `${DATA_URL}/vip06.json`
115+
},
116+
];
117+
118+
module.exports = {
119+
DATA_URL,
120+
START_TIMESTAMP,
121+
TOKENS,
122+
VAULTS,
123+
};

projects/neutral-trade/index.js

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
const { VAULTS, START_TIMESTAMP } = require("./constants")
2+
const { drift: { vaultTvl } } = require("../helper/chain/rpcProxy")
3+
4+
async function tvl(api) {
5+
for (const vault of VAULTS) {
6+
const token_tvl = await vaultTvl(vault.address, vault.version);
7+
api.add(vault.token.mint, token_tvl);
8+
}
9+
}
10+
11+
12+
module.exports = {
13+
start: START_TIMESTAMP,
14+
timetravel: false,
15+
methodology: "The combined TVL and PnL of all public and private vaults.",
16+
solana: { tvl },
17+
};

0 commit comments

Comments
 (0)