Skip to content

knownorigin/known-origin-contracts-v3

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.