Smart Contracts¶
This page shows the information of NFT smart contracts used in the Capture services, including Capture Cam and Network Actions.
CaptureClubNft (upgradeable) ¶
CaptureClubNft is the NFT (Non-Fungible Token) implementation for Capture and is upgradeable. The metadata associated with each token can include information such as name
, description
and image
of the asset follows the specification defined for the Numbers network.
Deployed Contracts¶
$ truffle networks
Network: mainnet (id: 1)
CaptureClubNft: 0xB90C5B95D7C29d1448ec079DFFeDC5905FB77711
Network: rinkeby (id: 4)
CaptureClubNft: 0xe42e09496cEA690263CA315b1Ef7c31375f0D00E
CaptureClubNftMeiMei: 0xe42e09496cEA690263CA315b1Ef7c31375f0D00E
Migrations: 0xe3E9617E8b56A4e45714a6Abf297CC258B2f6273
Ethereum¶
- Mainnet
- Contract name: CaptureClubNft
- Contract address:
0xB90C5B95D7C29d1448ec079DFFeDC5905FB77711
- ABI: https://captureclub.s3.amazonaws.com/abi/1.0.0/CaptureClubNft.json, v1.0.0
- Contract owner:
0x64f7f6b122daaD47Fc427B2B8b620D6130BCb4cE
(storage-backend) - Rinkeby
- Contract name: CaptureClubNft
- Contract address:
0xe42e09496cEA690263CA315b1Ef7c31375f0D00E
- ABI: https://captureclub.s3.amazonaws.com/abi/1.0.0/CaptureClubNft.json, v1.0.0
- Contract owner:
0x64f7f6b122daaD47Fc427B2B8b620D6130BCb4cE
(storage-backend) CaptureClubNftMeiMei
Migrations
Avalanche¶
- Mainnet
- Contract name: CaptureClubNft
- Contract address:
0xb7ccc262d322D1dC1c64CBB56A6827589b4bC874
- RPC Provider: https://api.avax.network/ext/bc/C/rpc
- Chain ID: 43114
- ABI: https://dd7tel2830j4w.cloudfront.net/f1648021879182x385075730012694140/CaptureClubNft.json, v1.1.0
- Contract owner:
0x64f7f6b122daaD47Fc427B2B8b620D6130BCb4cE
(storage-backend) - Fuji
- Contract name: CaptureClubNft
- Contract address:
0xeEa0Cda54C8D1aC82189f2c729EDd537e10C2d12
- ABI: https://dd7tel2830j4w.cloudfront.net/f1648021879182x385075730012694140/CaptureClubNft.json, v1.1.0
- Contract owner:
0x63B7076FC0A914Af543C2e5c201df6C29FCC18c5
(numdev-testnet) - NFT Example: https://testnets.nftrade.com/assets/fuji/0xeea0cda54c8d1ac82189f2c729edd537e10c2d12/0
Polygon¶
- Mainnet
- Contract name: CaptureClubNft
- Contract address:
0xb7ccc262d322D1dC1c64CBB56A6827589b4bC874
- RPC Provider: https://polygon-rpc.com/
- Chain ID: 137
- ABI: https://dd7tel2830j4w.cloudfront.net/f1648021879182x385075730012694140/CaptureClubNft.json, v1.1.0
- Contract owner:
0x64f7f6b122daaD47Fc427B2B8b620D6130BCb4cE
(storage-backend) - NFT Example: https://opensea.io/assets/matic/0xb7ccc262d322d1dc1c64cbb56a6827589b4bc874/0
- Mumbai
- Contract name: CaptureClubNft
- Contract address:
0xfbeA33fe2b266697404Dc5D1dC0A4ee9D0eDED23
- ABI: https://dd7tel2830j4w.cloudfront.net/f1648021879182x385075730012694140/CaptureClubNft.json, v1.1.0
- Contract owner:
0x63B7076FC0A914Af543C2e5c201df6C29FCC18c5
(numdev-testnet) - NFT Example: https://testnets.opensea.io/assets/mumbai/0xfbeA33fe2b266697404Dc5D1dC0A4ee9D0eDED23/0
Cheatsheet¶
$ truffle console --network mainnet
truffle(mainnet) > nft = await CaptureClubNft.deployed()
truffle(mainnet) > nft.address
'0xB90C5B95D7C29d1448ec079DFFeDC5905FB77711'
truffle(mainnet) > minter = await nft.MINTER_ROLE()
truffle(mainnet) > nft.getRoleMember(minter, 0)
'0x64f7f6b122daaD47Fc427B2B8b620D6130BCb4cE'
Child-Parent relationship ¶
Child NFTs are a type of NFT that are created based on an existing asset, which is referred to as the parent asset. Child NFTs inherit certain attributes from their parent, such as the image
, creator
, and marketplace
information. However, the asset Nid of the child NFT is different and is based on the parent asset creator's integrity wallet signature to create differentiation from the parent asset. The Nid of the child NFT is not directly associated with the asset content and only acts as an unique identifier. When creating Nit commit or reading history for child NFTs, the Nid of parent asset should be used instead of the Nid of the child NFTs. Child NFTs may be created from an asset-clone
product or as part of a series of NFTs that are sold together as a collection.
To trace the parent asset of a child NFT, one can use the parent_token
, parent_contract_address
, and parent_network
fields in the metadata of the child NFT. The parent asset and its associated NFT token can be found by searching for the token ID within the parent's blockchain network using the parent's contract address.
Testing Data ¶
ERC-721 Metadata CIDs
- Cicada:
bafybeigidnr7t2nbonsw5l5c6bxmjtl476auahmt3u4ydoctiyarbsqlze
- MeiMei fried chicken:
bafybeiaq27nzo4w2icuuikq6yuv2v4nmgtkxbv2hpyqteidrohboyyc56y
- MeiMei petdream (video):
bafybeigznnwdblg47eqgp3hisj2yoe4yvuwne4cj5xzomydwy2wwxpkurq