An adaptation of the AIWA tool in TypeScript with storage on Ceramic (using ComposeDB).
A tool that automatically pulls on-chain transaction data given an address input across Ethereum mainnet and Base, and subsequently saving the data to ComposeDB for easy querying and filtering. Also uses Passport to obtain humanity score.
In order to run this example locally, you will need to create a copy of the .env.example file in the root of this directory, rename it to .env
, and begin loading the file with active corresponding values. These include the following:
ETHERSCAN_API_KEY
We will be using the Etherscan API to pull transaction data from Eth mainnet. Sign up for the free tier and obtain a key if you do not already have one.
BASE_API_KEY
We will be using the Base Explorer API to pull transaction data from Base. Sign up for the free tier and obtain a key if you do not already have one.
CERAMIC_PRIVATE_KEY
This is the private key your application will use to instantiate a static key:did in order to write transactions to Ceramic. This DID will act as the identifier for the issuer of points for your application (you).
If you have the ComposeDB CLI installed globally, you can run the following command in your terminal to create one:
composedb did:generate-private-key
PROJECT_ID
We will be using WalletConnect's Web3Modal for Web3 authentication.
You can set up a developer account for free by visiting cloud.walletconnect.com. Once authenticated, create a new app and copy over the "Project ID" value (found in the dashboard view for that corresponding app).
GITCOIN_API_KEY and SCORER_ID
We will be using Passport Scorer to determine our input address's humanity score. Set up an API key and a scorer ID in order to use this feature (free tier is available).
Once you've completed the steps above, you're ready to get started experimenting with the application in developer mode.
First, install your dependencies:
npm install
Once installed, run the application in developer mode:
npm run dev
This action will run the start script which:
- Automatically generates Ceramic credentials and a ComposeDB configuration
- Uses our schema definition to compile and deploy our composite onto our local node (running on local port 7007)
- Starts up a GraphiQL instance on local port 5002
- Runs our UI on port 3000
Navigate to http://localhost:3000 in your browser. You'll be able to create an index and query your index on the /reads page based on either the default address, or your address if you wish to connect your wallet.
To learn more about Ceramic please visit the following links
- Ceramic Documentation - Learn more about the Ceramic Ecosystem.
- ComposeDB - Details on how to use and develop with ComposeDB!
- Off-Chain EAS Attestations - Create off-chain attestations with EAS while using ComposeDB for storage and querying
- Data Control Patterns in Decentralized Storage - Learn how different teams are taking advantage of various data control patterns in the dStorage space
- AI Chatbot on ComposeDB - Build an AI-powered Chatbot and save message history to ComposeDB
- ComposeDB API Sandbox - Test GraphQL queries against a live dataset directly from your browser
- Ceramic Blog - Browse technical tutorials and more on our blog
- Ceramic Discord - Join the Ceramic Discord
- Follow Ceramic on Twitter - Follow us on Twitter for latest announcements!