Part 3 · Smart Contract & Collection Factory

SUIBORG Collection Contract

Deployed to SUI Mainnet under the SUI Native Object Standard — the only standard that lets every Borg evolve, react, and live on-chain. Mint-on-Demand: we never hold the NFTs. The contract creates each one directly into the user's wallet at the moment it is earned.

VERIFIED AUDITED IMMUTABLE NON-CUSTODIAL
Live Supply · On-Chain
Mint-on-Demand Counter
SuiScan
Max Supply
10,000
Immutable
Minted
2,847
28.47%
Remaining
7,153
Awaiting trigger
Held by Team
0
100% to users
Distribution Progress2,847 / 10,000
Holders
1,902
Unique wallets · queried live
Mints / minute
0
Gasless dispatch via factory
Last Mint
Listening to chain…

CONTROLLED BY SUIBORG PROTOCOL0 NFTs held by team or insiders. 100% fair distribution. Every asset is minted directly into the user's wallet at the moment of acquisition.

Contract Specification

Standard
SUI Native Object (Dynamic Fields)
Network
SUI Mainnet
Package ID
0xpkg::suiborg::collection
Collection Object
0xB07G…SUIBORG…C0LL3CT10N…F4CT0RY…2026
Treasury / Deployer
0x5U1B0RG…PR0T0C0L…TR3A5URY…0xWALLET
Max Supply
10,000 — hard-capped, IMMUTABLE
Mint Model
On-Demand · 0 pre-mint · 0 reserve
Upgrade Policy
UpgradeCap burned — code is final
Royalties
2.5% → Rescue Pool (enforced on-chain)
mint_entry · moveverified
public entry fun mint(
    collection: &mut Collection,
    cap: &TreasuryCap,
    recipient: address,
    seed: vector<u8>,
    ctx: &mut TxContext,
) {
    assert!(collection.supply < MAX_SUPPLY, E_SOLD_OUT);
    let traits = vrf::roll(seed, ctx);            // verifiable randomness
    let cid   = walrus::resolve(&traits);         // decentralised storage
    let borg  = SuiBorg {
        id: object::new(ctx),
        number: collection.supply + 1,
        traits, cid,
        status: dynamic_field::new(),             // living state
        minted_at: tx_context::epoch(ctx),
    };
    collection.supply = collection.supply + 1;
    transfer::public_transfer(borg, recipient);   // → user wallet
}

Live Mint Feed

Streaming
  • Awaiting next factory call…

Security Guarantees

  • Supply hard-capped at 10,000 — `assert!(supply < MAX)` in `mint_entry`
  • Mint authority bound to ProtocolTreasury cap object — no admin EOA
  • Trait roll uses on-chain VRF + commit-reveal seed (no off-chain randomness)
  • No `update_metadata`, no `set_supply`, no `transfer_admin` — entry points removed at publish
  • Module published with `friend`-less surface — only public mint + view functions
  • Upgrade policy: IMMUTABLE (UpgradeCap burned at TX #0)
  • Asset CIDs stored on-object — cannot be swapped, even by deployer

Infrastructure Stack

Storage, oracles and payment rails wired into the factory.

PINNED
Filecoin

Permanent cold storage for all 7 trait layers + base breed art

LIVE
Walrus Protocol

SUI-native blob storage — hot read path for live NFT rendering

MIRROR
IPFS

Content-addressed mirror — CIDs embedded in every minted object

ORACLE
Helium Network

Decentralised oracle — verifies uniqueness and provenance signatures

CONNECTED
Pi Network

Accepted asset connector — Pi can be used for distribution / payment

Decentralised Storage — Permanent · Cannot be lost or altered

Mint-on-Demand Flow

No NFT exists until the user earns or buys it. The factory builds it on the spot, into their wallet.

  1. STEP 1
    User Trigger
    Earn / buy / claim event in the app or bot
  2. STEP 2
    Factory Call
    Contract checks `supply < 10,000`
  3. STEP 3
    VRF Roll
    On-chain randomness + trait rules
  4. STEP 4
    Storage Resolve
    Walrus + IPFS CID embedded
  5. STEP 5
    Direct Transfer
    Object created in user's wallet
Zero pre-mint. No team wallet ever touches a SUIBORG NFT. This is on-chain provable — see SuiScan ownership history.
Audit & Proof

Every claim has an on-chain receipt.

Read the contract, watch the mints, verify the storage CIDs. Nothing is hidden.