This is Nouns Builder front-end website and subgraph mono-repo. You can find Nouns Builder deployed on:
For an introduction to Nouns Builder and its concept, you can find further documentation here.
You can also find the Builder Protocol code here.
apps
web
: Nouns Builder front-endsubgraph
: Nouns Builder subgraph
packages
blocklist
: Package to check for sanctioned wallet addressesanalytics
: Shareable analytics packagezoralabs-zord
: Shareable ui componentseslint-config-custom
:eslint
configurations (includeseslint-config-next
andeslint-config-prettier
)tsconfig
:tsconfig.json
s used throughout the monorepoipfs-service
: api to for image uploads to ipfs
-
Clone this repo locally
-
Add the required environment variables
-
Install dependencies across all apps and packages
pnpm i
- Once environment variables are defined, you can run the app in dev mode
pnpm dev
Note: linting and prettier formatting are automatically run on pre-push hooks
To lint:
pnpm run lint
To format:
pnpm run format
To run type checks:
pnpm run type-check
> pnpm run build
> pnpm run start
This app has several third party api keys that you need in order to run Builder:
- Tenderly as the main rpc node provider and transaction simulator
- Etherscan to dynamically fetch abis
We ask that you supply your own secrets locally for running in development environment. Non-secret environment variables are already included in the .env
files in this repo.
Add the following variables to .env.local
within this root directory (needed to run tests against a local anvil node):
ANVIL_FORK_URL=https://eth-mainnet.alchemyapi.io/v2/$TENDERLY_RPC_KEY
ANVIL_BLOCK_NUMBER=8305745
Add the following variables to apps/web/.env.local
:
# tenderly RPCs
NEXT_PUBLIC_TENDERLY_MAINNET_RPC_KEY
NEXT_PUBLIC_TENDERLY_BASE_RPC_KEY
NEXT_PUBLIC_TENDERLY_OPTIMISM_RPC_KEY
NEXT_PUBLIC_TENDERLY_SEPOLIA_RPC_KEY
# conduit RPC for Zora
NEXT_PUBLIC_ZORA_CONDUIT_RPC_KEY
# tenderly simulator env variables
TENDERLY_ACCESS_KEY=<API_KEY>
TENDERLY_PROJECT=<PROJECT_NAME>
TENDERLY_USER=<ACCOUNT_NAME>
#etherscan (optional to run locally, this is for dynamically fetching abis in the custom transaction builder)
ETHERSCAN_API_KEY=<ETHERSCAN_API_KEY>
# optional zora api key
NEXT_PUBLIC_ZORA_API_KEY=
Note: to run tests you need to install anvil.
Once anvil is installed, you can now locally run anvil (from the root directory in the monorepo) in a separate terminal session to start a local ethereum node:
pnpm run anvil
Now you can run the tests in a separate terminal session:
pnpm run test
You can also run the tests in watchmode, which will react to any source code or test files changing. To do that, run:
pnpm run test:watch
The Nouns Builder client is deployed on Vercel. Any pull requests will trigger a new preview deployment providing you with an environment to test out and preview changes.
The Nouns Builder subgraph is deployed for the following networks:
Please refer to our contributions guideline on how best to contribute.
Feel free to reach out to us via Discord