Get All Protocol Fee Transfers Within Certain Time Range
In this tutorial, you will learn how to get all the protocol fee transfers on the Moxie protocol within a certain time range by calling the Moxie Protocol Subgraph API.
Pre-requisites
Install dependenciesgraphql
and graphql-request
to your project :- npm
- yarn
- pnpm
- bun
npm install graphql graphql-request
yarn add graphql graphql-request
pnpm add graphql graphql-request
bun install graphql graphql graphql-request
Step 1: Add The API Query To Your Code
To get all the protocol fee transfers on the Moxie protocol within a certain time range, you can use the following query:
- Query
- Variable
- Response
query MyQuery($startTime: BigInt, $endTime: BigInt) {
protocolFeeTransfers(
where: {
blockInfo_: { timestamp_gte: $startTime, timestamp_lte: $endTime }
}
) {
amount
beneficiary {
beneficiary
totalFees
}
txHash
order {
orderType
}
subjectToken {
address: id
}
}
}
{
"startTime": "1720630000", // start timestamp
"endTime": "1720640000" // end timestamp
}
{
"data": {
"protocolFeeTransfers": [
{
"amount": "26561940000000000000000",
"beneficiary": {
"beneficiary": "0x648e7e89a70ef654b5754e9eb91bf931a477e3cd",
"totalFees": "263686938800000000000000"
},
"txHash": "0x0065d3f3246d5e61781a1a5424c6686d247532167ce7214beffef38732dc9ed8",
"order": {
"orderType": "BUY"
},
"subjectToken": {
"address": "0x19c12518e708f9c7b7513578f8c5a4797f6c8df7"
}
}
]
}
}
graphql-request
library:- TypeScript
- JavaScript
import { gql, GraphQLClient } from "graphql-request";
const graphQLClient = new GraphQLClient(
"https://api.studio.thegraph.com/query/23537/moxie_protocol_stats_mainnet/version/latest"
);
const query = gql`
query MyQuery($startTime: BigInt, $endTime: BigInt) {
protocolFeeTransfers(
where: {
blockInfo_: { timestamp_gte: $startTime, timestamp_lte: $endTime }
}
) {
amount
beneficiary {
beneficiary
totalFees
}
txHash
order {
orderType
}
subjectToken {
address: id
}
}
}
`;
const variable = {
"startTime": "1720630000", // start timestamp
"endTime": "1720640000" // end timestamp
}
try {
const data = await graphQLClient.request(query, variable);
console.log(data);
} catch (e) {
throw new Error(e);
}
const { gql, GraphQLClient } = require("graphql-request");
const graphQLClient = new GraphQLClient(
"https://api.studio.thegraph.com/query/23537/moxie_protocol_stats_mainnet/version/latest"
);
const query = gql`
query MyQuery($startTime: BigInt, $endTime: BigInt) {
protocolFeeTransfers(
where: {
blockInfo_: { timestamp_gte: $startTime, timestamp_lte: $endTime }
}
) {
amount
beneficiary {
beneficiary
totalFees
}
txHash
order {
orderType
}
subjectToken {
address: id
}
}
}
`;
const variable = {
"startTime": "1720630000", // start timestamp
"endTime": "1720640000" // end timestamp
}
try {
const data = await graphQLClient.request(query, variable);
console.log(data);
} catch (e) {
throw new Error(e);
}
Step 2: Execute Your Code
Once you have your code ready, you can execute it by running the following command:
- TypeScript
- JavaScript
ts-node index.ts
node index.js
If it runs successfully, you should see the data returned in the terminal:
{
"data": {
"protocolFeeTransfers": [
{
"amount": "26561940000000000000000",
"beneficiary": {
"beneficiary": "0x648e7e89a70ef654b5754e9eb91bf931a477e3cd",
"totalFees": "263686938800000000000000"
},
"txHash": "0x0065d3f3246d5e61781a1a5424c6686d247532167ce7214beffef38732dc9ed8",
"order": {
"orderType": "BUY"
},
"subjectToken": {
"address": "0x19c12518e708f9c7b7513578f8c5a4797f6c8df7"
}
}
]
}
}
Congrats! 🥳🎉 You've just fetched all the protocol fee transfers on the Moxie protocol within a certain time range!
Developer Support
If you have any questions or need help with other use cases, feel free to join the /airstack Warpcast channel and ask your questions there.
Our team is always ready to help you with any questions you may have.