Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/knownorigin/known-origin-contracts-v3

KnownOrigin V3 smart contracts
https://github.com/knownorigin/known-origin-contracts-v3

ethereum solidity

Last synced: 3 months ago
JSON representation

KnownOrigin V3 smart contracts

Awesome Lists containing this project

README

        

KnownOrigin V3 Smart Contracts



Discover, buy and collect rare digital artwork



Ethereum
Token ERC721
ERC2891 Compliant
ERC998 Composable
Contributions Welcome


## Core Guiding Principles & Features

* GAS efficient - every byte counts, store only what is required `creator`, `edition size` & `metadata` but ensuring onchain provence
* [ERC-721](https://eips.ethereum.org/EIPS/eip-721) compliant NFTs
* Ability to mint single 1 of 1 NFTs
* Ability to mint batches of NFT (multi-editions)
* Collaboration support for `1..n` collaborators with royalties - predetermined addresses
* Generalise feature set to work with all KO artists and collectors in a modula fashion
* Immutable by design with onchain purchase and bidding histories
* Creative works deserve traceable onchain histories, think of the future!
* Replace whitelisting with merkle proofs for minting access to reduce operational overheads
* Support for [ERC-2981: Royalty Standard](https://eips.ethereum.org/EIPS/eip-2981)
* Support for [ERC-998 Top-down ERC-20 composable](https://eips.ethereum.org/EIPS/eip-998) (optional)
* Single composable `ERC721`
* Multiple composable `ERC20`
* Support for [ERC-2309: Consecutive batch mint](https://eips.ethereum.org/EIPS/eip-2309) (optional)
* Support for [Rarible V2 royalties standard](https://docs.rarible.com/asset/royalties-schema) (optional)
* Support for a proxy management account for creatives (optional)
* Support programmable/dynamic token URIs in the future (future iteration)
* Support metadata updates before the first sale has been made (optional)
* Sealed Metadata: Support to set a one time `perma-web` backup of token metadata
* Sales mechanics (see `./marketplace`)
* `primary` market
* `Buy now` - includes start date
* `Open Offers` - includes bidder lockout period and start date
* `Stepped sales` - linear price increases per purchase from an edition
* `24hr reserve auctions` - includes start date, reserve price with 24hr countdown + 15min extension window
* `Early access sales` - gated sales behind lists of collectors, customisable drop phases
* `secondary` market
* `Buy now` - includes start date
* `Open Token Offers` - offers made on a specific token
* `Open Edition Offers` - open offer on an edition, any edition owner can action
* `24hr reserve auctions` - includes start date, reserve price with 24hr countdown + 15min extension window

### GAS & Coverage

* `GAS` report can be found [here](./gas-report-output.md) and generated on demand via `npm run gas`
* Contract size report found [here](./contract-size.md) or generated on demand via `npm run contract-size`
* Code coverage generation via `npm run coverage` output in `./coverage` folder

### Audits

* Public audits can be seen in `audits`
* Core NFT and marketplaces - CoinFabrik audit can be seen [here](https://blog.coinfabrik.com/known-origin-digital-asset-audit/)
* Early access / gated sales - CoinFabrik audit can be seen **Awaiting published results**

### Subgraph

* KO uses a mixture of public Subgraph and a currently private indexer to create a view on-top of these contracts
* Subgraph can be accessed [here](https://thegraph.com/legacy-explorer/subgraph/knownorigin/known-origin)
* Subgraph source code be accessed [here](https://github.com/knownorigin/known-origin-subgraph)

## Deployments

-----

## Mainnet

```
Core NFT - 0xABB3738f04Dc2Ec20f4AE4462c3d069d02AE045B = (verified)
AccessControls - 0x9028b16494a9363F3EAaf381a6Fde67296abc68C = (verified)
Minting Factory - 0x36CF31019816E9490959F75Ba9164eDd304De01D = (verified)
Primary marketplace - 0xf11ED77fD65840b64602526DDC38311E9923c81B = (verified)
Secondary marketplace - 0x0Eb65B4c3d3dE340e1b15384f8F211784247a37A = (verified)
Collab royalties registry - 0xe28e054d596576841682e8c993E415B3ccB2EBeB = (verified)
Omni deployer - 0x0FE06547a21AdfbA812E7d986de4369b2cB3dde2 =
V1 funds splitter - 0xbc20c6582259f440ae628819be80062a576f06ed = (verified)
V1 funds receiver - 0x643ea212F5B9E5BE9f3A000430DCc80E01C78C2C = (verified)
```

#### Gated marketplace (upgradable)
```
KODAV3GatedMarketplace Proxy - 0x8fC72C856EB661F072F0f7322449f3fcCF088f42 (verified)
- v1 - git commit 3bcd94f66e5d0f6b38881fd52971c13dd08b6974 (verified)
```

#### Minting Factory (upgradable)
```
MintingFactoryV2 Proxy - 0xcEcF098DC0F513C68a0003b540CBDAE130dD0014 (verified)
- v1 - git commit 3bcd94f66e5d0f6b38881fd52971c13dd08b6974 (verified)
- v2 - git commit 30eb2a3874ac64bc9c7e38e645f42691c7d11f13 (verified) (update = https://etherscan.io/tx/0x028943a591370069addcca490a4c1df3977f0dbed8d9a61a3460ad37c9d49e57)
```

-----

## Goerli

```
Core NFT - 0x05f5eC654fD95646609964C6c8a0e5b3156CDa08 = (verified)
AccessControls - 0x891afBaE7613103d6408817FF73d1DF97b575fd2 = (verified)
Primary marketplace - 0x6234802e9f3A550A61ee3a736fA452B19A577645 = (verified)
Secondary marketplace - 0x61151462B02C237E9D2a7Ca849Af6633683b9CEd = (verified)
Collab royalties registry - 0xed7f97eDDD34b33bB49b420Af939cD4375cA0fB0 = (verified)
Omni deployer - 0x9c094e9619d4B6bDe719C4FaE279A4F8c683c3F8 = (verified)
V1 funds splitter - 0xEeB2Bc6f52dedA185181Fc2c310222837440Cacd = (verified)
V1 funds receiver - 0x0226DaE23Bc0A8b3e71E09aC4036eC26450a006F = (verified)
```

#### Gated marketplace (upgradable)
```
KODAV3GatedMarketplace Proxy - 0x04994ebf4bfc6366c1624366d8f25e2d382fe3d0 (verified)
- v1 - git commit 5c8b8e05b96b2439b65abea52a0d30112dc97ed9
```

#### Minting Factory (upgradable)
```
MintingFactoryV2 Proxy - 0x65c7593dE25f2d56bD6088Fc1865E3b2fC85167c (verified)
- v2 - git commit 30eb2a3874ac64bc9c7e38e645f42691c7d11f13
```

## Rinkeby

```
Core NFT - 0x3abC8C65A9516D5B487A9F7423aE2C4c6a3Adf51 = (verified)
AccessControls - 0x64699bC10a4E4639eD319397200CF16fa0aD1Fc9 = (verified)
Minting Factory - 0x35668a2Fd45452231a2639edcb887cD45951e597 = (verified)
Primary marketplace - 0x4B7A8Ce7d004C5c68207F355F6A838C941FF6B96 = (verified)
Secondary marketplace - 0x1f31f522b51cd5cB847c7228fE3bF9916800aaDe = (verified)
Collab royalties registry - 0x3005BB70CF6099e919Fb2E846abC8Fa1C710f613 = (verified)
Omni deployer - 0x90764bB20aC05A53eBE03dF17fc61abAbC1Ee059 = (verified)
V1 funds splitter - 0x119f6fb742b9ace412f177875a169b23487fa664 = (verified)
V1 funds receiver - 0xb4bb0960b5095e5a0abd07d18803f45c4c4eadf6 = (verified)
```

#### Gated marketplace (upgradable)
```
KODAV3GatedMarketplace Proxy - 0x048b36a7cc30127cE2C2C8E1C6AF9c3d0D8787eC (verified)
- v1 - git commit 5c8b8e05b96b2439b65abea52a0d30112dc97ed9 (verified)
```

#### Minting Factory (upgradable)
```
MintingFactoryV2 Proxy - 0x2346b3949F8742f4e2a8B6F26D72ef358683820d (verified)
- v1 - git commit 5c8b8e05b96b2439b65abea52a0d30112dc97ed9 (verified)
- v2 - git commit 30eb2a3874ac64bc9c7e38e645f42691c7d11f13 (verified) (upgrade = https://rinkeby.etherscan.io/tx/0xc9786af3e38d65317ba01504a70ec60a3ac93019cc6658a8944a8f3416fe80cd)
```

-----

### How to?

Use `hardhat` deploy for - see `/scripts` folder for more info e.g.

`npx hardhat run --network rinkeby ./scripts/X_my_script.js`

To verify also try hardhat but this sometimes fails, and you need to use the flat contracts.