Skip to content
Block height specification no chain yet
Active validators 0 / 75 floor 7 · standby 0
Security tier not yet established
TPS · current specification
ADM in circulation 0 specification only
Network status Open view validators, blocks, mempool
Specification phase. Values shown are placeholders for layout. No live chain.
§ Developers · /developers/move

Adamant Move.

Move with privacy. Objects are typed resources with an explicit mutability declaration. Functions annotated #[shielded] run inside a Halo 2 circuit; their state transitions ship as zero-knowledge proofs alongside the transaction.

§ 01 / Hello, object

Minimal module.

module example::token {
    use adamant::object::{Self, ObjectId};
    use adamant::shielded;

    /// A shielded token note.
    #[mutability = IMMUTABLE]
    struct Note has key, store {
        id: ObjectId,
        amount: u64,
        owner_view_key_hint: vector<u8>,
    }

    /// Transfer a note shielded: prove correctness inside Halo 2.
    #[shielded]
    public fun transfer(note: Note, new_owner_hint: vector<u8>): Note {
        Note { id: object::new(), amount: note.amount, owner_view_key_hint: new_owner_hint }
    }
}

Shielded functions compile to a Halo 2 circuit; the prover (local or via the prover market) generates the proof; the chain verifies. Outside the circuit, observers see only the input/output object commitments and the validity proof.

§ 02 / Mutability

Declared at creation.

DeclarationWhat it means
IMMUTABLEObject cannot be changed after creation. Code cannot upgrade itself.
OWNER_UPGRADEABLEDesignated owner key may mutate / upgrade.
VOTE_UPGRADEABLEToken-holder vote with declared threshold.
UPGRADEABLE_UNTIL_FROZENMutable until explicitly frozen by the owner; immovable thereafter.
CUSTOMValidation logic declared at creation, fixed.

Mutability declarations are always cleartext, regardless of whether the object is shielded. Users must be able to determine mutability without trust (WP §2.5, §7.8.3).

§

Adamant Move is a narrow smart-contract platform. Every function pays gas; every shielded function carries a proof. There is no off-chain compute drain, no arbitrary state explosion. This is the trade-off for being a base layer that holds money.

— WP §6