• Stars
    star
    121
  • Rank 293,924 (Top 6 %)
  • Language
    TypeScript
  • License
    MIT License
  • Created over 3 years ago
  • Updated over 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Starter repo for creating your own auction house with Zora's protocol

Create Auction House ☼☽

Auction House Montage

A repo to bootstrap your own permissionless auction house with the Zora protocol. This template will get you started with the display of any Erc721 token collection using Zora's rendering components and data hooks along with the inclusion of web3 components so users can connect their wallets and manage NFT's that they own within a specified collection.

More about the Zora Auction House on Mirror

Features

  1. uses @zoralabs/nft-components to render NFTs and auction info.
  2. includes @zoralabs/nft-hooks for more custom applications.
  3. uses @zoralabs/manage-auction-hooks for auction interactions.
  4. uses @zoralabs/simple-wallet-provider for an easy wallet login flow.
  5. uses @emotion: emotion.sh for styling.
  6. uses typescript
  7. based on next.js

Getting Started

Simply use this repo as a next.js template replacing [project-name] with the title of your auction house.

yarn create next-app [project-name] -e https://github.com/ourzora/create-auction-house
# or
npx create-next-app [project-name] -e https://github.com/ourzora/create-auction-house

The application accepts the below environment variables, you WILL need to specify the network ID along with either a Curator ID or a Contract Address:

We have included a script to help you with the initial configuration, simply run the below command:

yarn setup

ENV VARS:

NEXT_PUBLIC_APP_TITLE=[default app title]
NEXT_PUBLIC_DEFAULT_DESCRIPTION=[default meta description]

# Erc721 Contracts you would like to work with, you may use multiple seperated by commas.
NEXT_PUBLIC_MAINNET_CONTRACTS=0xabEFBc9fD2F806065b4f3C237d4b59D9A97Bcac7
NEXT_PUBLIC_TESTNET_CONTRACTS=0x7C2668BD0D3c050703CEcC956C11Bd520c26f7d4

# NETWORK ID: 1 for Ethereum Mainnet / 4 for Rinkeby Testnet
NEXT_PUBLIC_NETWORK_ID=4

# OPTIONAL, use instead of NFT Contract to show NFTs associated with a user's address.
NEXT_PUBLIC_CURATORS_ID=[The address of a curator or creator]

# OPTIONAL - Best to set in deployment
NEXT_PUBLIC_BASE_URL=[production-url]

## configured RPC_URL (mainnet/rinkeby depending on NETWORK_ID) for walletconnect 
## ~ Keep this private in a .env.local file. And configure directly in vercel for production.
NEXT_PUBLIC_RPC_URL=[address to web3 rpc url provider]

If you include a rpcUrl on the manage auction hooks provider it enables walletconnect, without that rpcUrl walletconnect will not work work. We have set included and .env variable for this: NEXT_PUBLIC_RPC_URL. Further reading on RPC providers / Alchemy Ethereum API Docs.

Develop

First, run the development server:

yarn dev

Open http://localhost:3000 with your browser to see the result.

You can start editing the page by modifying pages/index.js. The page auto-updates as you edit the file.

Deploy on Vercel

The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.

Check out our Next.js deployment documentation for more details.

Or click the button below:

Deploy with Vercel

...Don't forget to add the necessary environment variables!

Extras!

  • Start of with some static designs using this .sketch design template - if you prefer Figma you can import the sketch.app file.

  • Minimal styling has been added to the styles/GlobalStyles.tsx, we love @emotion as it integrates with @zoralabs/nft-components - go ahead and uncomment the styling in styles/theme.ts to see it in action.

  • A few additional styling patterns have been included: the usage of css variables, styling mixins & styled components. None of this is necessary - feel free to style as you wish!

  • An example page is included - custom-thumbnails.tsx - in this page we are adding some css classes to the nft thumbnails based on auction state.

  • We've included a markdown rendering component to allow for the easy addition of formatted copy. See it in action in the about page.

    import readMe from '../README.md'
    ...
    export default function About() {
      return (
        <>
          ...
            <Markdown markdown={readMe}/>
          ...
        </>
      )
    }

More Repositories

1

v3

Solidity
370
star
2

zora-721-contracts

Zora drops contracts (powers create.zora.co)
Solidity
189
star
3

nft-editions

Contracts to lazy-mint editioned ERC721s
Solidity
164
star
4

core

A protocol to create, share and exchange universally accessible and valuable media on the internet.
TypeScript
161
star
5

auction-house

TypeScript
154
star
6

nft-hooks

NFT Data Fetching Hooks with Zora contract data
TypeScript
135
star
7

nouns-protocol

Solidity
108
star
8

zora-docs

JavaScript
107
star
9

offchain

NFT Metadata made easy
Python
107
star
10

zdk

TypeScript
107
star
11

zorb

Zorb zelated zings
TypeScript
107
star
12

nft-components

NFT Rendering Components
TypeScript
100
star
13

nouns-builder

Nouns Builder
TypeScript
93
star
14

lanyard

Decentralized allowlists for web3
TypeScript
78
star
15

zora-protocol

Monorepo for Zora Protocol (contracts & sdks)
Solidity
77
star
16

mint-page-template

TypeScript
71
star
17

nft-metadata

generic nft metadata parsers
TypeScript
65
star
18

faucets

TypeScript
57
star
19

nouns-marketplace

⌐◨-◨
TypeScript
49
star
20

foundry-script-examples

Solidity
44
star
21

doge-nft

DOGE NFT
SCSS
32
star
22

media-metadata-schemas

A repository of known JSON metadata schemas for the Zora media protocol.
TypeScript
29
star
23

themis

The legal terms of service for people's tokenized work
29
star
24

zora-v1-subgraph

TypeScript
27
star
25

mintpool

A mempool of things you can bring onchain
Rust
21
star
26

zora-token-factory-deprecated-

A token factory that enables any person or community to tokenize any good or endeavour.
JavaScript
21
star
27

nft-cli

NFT CLI library
TypeScript
17
star
28

protocol-rewards

Solidity
16
star
29

nouns-builder-bot

TypeScript
15
star
30

recovery-protocol

Solidity
15
star
31

simple-wallet-provider

Simple Wallet Provider
TypeScript
15
star
32

smol-safe

smol safe ui
TypeScript
15
star
33

chains-cli

Cli for chain configuration
TypeScript
14
star
34

zora-drops-extensions

Extensions for ZORA Drops
Solidity
11
star
35

nouns-ar-glasses-ios

Nouns AR Glasses for iOS
Swift
11
star
36

nouns-connect

Connect your Nouns DAOs to DApps
TypeScript
10
star
37

thegrandexchange

welp here goes nothing
TypeScript
9
star
38

json-extension-registry

Store arbitrary JSON data associated with a contract
Solidity
8
star
39

zorb-zenerator

JavaScript
8
star
40

zora-drop-frontend

Frontend template iteration for drop site using Zora drops contract factory.
JavaScript
7
star
41

rent-a-vote

Solidity
7
star
42

zora-crypto-list

A list of resources to help get started in crypto.
6
star
43

rug-house

Rug Store Auction House!
TypeScript
6
star
44

cryptomedia

What is Cryptomedia?
HTML
6
star
45

cli

TypeScript
5
star
46

hollyplus-minting-contract

Simple royalty-enabled IPFS minting contract for holly plus
TypeScript
5
star
47

manage-auction-hooks

Hooks to manage auction state for auction houses, integrates with simple-wallet-hooks
TypeScript
4
star
48

first-lol

TypeScript
3
star
49

mad-realities-auction

TypeScript
3
star
50

matthew-ball-minting-contract

On-chain metadata with contentURI implementation for Matthew Ball's Metaverse Essays
HTML
2
star
51

zora-zine-reader

POC for zora zine reader
TypeScript
1
star
52

uniswap-v2-interface

TypeScript
1
star
53

zora-creator-subgraph

TypeScript
1
star
54

frontend-exercise-one

ZORA Frontend Exercise #1
TypeScript
1
star