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.
Ensure the following have been installed on your system:
- Node v16.14.2 or above
- pnpm
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.
$ pnpm install
$ pnpm dev
pnpm studio create-app
pnpm studio create-group [app-id]
pnpm studio create-token-fetcher [app-id]
pnpm studio create-contract-position-fetcher [app-id]
pnpm studio create-balance-fetcher [app-id]
Clears the file-system cache that persists app tokens, contract positions and any other app related data. Useful when your are doing modification to an app and it keeps on returning stale data.
pnpm studio clear-cache
If default network providers are too slow or are failing, you can use customize your setup.
pnpm studio set-network-provider
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]
Simply copy .env.sample
to .env
and edit the configuration file.
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 it's dependant apps
(also their respective folder name) into this configuration key. See the .env
file for further details.
Read our Contribution Guide
You can generate a new cli command by running the hidden command:
pnpm studio new:command [my-command-name]
Join our community on Discord
This repository is under the Business Source License 1.1
Thanks goes to these wonderful people (emoji key):