This project, named "Immutable zkEVM NestJS", is a NestJS-based application designed to interact with Ethereum smart contracts, focusing on NFT minting and user authentication. It leverages the power of zkEVM for enhanced privacy and scalability in Ethereum transactions.
- NFT Minting: Allows minting NFTs to a specified recipient.
- Authentication: Support for user signup and authentication.
- User Inventory: Fetches the inventory of NFTs owned by a user.
- List NFT Owners: Lists owners of NFTs for a specific contract.
- Supported Chains: Lists supported blockchain networks.
- Node.js (version specified in
package.json
or later) - PNPM package manager
- An instance of Prisma-compatible database
- Clone the repository:
git clone <repository-url>
- Navigate to the project directory:
cd immutable-zkevm-nestjs
- Install dependencies using PNPM:
pnpm install
- Set up your environment variables:
Create a .env
file in the root directory. Refer to the .env.example
for required variables.
- Initialize the database:
pnpm run db:sync
To run the application in development mode:
pnpm run dev
For production mode:
pnpm run start:prod
The project is structured as follows:
src/
: Source code of the application, including modules, services, and controllers.prisma/
: Prisma schema and sub-schema files for database models.test/
: Contains e2e tests for the application.
Contributions are welcome! Please read our contributing guidelines for details on how to contribute to this project.