API Examples: List Transactions
Authentication
The first step in interacting with IO GraphQL API is to authenticate through our OAuth service. This process involves obtaining an access token, which is crucial for making authenticated requests to our GraphQL endpoint. For comprehensive instructions and best practices on authentication, please visit our authentication guide.
const authResponse = await fetch('https://api.iofinnet.com/auth/v1/accessToken', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Accept: 'application/json'
},
body: JSON.stringify({
clientId: "<client_id>",
clientSecret: "<client_secret>"
})
});
Executing a Basic GraphQL Query
Once you have obtained your access token, it becomes the key to securely interacting with our GraphQL endpoint. Ensure that every request includes this token within the 'Authorization' header. Remember, GraphQL operates exclusively with POST requests, so set your HTTP method accordingly. This example illustrates the use of GraphQL fragments, a powerful feature for structuring queries within our schema. These fragments are particularly useful given the complexity and flexibility of our API. For an extensive list of query possibilities that our API supports, refer to our queries documentation.
const vaults = await fetch('https://api.iofinnet.com/graphql', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer ${authResponse.accessToken}`,
},
body: JSON.stringify({
query: `
query {
operationHistory{
edges {
node {
... on OperationTransferIn {
amount
fromAddressHash
__typename
}
... on OperationTransferOut {
amount
toAddressHash
__typename
}
}
}
}
}
`,
}),
});
console.log(vaults)
{
"data": {
"operationHistory": {
"edges": [
{
"node": {
"amount": "100",
"toAddressHash": "0xe5D79fF6E9f6f2Df3d0C5a4e103A4Db0A5B02588",
"__typename": "OperationTransferOut"
}
},
{
"node": {
"amount": "12",
"toAddressHash": "0x72FaE7C59377E6Ed087Ad5604976F3fe51A58119",
"__typename": "OperationTransferOut"
}
},
{
"node": {
"amount": "600",
"toAddressHash": "0x21f9225F9015eD5FD283Ac5439ff7c4b63a57491",
"__typename": "OperationTransferOut"
}
},
{
"node": {
"amount": "30",
"toAddressHash": "0x21f9225F9015eD5FD283Ac5439ff7c4b63a57491",
"__typename": "OperationTransferOut"
}
},
{
"node": {
"amount": "500",
"toAddressHash": "0x21f9225F9015eD5FD283Ac5439ff7c4b63a57491",
"__typename": "OperationTransferOut"
}
},
{
"node": {
"amount": "5000",
"toAddressHash": "0x10cd80c5ab527cB766791899B599aC11ED8b732b",
"__typename": "OperationTransferOut"
}
}
]
}
}
}
Note: select the JSON tab in the above code window to see the response.
Useful Links
- Explore our other example: submitting transactions
- For a deeper understanding of GraphQL, consult the graphql official docs
Updated 7 months ago