@opaquecash/deployments, which the chain repos emit
from their canonical deployment records:
A redeploy is therefore a regenerate + rebuild, never a code change. Higher SDK
packages (
@opaquecash/opaque, uab, stealth-chain-solana, stealth-chain-starknet,
psr-chain, psr-chain-starknet) and the reference app all source their addresses from it.
Reading addresses
Most apps use the convenience getters re-exported from@opaquecash/opaque:
OpaqueClient.create({ contracts: { ... } }).
Ethereum Sepolia (chainId: 11155111)
Default tracked tokens: native ETH plus testnet
USDC
(0x73197e8303904862d543f9706E8422F634D713cb) and USDT
(0x6Ff8Afb2aA9eB5A89Ce86c44DD460bD17C92f644).
UAB deployment details (Wormhole chain ids, fromBlock): getUabDeployment(11155111)
from @opaquecash/opaque.
Solana devnet
Starknet Sepolia (chain id 0x534e)
Testnet preview — see Starknet.
The
StealthAccount class hash is a consensus-critical constant: every Starknet
stealth address is a counterfactual deployment of this exact class.
Supported chain IDs
getSolanaDeployment("devnet") and getStarknetDeployment("sepolia") — and
do not appear in this list.
Mainnet addresses will land in the same registry when they deploy: the chain repos run
npm run generate against the mainnet records, and every consumer picks them up on
rebuild.