Skip to main content

Get Deposits To Vault By Certain User

In this tutorial, you will learn how to get all the Moxie deposits to the vault contract done by a certain user by calling the Moxie Protocol Subgraph API.

Include User's Vesting Addresses

Moxie protocol users have Moxie token currently vesting in their vesting contract. A huge portion of them use these to bid on auctions and buy/sell fan tokens on the Moxie protocol.

Therefore, it is important that you include the user's vesting addresses in the query to get deposits to vault by a certain user. To get user's vesting contract addresses, click here.

Pre-requisites

Install dependencies graphql and graphql-request to your project :
npm install graphql graphql-request 

Step 1: Add The API Query To Your Code

To get all the Moxie deposits to the vault contract done by a certain user, you can use the following query:

query MyQuery($senders: [Bytes!]) {
vaultDepositTxes(where: { sender_in: $senders }) {
amount
sender
subject
token
totalReserve
txHash
blockInfo {
blockNumber
hash
timestamp
}
}
}
With this GraphQL query, you can add it to your source code and call the API with the graphql-request library:
index.ts
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($senders: [Bytes!]) {
vaultDepositTxes(where: { sender_in: $senders }) {
amount
sender
subject
token
totalReserve
txHash
blockInfo {
blockNumber
hash
timestamp
}
}
}
`;

const variable = {
"senders": [
"0x0f0ecb17575c232077075ef9d78fc9afad808b4d"
]
}


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:

ts-node index.ts

If it runs successfully, you should see the data returned in the terminal:

{
"data": {
"vaultDepositTxes": [
{
"amount": "2656194000000000000000000",
"sender": "0x0f0ecb17575c232077075ef9d78fc9afad808b4d",
"subject": "0x19c12518e708f9c7b7513578f8c5a4797f6c8df7",
"token": "0xf80945fc1436b0ae8b86c8835f09870deeaf03d5",
"totalReserve": "4086341000000000000000000",
"txHash": "0x0065d3f3246d5e61781a1a5424c6686d247532167ce7214beffef38732dc9ed8",
"blockInfo": {
"blockNumber": "12434710",
"hash": "0xa9f03ff3c90fe0f4901dd6772d5557a8fd2869807fb47981df9af650194eaa81",
"timestamp": "1720637708"
}
}
]
}
}

Congrats! 🥳🎉 You've just fetched all the Moxie deposits to the vault contract done by a certain user!

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.