Skip to main content

Contract Addresses

All contracts listed here are deployed on the Specter Testnet (Chain ID 5446) as part of the v4.5 release, deployed on March 4, 2026.

Core Contracts

These contracts form the foundation of Ghost Protocol:

ContractAddressDescription
CommitRevealVault0x908aA11Dc9F2e2C3F69892acaDE112e831c0a14aCentral vault for commit and reveal operations. All token commits and ZK-verified reveals route through this contract.
GhostRedemptionVerifier0xc0A9BcF60A6E4Aabf5Dd3e195b99DE2b9fac3DeeOn-chain Groth16 verifier for the ghost redemption circuit. Called by the vault during reveals.
CommitmentTree0xE29DD14998f6FE8e7862571c883090d14FE29475Append-only Merkle tree (depth 20) storing all commitments. Uses PoseidonT3 for internal node hashing.
NullifierRegistry0xaadb9c3394835B450023daA91Ad5a46beA6e43a1Tracks spent nullifiers to prevent double-reveals. A nullifier can only be marked as spent once.
NativeAssetHandler0xA0bA5389b07BAdDAaE89B8560849774Bf015acc3The sole contract authorized to invoke the ghostmint precompile (0x0808) for minting and burning native GHOST.
AssetGuard0x12d5a4d9Db0607312Fc8F8eE51FDf18D40794aD1Token registry that whitelists ERC-20 tokens for use in the commit/reveal system.
GhostERC20Factory0xE842ffe639a770a162e0b7EB9f274E49aCA8Fb95Factory for deploying privacy-enabled ERC-20 tokens via CREATE2. Auto-registers with AssetGuard.
PoseidonT30xacaef99b13d5846e3309017586de9f777da41548On-chain Poseidon hash function with 2 inputs (T3 configuration). Used by CommitmentTree for Merkle nodes.

Policy Contracts

Policy contracts enforce rules at reveal time without breaking zero-knowledge privacy:

ContractAddressDescription
PolicyRegistry0x2DC1641d5A32D6788264690D42710edC843Cb1dbOn-chain directory of registered policy contracts. Optional for discoverability.
TimelockExpiry0xd84D534E94f1eacE9BC5e9Bd90338d574d02B95cEnforces a minimum time delay before reveals are permitted, with an optional expiry after which the commitment can no longer be revealed.
DestinationRestriction0x584F2c7F6da6f25a7bF6A1F3D7F422683Ac52Ef1Restricts reveals to a specific pre-committed recipient address.
ThresholdWitness0x5814e4755C0D98218ddb752D26dD03feba428c80Requires M-of-N witness signatures to authorize a reveal.

Token Contracts

Privacy-enabled ERC-20 tokens deployed through the GhostERC20Factory:

TokenAddressDecimalsUnderlying
gLABS0x062f8a68f6386c1b448b3379abd369825bec9aa218LABS
gUSDC0x65c9091a6A45Db302a343AF460657C298FAA222D6USDC
gWETH0x923295a3e3bE5eDe29Fc408A507dA057ee044E8118WETH
gVIRTUAL0xaF12d2f962179274f243986604F97b961a4f4Cfc18VIRTUAL

Other Contracts

ContractAddressDescription
DMSRegistry0x14d5629136edAc7ef2b2E5956838b9Bb0211eB9dDead Man's Switch registry. Manages time-based automatic reveals triggered by inactivity.
HypGhostERC20Synthetic (gLABS)0xa3239B0FDEE28De133e545424F644503527E508AHyperlane warp route synthetic token for cross-chain gLABS transfers.
PersistentKeyVault0x338B0e3c722702E705357C291E151D76B8Fd9F61On-chain vault for storing persistent key metadata used by the OpenGhost data privacy system.
AccessProofVerifier0x508d326D68e5da728f8A74CB4ADB7552f7768B66Groth16 verifier for access proofs used in the persistent key / data privacy system.

Verification

To verify that a contract is deployed at the expected address, query the code at that address:

curl -s -X POST https://testnet.specterchain.com \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "eth_getCode",
"params": ["0x908aA11Dc9F2e2C3F69892acaDE112e831c0a14a", "latest"],
"id": 1
}' | jq -r '.result' | head -c 66

A non-0x result confirms deployed bytecode exists at the address.

Network Details

ParameterValue
Chain ID5446 (0x1546)
NetworkSpecter Testnet
RPC URLhttps://testnet.specterchain.com
Deploymentv4.5, March 4, 2026