CastCred is a decentralized reputation protocol built for the Farcaster ecosystem. It enables users to:
- Give and receive verifiable onchain endorsements
- Schedule and optimize casts across multiple channels
- Build and track onchain reputation scores
- Discover high-quality contributors in the ecosystem
The application combines the social features of Farcaster with the verifiability of blockchain credentials.
✨ Onchain Endorsements
- Issue endorsements with specific skill tags
- Verifiable credentials stored onchain
- Rich endorsement messages with context
⏱ Smart Cast Scheduling
- Multi-channel casting
- Optimal timing suggestions
- Content performance tracking
📊 Reputation Dashboard
- Visual trust score display
- Endorsement history
- Network growth metrics
🛡 Decentralized Identity
- Wallet-based authentication
- Portable reputation
- Privacy-preserving options
- Node.js v16+
- npm or yarn
- Farcaster account (for full functionality)
- Ethereum wallet (MetaMask, Coinbase Wallet, etc.)
- Clone the repository:
git clone https://github.com/Moses-main/CastCred.git
cd CastCred- Install dependencies:
npm install
# or
yarn install- Set up environment variables:
cp .env.example .env
# Fill in your environment variables- Run the development server:
npm run dev
# or
yarn dev- Open http://localhost:3000 in your browser
-
Search for Users
- Find users by Farcaster username or ENS
- View their existing endorsements and reputation
-
Create Endorsement
- Select from predefined skill tags (Developer, Designer, etc.)
- Add a personalized message
- Submit transaction to store onchain
-
Manage Endorsements
- View received endorsements
- Filter by skill type
- Share notable endorsements
-
Compose Cast
- Write your message (280 character limit)
- Add embeds or media
-
Select Channels
- Choose from available Farcaster channels
- View channel stats and audience
-
Schedule Time
- Pick optimal posting time
- Set up recurring posts
- Review scheduled casts
-
Trust Score Calculation
- Weighted by endorsement quality
- Network effects considered
- Activity-based adjustments
-
Profile Display
- Visual score representation
- Skill breakdown
- Endorsement history
-
Discovery Features
- Top-rated builders
- Skill-specific leaderboards
- Trending contributors
src/
├── components/ # Reusable UI components
│ ├── header/ # Navigation components
│ ├── dashboard/ # Main app components
│ └── shared/ # Common utilities
├── hooks/ # Custom React hooks
├── lib/ # Utility functions
├── pages/ # Next.js page routes
├── styles/ # Global styles
├── types/ # TypeScript definitions
└── utils/ # Helper functions
dev: Runs the app in development modebuild: Creates an optimized production buildstart: Starts the production serverlint: Runs ESLint on the codebaseformat: Formats code with Prettiertype-check: Verifies TypeScript types
We welcome contributions from the community! Please follow these guidelines:
- TypeScript for all components
- Functional components with hooks
- Tailwind CSS for styling
- ESLint/Prettier for code consistency
We use Conventional Commits:
<type>[optional scope]: <description>
[optional body]
[optional footer]
Common types:
feat: New featurefix: Bug fixdocs: Documentation changesstyle: Code style/formattingrefactor: Code changes without fixing bugstest: Test additions/modifications
- Fork the repository
- Create a new branch (
git checkout -b feature/your-feature) - Commit your changes
- Push to the branch (
git push origin feature/your-feature) - Open a Pull Request
Please include:
- Description of changes
- Screenshots for UI changes
