You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
WHERE to_owner IN ('GachazZscHZ5bn3vnq1yEC4zpYdhAYJBzuKJwSJksc9z','GachaNgyXTU3zFogQ8Z5jR2BLXs8215X2AtEH18VxJq3','96DULv1BqYfe5wyMr6pVUNC6Uyrtj6yr3tNi6VtfwW9s')
14
-
AND from_owner NOT IN ('BAxTk97HsaJqbnbFmTiQTaL4KSRvJ8Y65ArZCsP6vA5M',
15
-
'21KhtC7y2JGYvwc8dcGqTdbrudbM8fgMPJsVwxRQqdY8',
16
-
'DFEstpYN3fsz93AC9v2ujzPPngPgodqH2xxopuyfSsAE',
17
-
'HW2HRqN1pXQGH9GfP9xet4XwqtLqFyYGDNRKjUAVgh9u',
18
-
'HighJBfnAaqH9cKkeMErQFJZ4ATxQJwxqFupX6zaKTns',
19
-
'LGNDXqcm6U57QQ6Ad7icZ6oizkAVKRWrw97KwZy5nVf',
20
-
'EpicWWZspT1trKndbDDr29ULViN56rN5vofWSKZp8ePF',
21
-
'Mid9NeCpPNxP59fAdsLgMLy7BYexxXFw52ZP58Jrney',
22
-
'Lowq9dkpY43VpjfYeRjtKfGA6JtB7HaMmwQgXkjHLvN',
23
-
'Low6UekJP3QrFVMfNRTL8CPK2SiGFhvp57sgF2pkmVu',
24
-
'miDtj3vgdxVykHzRyFwyG8MXpvK8eQqamSLVdBr7WPt',
25
-
'HiGHqwYddP5N2waqUmXPdaASpMpUEvfqPr2fSawctEb',
26
-
'epiC3zkqa1RfcPMMM1Kc8m3GZGDwF2RmjbfA3g1BBjn',
27
-
'LGNDfXQFMiRMz3qqTNAREmRFQutMvazqqRrzn5i98uj',
28
-
'SPrT7eFrCM9UJ4j7Xf9iktKCoBwJjfykFbiNbRsKQm8'
29
-
)
30
-
AND amount / power(10, 6) IN (25, 50, 100, 250, 1000)
31
-
AND token_mint_address = 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v'
32
-
AND TIME_RANGE
33
-
),
34
-
fees AS (
35
-
SELECT
36
-
SUM(amount / POWER(10, 6)) AS inflow
37
-
FROM tokens_solana.transfers
38
-
WHERE to_owner = 'DQPERZ9e86pNJ4mhUnCEP8V75yxZofsipoVrRWT5Wdxd'
39
-
AND token_mint_address = 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v'
40
-
AND TIME_RANGE
41
-
),
42
-
buyback AS (
43
-
SELECT
44
-
SUM(amount / POWER(10, 6)) AS buyback
45
-
FROM tokens_solana.transfers
46
-
WHERE from_owner IN ('GachazZscHZ5bn3vnq1yEC4zpYdhAYJBzuKJwSJksc9z','GachaNgyXTU3zFogQ8Z5jR2BLXs8215X2AtEH18VxJq3')
47
-
AND to_owner NOT IN ('BAxTk97HsaJqbnbFmTiQTaL4KSRvJ8Y65ArZCsP6vA5M',
AND token_mint_address = 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v'
67
-
AND TIME_RANGE
68
-
)
69
-
SELECT
70
-
COALESCE(g.inflow, 0) AS gacha_spend,
71
-
COALESCE(f.inflow, 0) AS fees_royalty,
72
-
COALESCE(b.buyback, 0) AS buyback,
73
-
COALESCE(g.inflow, 0) + COALESCE(f.inflow, 0) - COALESCE(b.buyback, 0) AS net_revenue
74
-
FROM gacha_in g
75
-
CROSS JOIN fees f
76
-
CROSS JOIN buyback b;
77
-
`;
78
-
79
-
constdata=awaitqueryDuneSql(options,query);
80
-
81
-
if(data&&data.length>0){
82
-
constresult=data[0];
83
-
constnetRevenue=result.net_revenue||0;
84
-
dailyFees.addUSDValue(netRevenue);
85
-
}
8
+
constquery=`
9
+
WITH gacha_in AS (
10
+
SELECT
11
+
SUM(amount / POWER(10, 6)) AS inflow
12
+
FROM tokens_solana.transfers
13
+
WHERE to_owner IN ('GachazZscHZ5bn3vnq1yEC4zpYdhAYJBzuKJwSJksc9z','GachaNgyXTU3zFogQ8Z5jR2BLXs8215X2AtEH18VxJq3','96DULv1BqYfe5wyMr6pVUNC6Uyrtj6yr3tNi6VtfwW9s')
14
+
AND from_owner NOT IN (
15
+
'BAxTk97HsaJqbnbFmTiQTaL4KSRvJ8Y65ArZCsP6vA5M',
16
+
'21KhtC7y2JGYvwc8dcGqTdbrudbM8fgMPJsVwxRQqdY8',
17
+
'DFEstpYN3fsz93AC9v2ujzPPngPgodqH2xxopuyfSsAE',
18
+
'HW2HRqN1pXQGH9GfP9xet4XwqtLqFyYGDNRKjUAVgh9u',
19
+
'HighJBfnAaqH9cKkeMErQFJZ4ATxQJwxqFupX6zaKTns',
20
+
'LGNDXqcm6U57QQ6Ad7icZ6oizkAVKRWrw97KwZy5nVf',
21
+
'EpicWWZspT1trKndbDDr29ULViN56rN5vofWSKZp8ePF',
22
+
'Mid9NeCpPNxP59fAdsLgMLy7BYexxXFw52ZP58Jrney',
23
+
'Lowq9dkpY43VpjfYeRjtKfGA6JtB7HaMmwQgXkjHLvN',
24
+
'Low6UekJP3QrFVMfNRTL8CPK2SiGFhvp57sgF2pkmVu',
25
+
'miDtj3vgdxVykHzRyFwyG8MXpvK8eQqamSLVdBr7WPt',
26
+
'HiGHqwYddP5N2waqUmXPdaASpMpUEvfqPr2fSawctEb',
27
+
'epiC3zkqa1RfcPMMM1Kc8m3GZGDwF2RmjbfA3g1BBjn',
28
+
'LGNDfXQFMiRMz3qqTNAREmRFQutMvazqqRrzn5i98uj',
29
+
'SPrT7eFrCM9UJ4j7Xf9iktKCoBwJjfykFbiNbRsKQm8'
30
+
)
31
+
AND amount / power(10, 6) IN (25, 50, 100, 250, 1000)
32
+
AND token_mint_address = 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v'
33
+
AND TIME_RANGE
34
+
),
35
+
fees AS (
36
+
SELECT
37
+
SUM(amount / POWER(10, 6)) AS inflow
38
+
FROM tokens_solana.transfers
39
+
WHERE to_owner = 'DQPERZ9e86pNJ4mhUnCEP8V75yxZofsipoVrRWT5Wdxd'
40
+
AND token_mint_address = 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v'
41
+
AND TIME_RANGE
42
+
),
43
+
buyback AS (
44
+
SELECT
45
+
SUM(amount / POWER(10, 6)) AS buyback
46
+
FROM tokens_solana.transfers
47
+
WHERE from_owner IN ('GachazZscHZ5bn3vnq1yEC4zpYdhAYJBzuKJwSJksc9z','GachaNgyXTU3zFogQ8Z5jR2BLXs8215X2AtEH18VxJq3')
48
+
AND to_owner NOT IN (
49
+
'BAxTk97HsaJqbnbFmTiQTaL4KSRvJ8Y65ArZCsP6vA5M',
50
+
'21KhtC7y2JGYvwc8dcGqTdbrudbM8fgMPJsVwxRQqdY8',
51
+
'DFEstpYN3fsz93AC9v2ujzPPngPgodqH2xxopuyfSsAE',
52
+
'HW2HRqN1pXQGH9GfP9xet4XwqtLqFyYGDNRKjUAVgh9u',
53
+
'HighJBfnAaqH9cKkeMErQFJZ4ATxQJwxqFupX6zaKTns',
54
+
'LGNDXqcm6U57QQ6Ad7icZ6oizkAVKRWrw97KwZy5nVf',
55
+
'EpicWWZspT1trKndbDDr29ULViN56rN5vofWSKZp8ePF',
56
+
'Mid9NeCpPNxP59fAdsLgMLy7BYexxXFw52ZP58Jrney',
57
+
'Lowq9dkpY43VpjfYeRjtKfGA6JtB7HaMmwQgXkjHLvN',
58
+
'Low6UekJP3QrFVMfNRTL8CPK2SiGFhvp57sgF2pkmVu',
59
+
'miDtj3vgdxVykHzRyFwyG8MXpvK8eQqamSLVdBr7WPt',
60
+
'HiGHqwYddP5N2waqUmXPdaASpMpUEvfqPr2fSawctEb',
61
+
'epiC3zkqa1RfcPMMM1Kc8m3GZGDwF2RmjbfA3g1BBjn',
62
+
'LGNDfXQFMiRMz3qqTNAREmRFQutMvazqqRrzn5i98uj',
63
+
'SPrT7eFrCM9UJ4j7Xf9iktKCoBwJjfykFbiNbRsKQm8',
64
+
'Cc4pHGnoaRWL1WnHsV517T3YvQn5gLDBMiuVXkF9rZhK',
65
+
'8373hLiAEXxaJ3oV7SRzx4KHwurEg9rEG98tUPj1sdtX'
66
+
)
67
+
AND token_mint_address = 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v'
68
+
AND TIME_RANGE
69
+
)
70
+
SELECT
71
+
COALESCE(g.inflow, 0) AS gacha_spend,
72
+
COALESCE(f.inflow, 0) AS fees_royalty,
73
+
COALESCE(b.buyback, 0) AS buyback,
74
+
COALESCE(g.inflow, 0) + COALESCE(f.inflow, 0) - COALESCE(b.buyback, 0) AS net_revenue
75
+
FROM gacha_in g
76
+
CROSS JOIN fees f
77
+
CROSS JOIN buyback b
78
+
`;
86
79
87
-
return{
88
-
dailyFees,
89
-
dailyRevenue: dailyFees,
90
-
dailyUserFees: dailyFees,
91
-
dailyProtocolRevenue: dailyFees,
92
-
}
80
+
constdata=awaitqueryDuneSql(options,query);
81
+
82
+
if(data&&data.length>0){
83
+
constresult=data[0];
84
+
constnetRevenue=result.net_revenue||0;
85
+
dailyFees.addUSDValue(netRevenue);
86
+
}
87
+
88
+
return{
89
+
dailyFees,
90
+
dailyRevenue: dailyFees,
91
+
dailyUserFees: dailyFees,
92
+
dailyProtocolRevenue: dailyFees,
93
+
}
93
94
}
94
95
95
96
constmethodology={
96
-
Fees: "Total fees from gacha (card pack sales) and marketplace transactions.",
97
-
Revenue: "Revenue from gacha sales + marketplace fees/royalties.",
98
-
UserFees: "Total fees paid by users for gacha and marketplace transactions.",
99
-
ProtocolRevenue: "Net revenue after accounting for gacha buyback expenses."
97
+
Fees: "Total fees from gacha (card pack sales) and marketplace transactions.",
98
+
Revenue: "Revenue from gacha sales + marketplace fees/royalties.",
99
+
UserFees: "Total fees paid by users for gacha and marketplace transactions.",
100
+
ProtocolRevenue: "Net revenue after accounting for gacha buyback expenses."
100
101
}
101
102
102
103
constadapter: SimpleAdapter={
103
-
version: 1,
104
-
fetch,
105
-
chains: [CHAIN.SOLANA],
106
-
start: '2025-06-04',
107
-
dependencies: [Dependencies.DUNE],
108
-
methodology,
109
-
allowNegativeValue: true,// fees from marketplace transactions can be lower than gacha buyback expenses
104
+
version: 1,
105
+
fetch,
106
+
chains: [CHAIN.SOLANA],
107
+
start: '2025-06-04',
108
+
dependencies: [Dependencies.DUNE],
109
+
methodology,
110
+
allowNegativeValue: true,// fees from marketplace transactions can be lower than gacha buyback expenses
0 commit comments