contracts

The Space is a pixel canvas organized by Harberger Tax and UBI, where each pixel is implemented as ERC721 token.

Design

Introduction

See The Space Whitepaper for detail.

An explainer of the idea can be found here. Resources on Harberger Tax, also referred to as Partial Common Ownership can be found on RadicalxChange and PartialCommonOwnership.

Bidding pixel

Any user can bid on any pixel at anytime, by specifying a bid price.

For any pixel, an user can query the following information to help decide whether to bid a pixel:

Contracts

Logic flow for functions

settleTax

settleTax function

transferFrom

transferFrom function

bid

bid function

Deployment

Make file is at project root.

Preprare environment

cp .env.local.example .env.local cp .env.polygon-mainnet.example .env.polygon-mainnet cp .env.polygon-mumbai.example .env.polygon-mumbai

Deploy to mainnet

Deploy $SPACE currency

make deploy-the-space-currency NETWORK=polygon-mainnet

Deploy TheSpace

Add the contract address deployed above into env file variable THESPACE_CURRENCY_ADDRESS, then deploy TheSpace:

make deploy-the-space NETWORK=polygon-mainnet

Deploy the snapper contract

Preprare SNAPPER_THESPACE_CREATION_BLOCKNUM and SNAPPER_THESPACE_INITIAL_SNAPSHOT_CID (a png file IPFS CID) env variable first, then:

make deploy-snapper NETWORK=polygon-mainnet