đŸ“ŦHas XMTP

Learn how to check if Farcaster name or ID has enabled XMTP and resolve Farcaster name or ID for XMTP messaging.

Airstack provides easy-to-use APIs for enriching Farcaster applications and integrating on-chain and off-chain data with Farcaster.

XMTP is an Ethereum-based messaging protocol.

Developers building with XMTP can use Airstack to enable Farcaster users to seamlessly message Ethereum, ENS, Lens, and Farcaster users with XMTP-enabled addresses.

Airstack is utilized to:

  1. check if users have XMTP enabled (required in order to receive XMTP messages)

  2. resolve Farcaster usernames to 0x Ethereum addresses and vice versa.

In this guide you will learn how to use Airstack to:

Pre-requisites

  • An Airstack account (free)

  • 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

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 (loading) {
    return <p>Loading...</p>;
  }

  if (error) {
    return <p>Error: {error.message}</p>;
  }

  // Render your component using the data returned by the query
};

Other Programming Languages

To access the Airstack APIs in other languages, you can use https://api.airstack.xyz/gql as your GraphQL endpoint.

🤖 AI Natural Language​

Airstack provides an AI solution for you to build GraphQL queries to fulfill your use case easily. You can find the AI prompt of each query in the demo's caption or title for yourself to try.

Check Farcaster Has XMTP Enabled

You can check if a Farcaster has XMTP enabled or not by providing either the Farcaster name or ID:

Try Demo

Check Farcaster has XMTP enabled (Demo)

Code

query MyQuery {
  XMTPs(input: {blockchain: ALL, filter: {owner: {_eq: "fc_fname:vbuterin"}}}) {
    XMTP {
      isXMTPEnabled
    }
  }
}

Bulk Check Farcasters Have XMTP Enabled

You can bulk check a list of Farcasters have XMTP enabled or not:

Try Demo

Check Farcaster Name and ID have XMTP enabled (Demo)

Code

query MyQuery {
  XMTPs(input: {blockchain: ALL, filter: {owner: {_in: ["fc_fname:betashop.eth", "fc_fid:5650"]}}}) {
    XMTP {
      isXMTPEnabled
      owner {
        socials {
          dappName
          profileName
        }
      }
    }
  }
}

Get all 0x addresses of Farcaster user(s)

You can resolve an array of Farcaster user(s) to their 0x addresses:

Try Demo

Show 0x addresses of Farcaster user name dwr.eth and user ID 1

Code

query GetAddressesOfFarcasters {
  Socials(
    input: {filter: {identity: {_in: ["fc_fname:dwr.eth", "fc_fid:1"]}}, blockchain: ethereum}
  ) {
    Social {
      userAssociatedAddresses
    }
  }
}

Get all Farcasters owned by 0x address

You can resolve any 0x address to their Farcaster accounts:

Try Demo

Show Farcasters owned by Ethereum address 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045

Code

query GetFarcastersOfEthereumAddress {
  Socials(
    input: {filter: {identity: {_in: ["0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"]}, dappName: {_eq: farcaster}}, blockchain: ethereum}
  ) {
    Social {
      profileName
      userId
      userAssociatedAddresses
    }
  }
}

Developer Support

If you have any questions or need help regarding checking if Farcaster(s) have XMTP enabled, please join our Airstack's Telegram group.

More Resources

Last updated

#300: add-user-details

Change request updated