Description
Zapper Studio is a platform which enables developers in our community to integrate Web3 applications into Zapper. Integrations can support fetching tokens and contract positions, retrieving a wallet's balances, calculating TVL, and more to come in the future. These adapters enrich the Zapper API, and all of its consumers, including our own mobile and web apps.
Requirements
Ensure the following have been installed on your system:
- Node v18.16.1 or above
- pnpm 8
Getting Started
You can get started building immediately!
OpenAPI docs for studio is available on localhost:5001/docs. Which will give you a rough overview of all exposed endpoints you can test out.
If you wish to know how to integrate your application, please check out Zapper Studio docs for more details.
Installation
$ pnpm install
Running the app
$ pnpm dev
Creating a new app
pnpm studio create-app
Generating code templates
pnpm studio create-token-fetcher [app-id]
pnpm studio create-contract-position-fetcher [app-id]
Clearing the cache
Clears the file-system cache that persists app tokens, contract positions and any other app related data. Useful when you are doing modification to an app and it keeps on returning stale data.
pnpm studio clear-cache
Setting custom network providers
If default network providers are too slow or are failing, you can use customize your setup.
pnpm studio set-network-provider
Generating a typescript contract from an ABI
ABIs that are contained within the contracts/abis
folder of your application can be leveraged
to quickly spin up a typescript library for interacting with a given smart contract.
You can quickly spin up a typescript library for using an ABI by running the following command:
pnpm studio generate:contract-factory [app-id]
Enabling environment specific configuration
Simply copy .env.sample
to .env
and edit the configuration file.
ENABLED_APPS
Control which app to enable on startup. Particularly useful to keep local build times snappy.
When developing your own app, it's recommended to add its identifier (aka: the folder name) and its dependant apps
(also their respective folder name) into this configuration key. See the .env
file for further details.
Contributing
Read our Contribution Guide
Contributing new commands
You can generate a new cli command by running the hidden command:
pnpm studio new:command [my-command-name]
Need help?
Join our community on Discord
License
This repository is under the Business Source License 1.1
Contributors โจ
Thanks goes to these wonderful people (emoji key):