# Minting Contract The minting can happen over multiple blockchains. - name e.g. INCAG in case of ThreeFold - description - address, the address of this minting contract - dest_token_name e.g. INCA in case of ThreeFold - dest_chain e.g. SOLANA - link (link to more info about the minter) - multisig_accounts e.g. 9 accounts need to sign - multisig_min_signature e.g. 6 need to sign, this is for releasing the generated token INCA - smart_contract_addr: address of the smart contract ```json { "minting_contract": { "name": "INCAG", "description": "Minting contract for INCA (Internet Capacity) tokens", "address": "0xABCDEF1234567890ABCDEF1234567890ABCDEF12", "dest_token_name": "INCA", "dest_chain": "SOLANA", "link": "https://example.com/incag_minter_info", "multisig_accounts": [ "0x1111111111111111111111111111111111111111", "0x2222222222222222222222222222222222222222", "0x3333333333333333333333333333333333333333", "0x4444444444444444444444444444444444444444", "0x5555555555555555555555555555555555555555", "0x6666666666666666666666666666666666666666", "0x7777777777777777777777777777777777777777", "0x8888888888888888888888888888888888888888", "0x9999999999999999999999999999999999999999" ], "multisig_min_signature": 6, "smart_contract_addr": "0xABCDEF1234567890ABCDEF1234567890ABCDEF12", }, } ``` ## implementation diagram ```mermaid sequenceDiagram participant Requester participant MintingContract participant MultisigAccounts participant SmartContract participant DestChain Requester->>MintingContract: Request token minting MintingContract->>SmartContract: Verify request alt Request is valid SmartContract->>MultisigAccounts: Initiate signature collection loop Until multisig_min_signature reached MultisigAccounts->>MultisigAccounts: Collect signatures end MultisigAccounts-->>SmartContract: Return collected signatures alt Sufficient signatures collected SmartContract->>DestChain: Mint tokens (dest_token_name) DestChain-->>SmartContract: Confirm minting SmartContract-->>MintingContract: Minting successful MintingContract-->>Requester: Tokens minted successfully else Insufficient signatures SmartContract-->>MintingContract: Minting failed (insufficient signatures) MintingContract-->>Requester: Minting request denied end else Request is invalid SmartContract-->>MintingContract: Invalid request MintingContract-->>Requester: Minting request denied (invalid) end ```