Live on Warpcast: https://warpcast.com/3070/0xb1cfd7bc
![image](https://private-user-images.githubusercontent.com/65995595/306133696-79880bbb-f3cf-4cc9-a5c5-528211fe35e5.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk3NTA0ODUsIm5iZiI6MTczOTc1MDE4NSwicGF0aCI6Ii82NTk5NTU5NS8zMDYxMzM2OTYtNzk4ODBiYmItZjNjZi00Y2M5LWE1YzUtNTI4MjExZmUzNWU1LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE2VDIzNTYyNVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTUwYzNmZTY5OTlhYzMwMTc1NzRjMDNhN2RkOTQyOTRkOGE1NTExMzFlYTY2ODhkODk2ZDMwYTliYjRiMGYxOGImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.e90FWF6t1EcubDe8wpk44Qu_IqrzYV1HiItdfEdK7eA)
interframe is a Farcaster Frame implementation of a blockchain reader for NFT collections.
Try it in action: Try me
a.k.a. interframation
This is a special note to any frame devs out there
If you'd like to refer to this frame in anyway, the home page can be retrived by fetching this url:
https://interframe-eight.vercel.app/api/home
If you'd like to navigate user to a summary page for a particular token that you'd provide to interframe, fetch the /api/summary
endpoint with the collection address as a tokenAddy
query parameter.
Example
// Handing off frame to interframe/summary example:
// request URL: https://interframe-eight.vercel.app/api/summary?tokenAddy=0xb0349245e142635f0ea094e413502f6223d37cd7
const res = await fetch('https://interframe-eight.vercel.app/api/summary?tokenAddy=0xb0349245e142635f0ea094e413502f6223d37cd7)'
return new Response(res.body, {headers: {'Content-Type'}: 'text/html'})
Name | Endpoint | Notes |
---|---|---|
Homepage | https://interframe-eight.vercel.app/api/home |
No query parameters required |
Summary | https://interframe-eight.vercel.app/api/summary?tokenAddy= |
tokenAddy: a string representing a token address |
Latest mints | https://interframe-eight.vercel.app/api/latest-mints?tokenAddy= |
tokenAddy: a string representing a token address |
Top holders | https://interframe-eight.vercel.app/api/holders?tokenAddy= |
tokenAddy: a string representing a token address |
These endpoints can all be fetched with a
GET
request as in the example shown above.
After the user selects a particular token, interframe navigates the user to view useful information about that token.
This includes a summary, top holders, latest mints, and popular casts related to the selected token.
It currently supports ERC-721 and ERC-1155 tokens on Base, Ethereum, and Zora.
Users can browse from a selection of tokens that they own.
![image](https://private-user-images.githubusercontent.com/65995595/306132831-d2da69e0-2fc9-4f22-9c96-161e80a82e1e.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk3NTA0ODUsIm5iZiI6MTczOTc1MDE4NSwicGF0aCI6Ii82NTk5NTU5NS8zMDYxMzI4MzEtZDJkYTY5ZTAtMmZjOS00ZjIyLTljOTYtMTYxZTgwYTgyZTFlLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE2VDIzNTYyNVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTIyOWQ4YjRlYzI1MzAzZDc2Y2ExN2FiYjBlNmRjMTMyOGY0YzkyMTE1ZmZiMjU1ZmUzYTY4MWQ5MmE1NGM2OTkmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.zB1sF482iJGXsBj9iPX49XyIqLER-xDm9DQhfSfNmAA)
![image](https://private-user-images.githubusercontent.com/65995595/306132875-afd50f90-53c5-4c07-8340-ae4bd2d1dd5c.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk3NTA0ODUsIm5iZiI6MTczOTc1MDE4NSwicGF0aCI6Ii82NTk5NTU5NS8zMDYxMzI4NzUtYWZkNTBmOTAtNTNjNS00YzA3LTgzNDAtYWU0YmQyZDFkZDVjLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE2VDIzNTYyNVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWFhMGZiNjJiNzM5ZWM5Yzc5ZDQxMDMzNmZmNTMwNzRiYzNkNTc2YjVjZDZiMGUxN2Y4NWVkOTE5NzdiNzBhODImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.X-vpaCok3T-tStZK9D2IuFbXZDyursiFOu58i1oiz80)
Users can input and submit a contract address or token name to view blockchain data about that token.
![image](https://private-user-images.githubusercontent.com/65995595/306133055-57f277b6-a7fa-4fc0-ae06-5cac9f24c570.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk3NTA0ODUsIm5iZiI6MTczOTc1MDE4NSwicGF0aCI6Ii82NTk5NTU5NS8zMDYxMzMwNTUtNTdmMjc3YjYtYTdmYS00ZmMwLWFlMDYtNWNhYzlmMjRjNTcwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE2VDIzNTYyNVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTc0ZmI4Y2NjM2M2NmFiYWIzNGU3ZWEyMTFmMjEzYmIxNDE4ZmJlYWVkMzBjYjQ5NTc1NjczYTcxNGFmMTgyNmYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.l-5u-UnTSIPE5frBjqUiswK9EYYdij0BxSpF5me48yE)
![image](https://private-user-images.githubusercontent.com/65995595/306133110-1580b1a2-488a-4543-9492-377e2c9e2494.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk3NTA0ODUsIm5iZiI6MTczOTc1MDE4NSwicGF0aCI6Ii82NTk5NTU5NS8zMDYxMzMxMTAtMTU4MGIxYTItNDg4YS00NTQzLTk0OTItMzc3ZTJjOWUyNDk0LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE2VDIzNTYyNVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWI0Y2IyODkzYzQ0YTRkZjkyYWQ3ZWI2YzgzNTUyMzhkNjYwMzliZGVkODE5NjU3MWU5MjdjZWJmNzcwZmJiODQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.wzgjVAYTDWqPtmnspWr3B8RzKWE-410ZEgAdsido34A)
The summary page gives a brief summary of a specific token.
![image](https://private-user-images.githubusercontent.com/65995595/306133248-11261951-0fd4-422f-83ec-94d30142a981.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk3NTA0ODUsIm5iZiI6MTczOTc1MDE4NSwicGF0aCI6Ii82NTk5NTU5NS8zMDYxMzMyNDgtMTEyNjE5NTEtMGZkNC00MjJmLTgzZWMtOTRkMzAxNDJhOTgxLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE2VDIzNTYyNVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTY2Zjk4YzE3NzMxYTFiM2RlODc1ZGEyNDk0Mzk0ZTY2YzAxMmVlOTM1NmY0YmMwOTAxMWIwYmRkMWM0OTNhNDEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.JkdE0bU-Kt7OBF3YcqRP0pHZZvB5lgWayI5xreYjyCE)
The top holders page allows users to nagivate through the top 10 holders of a collection.
![image](https://private-user-images.githubusercontent.com/65995595/306133374-7b7b9fc6-8d38-4898-bacd-00d2a0929a73.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk3NTA0ODUsIm5iZiI6MTczOTc1MDE4NSwicGF0aCI6Ii82NTk5NTU5NS8zMDYxMzMzNzQtN2I3YjlmYzYtOGQzOC00ODk4LWJhY2QtMDBkMmEwOTI5YTczLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE2VDIzNTYyNVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWJmOWQyYzA3MmIyODIwZTc3ZTNjZjIwY2ExN2Y0MDllYmQwZTU0OTFhNDZiYzUyMGMzOGViNTc0NzU3NzkxNDAmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.QTZUjKqdSFNBNk3lcNbfHcI3Xggsv5izSgEp1cYsk6E)
The latest mints page allows users to nagivate through the latest mints of a collection.
![image](https://private-user-images.githubusercontent.com/65995595/306133461-c33353ee-48cb-4254-afd2-943815fb668f.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk3NTA0ODUsIm5iZiI6MTczOTc1MDE4NSwicGF0aCI6Ii82NTk5NTU5NS8zMDYxMzM0NjEtYzMzMzUzZWUtNDhjYi00MjU0LWFmZDItOTQzODE1ZmI2NjhmLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE2VDIzNTYyNVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTJjNGJhMjVjZDdkN2E2NjM0ZDhiNzQ3MDkzNzYwNmQ4OTE1YjYyNTg4ZGVmNWJmZTExZWVjODcwMjRiMTMxMDgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.TXwEygz-BIQT9bLhz9M9Jv2rSkHKNHjb8219F2wNvzs)
Note: This feature is yet to be implemented
interframe uses several APIs to retreive its data.
zdk
: ZDK is a Typescript abstraction of Zora's GraphQL API- usage: the zdk is being used in interframe to retrieve basic information about a collection. This information is served in
/api/summary
- website: ZDK
- usage: the zdk is being used in interframe to retrieve basic information about a collection. This information is served in
The Graph
: The Graph is a collection of decentralized GraphQL APIs- usage: The Graph is being used in interframe to retrieve information about top holders for collections on Ethereum and Base. This information is served in
/api/holders
- website: The Graph
- usage: The Graph is being used in interframe to retrieve information about top holders for collections on Ethereum and Base. This information is served in
@vercel/og
: This Typescript library exposes a convenience method to generate a valid OpenGraph image using JSX elements. It usessatori
under the hoood.- usage:
ImageResponse
is used for generating all OpenGraph images for interframe. See:/api/images/*
- website: Vercel OG
- usage:
Farcaster Frame
: Farcaster Frame(s) are an extension of the OpenGraph protocol to generate interactive content on decentralized social platforms.- usage: The API routes return a valid response that adheres to the Farcaster Frames spec
- website: Farcaster Frame spec
Airstack
: A GraphQL API for decentralized social graphs and Ethereum+ blockchains- usage: Airstack is used to deduce Farcaster-related information about a token. E.g. using
TokenBalances
query to calculate what percentage of the holder base are verified Farcaster accounts. It is also being used for the query string search functionality on/api/search/results
route. - website: Airstack
- usage: Airstack is used to deduce Farcaster-related information about a token. E.g. using