§ Docs · T.03
Issue a view key.
A scoped, revocable decryption permission. The holder can read the matching transactions; they cannot spend, sign, or derive the spending key.
§ 01 / Scope dimensions
Four dimensions.
| Dimension | Example | What it permits |
|---|---|---|
| Date range | 2026-01-01 → 2026-12-31 | Decrypt all txs in window. |
| Amount band | ≥ 10 000 ADM | Decrypt only large transfers. |
| Counterparty | adm1examplecounterparty | Decrypt txs touching this address. |
| Contract / object | 0xobj… | Decrypt state transitions on a specific module/object. |
Dimensions compose. A view key with date range + amount band reveals only transactions matching both.
§ 02 / In code
Rust SDK.
use adamant_sdk::Wallet;
use adamant_sdk::view::{ScopeBuilder, ViewKey};
use time::Date;
let wallet = Wallet::from_seed_phrase(&std::env::var("ADM_SEED")?)?;
let scope = ScopeBuilder::new()
.date_range(Date::from_iso("2026-01-01")?, Date::from_iso("2026-12-31")?)
.amount_min(adamant_sdk::Amount::adm(10_000))
.build();
let vk: ViewKey = wallet.issue_view_key(scope)?;
// vk.encode_bech32m() -> "vkey1q..."
// Hand the string to the counterparty over any channel.
println!("{}", vk.encode_bech32m()); § 03 / Revoke
Single on-chain transaction.
wallet.revoke_view_key(&vk.fingerprint())?.submit().await?;
Revocation is recorded by derived_pubkey on-chain. The chain refuses subsequent disclosures published under that key. Already-decrypted history on the holder’s machine cannot be unlearned — design your scopes accordingly.