A NestJS-based bot that monitors Ethereum blockchain events for Ethscription sales across multiple marketplaces, generates notification images, and posts updates to Twitter.
👍 Multi-Marketplace Monitoring: Tracks sales across major Ethscription marketplaces including:
- Ethscriptions.com
- MemeScribe
- Etch Market
- EtherPhunks Market
- Ordex
👍 Dynamic Image Generation: Creates custom notification images for sales featuring:
- Collection branding
- Item preview
- Sale details
- Configurable layouts
👍 Twitter Integration: Automatically posts sale notifications to Twitter with:
- Custom formatted messages
- Generated images
- Transaction links
- Price in ETH and USD
👍 Real-time Price Data: Maintains current ETH/USD price through CoinGecko API
Here are some examples of generated sale notifications:
(with CARD_GEN_ENABLED=1 and CARD_GEN_ENABLED=0)
- Node.js
- Yarn
- Ethereum RPC endpoint
- Twitter account credentials (if using Twitter integration)
Choose your preferred package manager:
# Using yarn
yarn install
# Using npm
npm install
# Using pnpm
pnpm install
Create a .env
file based on the provided .env.example
file.
# Development mode
yarn start
# or
npm run start
# or
pnpm start
# Watch mode
yarn start:dev
# or
npm run start:dev
# or
pnpm start:dev
# Production mode
yarn start:prod
# or
npm run start:prod
# or
pnpm start:prod
Add collection metadata JSON URLs to src/constants/collections.ts
:
export const collections = [
"https://raw.githubusercontent.com/example/collection/main/metadata.json"
];
Collection metadata should follow either the standard format or Emblem Vault format.
Markets are configured in src/constants/markets.ts
. Each market definition includes:
- Marketplace name and URL
- Contract address
- Event signatures and parameter mapping
- Services
AppService
: Main application logic and event handlingEvmService
: EVM interactionImageService
: Sale notification image generationTwitterService
: Eliza Twitter integrationCollectionService
: Collection metadata managementDataService
: External data fetching (prices, etc.)UtilService
: Shared utility functions
- Fork the repository
- Create your feature branch
- Commit your changes
- Push to the branch
- Create a new Pull Request
This project uses agent-twitter-client (Eliza) for Twitter automation. This client allows posting to Twitter without requiring API keys, making it easier to set up and maintain.