Chaincred is a decentralized review & loyalty app that allows users to attest an review with EAS scanning the Ethereum address of another user. It uses thirdweb's React Native SDK to interact with the blockchain and thirdweb's Authentication SDK to handle user authentication.
- User authentication using thirdweb's Authentication SDK, SIWE (Sign In With Ethereum) and EIP-4361 (EIP-4361 Signature)
- Scan a QR code to send a review
- See your review score
- see where users are on the map
- Create profile
- Dark theme
- Integration with thirdweb's React Native SDK for blockchain interactions
- Use of thirdweb's EAS SDK for attestation verification
- Support for multiple attestation types (e.g., action, review)
To get started with ChainCred, follow these steps:
- Node.js v18.x
- Bun v1.x
- Docker
- Clone the repository to your local machine:
git clone https://github.com/ludwigw/chaincred.git
- Install the dependencies:
bun install
-
Set up your environment variables:
Create a.env.production.local
or file in the root directory of the project and add the following variables:EXPO_PUBLIC_TW_CLIENT_ID=<your-thirdweb-client-id> // Your Thirdweb client ID for authentication EXPO_PUBLIC_EAS_CONTRACT=<your-eas-contract-address> // The contract address for EAS (Ethereum Attestation Service) EXPO_PUBLIC_SCHEMA_ADRESS_ACTION=<your-schema-address-action> // The schema address for action attestations EXPO_PUBLIC_SCHEMA_ADRESS_REVIEW=<your-schema-address-review> // The schema address for review attestations EXPO_PUBLIC_EAS_SCHEMA_REGISTRY=<your-eas-schema-registry-address> // The address for the EAS schema registry EXPO_PUBLIC_EAS_GRAPHQL=<your-eas-graphql-endpoint> // The GraphQL endpoint for EAS EXPO_PUBLIC_API_KEY_GOOGLE=<your-google-api-key> // Your Google API key for accessing Google services EXPO_PUBLIC_ORGANIZATION_MANAGER_ADDRESS=<your-organization-manager-address> // The address for the organization manager EXPO_PUBLIC_SUPABASE_URL=<your-supabase-url> // The URL for your Supabase instance EXPO_PUBLIC_SUPABASE_ANON_KEY=<your-supabase-anon-key> // The anonymous key for accessing Supabase EXPO_PUBLIC_SERVER_URL=<your-server-url> // The URL for your server EXPO_PUBLIC_POSTGRES_PRISMA_URL=<your-postgres-url> // The URL for your Postgres database with Prisma EXPO_PUBLIC_POSTGRES_URL_NON_POOLING=<your-postgres-url> // The non-pooling URL for your Postgres database EXPO_PUBLIC_THIRDWEB_FACTORY_ADDRESS=<your-thirdweb-factory-address> // The factory address for Thirdweb THIRDWEB_AUTH_PRIVATE_KEY=<your-thirdweb-auth-private-key> // Your private key for Thirdweb authentication THIRDWEB_SECRET_KEY=<your-thirdweb-secret-key> // Your secret key for Thirdweb
-
run docker-compose up
-
Run the app:
bun ios
- Add more attestation types
We welcome contributions to ChainCred! If you have any ideas or suggestions for how to improve the app, please open an issue or submit a pull request on our GitHub repository.
ChainCred is licensed under the Apache License 2.0.