https://github.com/dawksh/farstack
open source library for interacting with Farcaster data using Airstack
https://github.com/dawksh/farstack
farcaster-protocol
Last synced: 10 months ago
JSON representation
open source library for interacting with Farcaster data using Airstack
- Host: GitHub
- URL: https://github.com/dawksh/farstack
- Owner: dawksh
- License: mit
- Created: 2024-02-18T13:10:46.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-02-23T06:37:33.000Z (over 2 years ago)
- Last Synced: 2025-08-13T09:58:21.625Z (11 months ago)
- Topics: farcaster-protocol
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/farstack
- Size: 54.7 KB
- Stars: 7
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Farstack
Open Source Package for querying Farcaster data using Airstack!
# How to use?
Start by creating a client by using the `createClient` function and passing in the Airstack API key.
Jump [here](#api-methods) for all API methods.
```ts
import {createClient} from "farstack"
...
...
...
const client = createClient()
const userDetails: UserDetails = client.getUserDetailsByFID("2483");
```
# API Methods
This is still very new, please create a issue if you want a particular API Method.
## getUserDetailsByFID
### Description
Retrieves user details based on the provided FID (Farcaster ID).
### Parameters
| Name | Type | Description |
| ---- | ------ | ------------------------ |
| fid | number | FarCaster ID of the user |
### Return Type
Promise
**UserDetails Type:**
| Field | Type | Description |
|---------------------------------|------------|---------------------------------------|
| userAssociatedAddresses | string[] | Associated addresses of the user |
| id | string | User ID |
| fnames | string[] | List of first names |
| followerCount | number | Count of followers |
| followingCount | number | Count of following users |
| profileImage | string | URL of the profile image |
| profileDisplayName | string | Display name of the profile |
| profileHandle | string | Handle or username |
| profileBio | string | Biography or user description |
| profileName | string | Full name of the user |
| userAddress | string | Ethereum address of the user |
| userRecoveryAddress | string | Recovery address of the user |
| profileLastUpdatedAtBlockNumber | number | Block number when profile last updated|
| location | string | User's location |
## getUserDetailsByAddress
### Description
Retrieves user details based on the Ethereum address.
### Parameters
| Name | Type | Description |
| ------- | ------------- | ---------------------------- |
| address | `0x${string}` | Ethereum address of the user |
### Return Type
Promise
**UserDetails Type:**
| Field | Type | Description |
|---------------------------------|------------|---------------------------------------|
| userAssociatedAddresses | string[] | Associated addresses of the user |
| id | string | User ID |
| fnames | string[] | List of first names |
| followerCount | number | Count of followers |
| followingCount | number | Count of following users |
| profileImage | string | URL of the profile image |
| profileDisplayName | string | Display name of the profile |
| profileHandle | string | Handle or username |
| profileBio | string | Biography or user description |
| profileName | string | Full name of the user |
| userAddress | string | Ethereum address of the user |
| userRecoveryAddress | string | Recovery address of the user |
| profileLastUpdatedAtBlockNumber | number | Block number when profile last updated|
| location | string | User's location |
## getUserDetailsByUsername
### Description
Retrieves user details based on the FarCaster username.
### Parameters
| Name | Type | Description |
| -------- | ------ | ------------------------------ |
| username | string | Farcaster username of the user |
### Return Type
Promise
**UserDetails Type:**
| Field | Type | Description |
|---------------------------------|------------|---------------------------------------|
| userAssociatedAddresses | string[] | Associated addresses of the user |
| id | string | User ID |
| fnames | string[] | List of first names |
| followerCount | number | Count of followers |
| followingCount | number | Count of following users |
| profileImage | string | URL of the profile image |
| profileDisplayName | string | Display name of the profile |
| profileHandle | string | Handle or username |
| profileBio | string | Biography or user description |
| profileName | string | Full name of the user |
| userAddress | string | Ethereum address of the user |
| userRecoveryAddress | string | Recovery address of the user |
| profileLastUpdatedAtBlockNumber | number | Block number when profile last updated|
| location | string | User's location |
## getCustomFarcasterData
### Description
Retrieves custom user data based on the GraphQL Query and Variables provided
### Parameters
| Name | Type | Description |
| --------- | ---------- | ---------------------------------------------- |
| query | string | GraphQL Formatted Query |
| variables | array | Array of variables for the given GraphQL Query |
### Return Type
Promise
## isFollowing
### Description
Checks if a user with a given FID is following another user with a target FID on Farcaster.
### Parameters
| Name | Type | Description |
| --------- | ------ | ------------------------------------------------------ |
| userFID | number | Farcaster ID of the user who is potentially following. |
| targetFid | number | Farcaster ID of the user who is potentially followed. |
### Return Type
Promise
### Return Value
- `true`: The user with `userFID` is following the user with `targetFid`.
- `false`: The user with `userFID` is not following the user with `targetFid`.
## getUserAssociatedAddresses
### Description
Retrieves the associated Ethereum and Solana addresses for a user based on their Farcaster ID.
### Parameters
| Name | Type | Description |
| ------- | ------ | -------------------------------------------------- |
| fid | string | FarCaster ID of the user. |
| hub | string | (Optional) Hub URL for the API endpoint. |
| options | Object | (Optional) Additional options for the API request. |
### Return Type
Promise
**UserAssociatedAddresses Type:**
```typescript
type UserAssociatedAddresses = {
solanaAddresses: string[];
ethereumAddresses: string[];
};
```
### Return Value
An object containing arrays of associated Ethereum and Solana addresses for the specified user.