This documentation is for versions 0.1 – 0.6
. You may want to view the
latest version.
create-ponder
The easiest way to get started with Ponder is create-ponder
. This CLI tool creates a new Ponder project with package.json
, ponder.config.ts
, ponder.schema.ts
, ABIs, and other project files set up for you.
pnpm create ponder {...options}
Options
Usage:
$ create-ponder <directory> [options]
Options:
-t, --template [id] Use a template
--etherscan [url] Use the Etherscan template with the specified contract URL
--etherscan-api-key [key] Etherscan API key for Etherscan template
--subgraph [id] Use the subgraph template with the specified subgraph ID
--subgraph-provider [provider] Specify the subgraph provider
--npm Use npm as your package manager
--pnpm Use pnpm as your package manager
--yarn Use yarn as your package manager
--skip-git Skip initializing a git repository
--skip-install Skip installing packages
-h, --help Display this message
-v, --version Display version number
Templates
Templates help get you started faster by copying contract addresses, ABIs, and deployment blocks from an existing source.
Etherscan contract link
The --etherscan [url]
option creates a project using the address, ABI, and deployment block number of a contract on a block explorer. Enter the full URL, not just the contract address.
Chain support
The template uses the viem/chains
list of block explorer URLs to determine the chain ID and fetch the contract ABI. Please reference the viem/chains
definitions to see if your block explorer is supported. If you'd like to use an unsupported block explorer, please open a PR there to add it.
Subgraph ID
The --subgraph [id]
option creates a project from an existing subgraph by fetching the addresses, ABIs, and start blocks for each event source defined in subgraph.yaml
.
To find the subgraph ID, go to the subgraph's page on the hosted service or Graph Explorer.
Example projects
The -t, --template [id]
option creates a new project from one of the example projects.
For example, this command creates a project using the feature-factory
example project.
pnpm create ponder --template feature-factory
Here are the available projects:
Name | Template ID | Link |
---|---|---|
Factory contract | feature-factory | GitHub |
Custom event filter | feature-filter | GitHub |
Multiple chains | feature-multichain | GitHub |
Proxy contract | feature-proxy | GitHub |
Contract calls | feature-read-contract | GitHub |
Friendtech project | project-friendtech | GitHub |
Uniswap V3 flash loans | project-uniswap-v3-flash | GitHub |
Basic ERC20 token | reference-erc20 | GitHub |
Basic ERC721 token | reference-erc721 | GitHub |