Skip to content

knownorigin/known-origin-contracts-v3

Folders and files

NameName
Last commit message
Last commit date
Mar 23, 2022
Oct 3, 2022
Mar 7, 2022
Apr 28, 2022
Dec 14, 2022
Dec 14, 2022
Oct 3, 2022
Apr 21, 2022
Mar 23, 2022
Feb 23, 2022
Apr 13, 2022
Dec 1, 2020
Oct 3, 2022
Aug 10, 2021
Dec 14, 2022
Aug 10, 2021
Oct 3, 2022
Mar 23, 2022
Mar 23, 2022

Repository files navigation

KnownOrigin V3 Smart Contracts

Discover, buy and collect rare digital artwork


Core Guiding Principles & Features

  • GAS efficient - every byte counts, store only what is required creator, edition size & metadata but ensuring onchain provence
  • ERC-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
  • Support for ERC-998 Top-down ERC-20 composable (optional)
    • Single composable ERC721
    • Multiple composable ERC20
  • Support for ERC-2309: Consecutive batch mint (optional)
  • Support for Rarible V2 royalties standard (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 and generated on demand via npm run gas
  • Contract size report found here 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
    • 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
    • Subgraph source code be accessed here

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.