๐ชTokenbound ERC6551 Accounts
Learn how to get ERC6551 Accounts owned By Farcaster user(s). Get Farcaster users who own NFTs owned by ERC6551 accounts.
Airstack provides easy-to-use APIs for enriching Farcaster applications and for integrating onchain and offchain data with Farcaster.
Table Of Contents
In this guide you will learn how to use Airstack to:
Pre-requisites
Basic knowledge of GraphQL
Get Started
JavaScript/TypeScript/Python
If you are using JavaScript/TypeScript or Python, Install the Airstack SDK:
React
npm install @airstack/airstack-react
Node
npm install @airstack/node
React
yarn add @airstack/airstack-react
Node
yarn add @airstack/node
React
pnpm install @airstack/airstack-react
Node
pnpm install @airstack/node
Then, add the following snippets to your code:
import { init, useQuery } from "@airstack/airstack-react";
init("YOUR_AIRSTACK_API_KEY");
const query = `YOUR_QUERY`; // Replace with GraphQL Query
const Component = () => {
const { data, loading, error } = useQuery(query);
if (data) {
return <p>Data: {JSON.stringify(data)}</p>;
}
if (loading) {
return <p>Loading...</p>;
}
if (error) {
return <p>Error: {error.message}</p>;
}
};
import { init, fetchQuery } from "@airstack/node";
init("YOUR_AIRSTACK_API_KEY");
const query = `YOUR_QUERY`; // Replace with GraphQL Query
const { data, error } = await fetchQuery(query);
console.log("data:", data);
console.log("error:", error);
import asyncio
from airstack.execute_query import AirstackClient
api_client = AirstackClient(api_key="YOUR_AIRSTACK_API_KEY")
query = """YOUR_QUERY""" # Replace with GraphQL Query
async def main():
execute_query_client = api_client.create_execute_query_object(
query=query)
query_response = await execute_query_client.execute_query()
print(query_response.data)
asyncio.run(main())
Other Programming Languages
To access the Airstack APIs in other languages, you can use https://api.airstack.xyz/gql as your GraphQL endpoint.
Get ERC6551 Account Addresses of Farcaster user(s)
Try Demo
Code
query MyQuery {
TokenBalances(
input: {
filter: { owner: { _in: ["fc_fname:jayden"] } }
blockchain: ethereum
limit: 200
}
) {
TokenBalance {
tokenNfts {
erc6551Accounts {
address {
addresses
}
}
}
}
}
}
{
"data": {
"TokenBalances": {
"TokenBalance": [
{
"tokenNfts": {
"erc6551Accounts": [
{
"address": {
"addresses": ["0x5416e5dc14caa0950b2a24ede1eb0e97c360bcf5"]
}
}
]
}
},
{
"tokenNfts": {
"erc6551Accounts": null
}
}
]
}
}
}
Get Assets Owned by ERC6551 Accounts of Farcaster user(s)
Try Demo
Code
query MyQuery {
TokenBalances(
input: {
filter: { owner: { _in: ["fc_fname:jayden"] } }
blockchain: ethereum
limit: 200
}
) {
TokenBalance {
tokenNfts {
erc6551Accounts {
address {
addresses
tokenBalances {
tokenAddress
tokenId
amount
token {
name
symbol
tokenNfts {
contentValue {
image {
extraSmall
large
medium
original
small
}
}
}
}
}
}
}
}
}
}
}
{
"data": {
"TokenBalances": {
"TokenBalance": [
{
"tokenNfts": {
"erc6551Accounts": [
{
"address": {
"addresses": ["0x5416e5dc14caa0950b2a24ede1eb0e97c360bcf5"],
"tokenBalances": [
{
"tokenAddress": "0x8ee9a60cb5c0e7db414031856cb9e0f1f05988d1",
"tokenId": "9707",
"amount": "1",
"token": {
"name": "STAPLEVERSE - FEED CLAN",
"symbol": "FEED",
"tokenNfts": [
{
"contentValue": {
"image": {
"extraSmall": "https://assets.airstack.xyz/image/nft/1/0x8ee9a60cb5c0e7db414031856cb9e0f1f05988d1/1/extra_small",
"large": "https://assets.airstack.xyz/image/nft/1/0x8ee9a60cb5c0e7db414031856cb9e0f1f05988d1/1/large",
"medium": "https://assets.airstack.xyz/image/nft/1/0x8ee9a60cb5c0e7db414031856cb9e0f1f05988d1/1/medium",
"original": "https://assets.airstack.xyz/image/nft/1/0x8ee9a60cb5c0e7db414031856cb9e0f1f05988d1/1/original_image",
"small": "https://assets.airstack.xyz/image/nft/1/0x8ee9a60cb5c0e7db414031856cb9e0f1f05988d1/1/small"
}
}
}
]
}
}
]
}
}
]
}
},
{
"tokenNfts": {
"erc6551Accounts": null
}
}
]
}
}
}
Get Farcaster of Owner that Owns NFT that Owns ERC6551 Accounts
You can know whether an NFT is owned by an ERC6551 accounts and the NFT that own the account:
Try Demo
Code
query MyQuery {
Accounts(
input: {
filter: { address: { _in: "0x5416e5dc14caa0950b2a24ede1eb0e97c360bcf5" } }
blockchain: ethereum
}
) {
Account {
nft {
tokenBalances {
owner {
addresses
socials(input: { filter: { dappName: { _eq: farcaster } } }) {
profileName
userId
}
}
}
}
}
}
}
{
"data": {
"Accounts": {
"Account": [
{
"nft": {
"tokenBalances": [
{
"owner": {
"addresses": ["0xa75b7833c78eba62f1c5389f811ef3a7364d44de"],
"socials": [
{
"profileName": "jayden",
"userId": "843"
}
]
}
}
]
}
}
]
}
}
}
Developer Support
If you have any questions or need help regarding fetching token bound ERC6551 accounts, please join our Airstack's Telegram group.
More Resources