TokenMint

Verified · Ion Swap Dark Contract · DSOL · Phase C
Contract ID
dc1_de9e90dd69147c76cf464d74387bc4b6914562624715656f91ae76b36726
Code hash
977934f7f64fec3ac676ebc16bb876446834456cb5324181b85624ea185a0981
Deployer
Deploy tx
2044b57d707f9422c97ac776723b7980…
Created at block
Source
View .dsol source →
Wallet: detecting…

Entrypoints

Each form below maps directly to a contract entrypoint. Filling it in and clicking Call constructs a typed-argv DSOL call. Your wallet shows an approval modal before broadcasting; nothing fires without your explicit click.

mint

Public state

loading…

Contract source Verified

Compiler
build-1261/dark-contracts/compiler v1
Source SHA-256
eeb9aa0d52ddacfc6238a51c7f87356b00d902b4a0b799743248b5d065029b6a
Bytecode hash
977934f7f64fec3ac676ebc16bb876446834456cb5324181b85624ea185a0981
Verified by
auto (canonical mirror)
Verified at
Thu, 30 Apr 2026 03:20:40 GMT

The on-chain bytecode hash matches the SHA-256 of TokenMint's compiled output. This means the source below was the exact input the deployer used. Anyone can re-derive the same bytecode by compiling the source through build-1261/dark-contracts/compiler.

// TokenMint — Phase C of silent-iron-keystone v4.
//
// Creator-only supply mint. ABI-typed (tokenId, amount). The carrier
// fee (50 bps) is enforced by the wallet IPC + chain monitor; the
// contract validates only that the post-mint circulating supply
// stays ≤ max_supply.
//
// Privacy: creator identity hides behind one-time stealth per call
// (CryptoNote default). Mint amount is plaintext on chain (intrinsic
// for supply tracking).

dark contract TokenMint {
  // Mirror of TokenCreate's storage; enforced on every mint.
  public mapping(bytes => uint64) tokenCirculating;
  public mapping(bytes => uint64) tokenMaxSupply;
  public mapping(bytes => bool)    tokenMintable;

  @direct
  entry mint(bytes tokenId, uint64 amount) {
    require(tokenMaxSupply[tokenId] > 0,                "MINT_UNKNOWN_TOKEN");
    require(tokenMintable[tokenId],                      "MINT_FIXED_SUPPLY");
    require(amount > 0,                                  "MINT_ZERO_AMOUNT");
    require(tokenCirculating[tokenId] + amount <= tokenMaxSupply[tokenId], "MINT_EXCEEDS_MAX");

    tokenCirculating[tokenId] = tokenCirculating[tokenId] + amount;
    syscall(TOKEN_MINT_SUPPLY_V1, ctx.txHash);
  }
}
Download .dsol