Backend API service for TuckTools Web3 application, found here.
This API offers access to token gated third party services, in an attempt to hide authentication credentials while allowing access to external useful services like IPFS or Alchemy.
For now, two services are offered:
- IPFS, endpoint
/ipfs
: Upload and fetch data from IPFS through any node that allow these operations. - ETH through Alchemy, endpoint
/eth
: Interact with any EVM blockchain through an Alchemy node. Only ethereum mainnet, goerli and polygon mainnet are currently configured.
These tools have been created to demonstrate my technical skills. They have all been thoroughly tested by me, but no third party has been involved in testing/auditing any of the code. Please keep this in mind when using them, as I am not responsible for any misuse of, or damage caused by, these tools.
- Base technologies for this project are: NestJS + Typescript, using the standard NestJS scaffolding tool. More info here.
- To handle blockchain operations, the project uses ethers through an Alchemy node. For now, only ethereum mainnet, goerli and polygon mainnet are supported.
- IPFS is accessed through the official library ipfs-http-client.
- You may have a .env, development.env and a production.env file in
src/common/env
folder..env
will act as the final fallback in case neither production or development are found. You can see the format for those files insrc/common/env/.env.example
. - This API does not have any authentication module. For now it is intended to be accessed from the same machine as the frontend. As both ends develop, it is expected to have its own machine and use some authentication method to be accessed.
npm install
: To install all dependenciesnpm run start:dev
: To initialize the web server daemon for developmentnpm run start:prod
: To initialize the web server daemon in production modenpm run lint
: To view linting and formatting problems on the projectnpm run lint:fix
: To fix linting and formatting problems on the projectnpm run build
: To generate and pack production files