Contract fb536966da5b8eff27d348fc8803d4942672c7aa01d2c1ec76540767afc49568

← Back to Index 📥 Download WASM

Meta

cliver 26.0.0#60f7458e7ecffddf2f2d91dc6d0d2db4fab03ecc
rssdkver 25.3.1#e50d95af029c83196dd122f0154bac3f1302394b
rsver 1.93.0

Interface

SEP-0050: Collection name

fn name(env: soroban_sdk::Env) -> soroban_sdk::String

Renew a domain (extend expiry, add vault deposit)

fn renew(
    env: soroban_sdk::Env,
    caller: soroban_sdk::Address,
    node: soroban_sdk::BytesN<32>,
    additional_years: u32,
) -> Result<(), soroban_sdk::Error>

SEP-0050: Collection symbol

fn symbol(env: soroban_sdk::Env) -> soroban_sdk::String

SEP-0050: Approve a single token for a spender Events: ["approve", owner, token_id] data: [approved, live_until_ledger]

fn approve(
    env: soroban_sdk::Env,
    approver: soroban_sdk::Address,
    approved: soroban_sdk::Address,
    token_id: u128,
    live_until_ledger: u32,
) -> Result<(), soroban_sdk::Error>

SEP-0050: Returns the number of NFTs owned by owner

fn balance(env: soroban_sdk::Env, owner: soroban_sdk::Address) -> u128
fn resolve(
    env: soroban_sdk::Env,
    domain: soroban_sdk::String,
    tld: soroban_sdk::String,
) -> Result
fn upgrade(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    new_wasm_hash: soroban_sdk::BytesN<32>,
) -> Result<(), soroban_sdk::Error>

SEP-0050: Returns the owner of a token by its numeric ID Panics if the token does not exist (per spec)

fn owner_of(env: soroban_sdk::Env, token_id: u128) -> soroban_sdk::Address

Register a new domain with USDC payment splitting

fn register(
    env: soroban_sdk::Env,
    caller: soroban_sdk::Address,
    domain: soroban_sdk::String,
    tld: soroban_sdk::String,
    duration_years: u32,
) -> Result, soroban_sdk::Error>

Transfer domain ownership — blocked for Production domains Vault shares follow the domain automatically

fn transfer(
    env: soroban_sdk::Env,
    from: soroban_sdk::Address,
    to: soroban_sdk::Address,
    node: soroban_sdk::BytesN<32>,
) -> Result<(), soroban_sdk::Error>
fn get_price(
    env: soroban_sdk::Env,
    domain_length: u32,
    duration_years: u32,
) -> Result
fn set_admin(
    env: soroban_sdk::Env,
    current_admin: soroban_sdk::Address,
    new_admin: soroban_sdk::Address,
) -> Result<(), soroban_sdk::Error>

SEP-0050: Token metadata URI Panics if token does not exist (per spec)

fn token_uri(env: soroban_sdk::Env, token_id: u128) -> soroban_sdk::String

Early exit: deprecated in V2 in favor of linear vault vesting

fn early_exit(
    env: soroban_sdk::Env,
    caller: soroban_sdk::Address,
    node: soroban_sdk::BytesN<32>,
) -> Result
fn extend_ttl(env: soroban_sdk::Env)

Gift renewal: anyone can extend a domain's expiry by paying the renewal fee

fn gift_renew(
    env: soroban_sdk::Env,
    caller: soroban_sdk::Address,
    node: soroban_sdk::BytesN<32>,
    additional_years: u32,
) -> Result<(), soroban_sdk::Error>

Initialize registry with admin, operator wallet, vault, and USDC token Initialize registry with admin, operator wallet, vault, USDC token, USTRY token, and Aquarius router

fn initialize(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    operator_wallet: soroban_sdk::Address,
    vault_contract: soroban_sdk::Address,
    usdc_token: soroban_sdk::Address,
    ustry_token: soroban_sdk::Address,
    aquarius_router: soroban_sdk::Address,
) -> Result<(), soroban_sdk::Error>

Set domain status (owner only: Active <-> Production)

fn set_status(
    env: soroban_sdk::Env,
    caller: soroban_sdk::Address,
    node: soroban_sdk::BytesN<32>,
    new_status: u32,
) -> Result<(), soroban_sdk::Error>
fn fix_pricing(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
) -> Result<(), soroban_sdk::Error>
fn set_records(
    env: soroban_sdk::Env,
    caller: soroban_sdk::Address,
    node: soroban_sdk::BytesN<32>,
    key: soroban_sdk::Symbol,
    value: soroban_sdk::String,
) -> Result<(), soroban_sdk::Error>

SEP-0050: Get the approved address for a token Panics if token does not exist (per spec)

fn get_approved(env: soroban_sdk::Env, token_id: u128) -> Option

Read: Get token ID for a domain node hash

fn get_token_id(env: soroban_sdk::Env, node: soroban_sdk::BytesN<32>) -> u128
fn is_available(
    env: soroban_sdk::Env,
    domain: soroban_sdk::String,
    tld: soroban_sdk::String,
) -> bool

SEP-0050: Transfer by token_id (owner-initiated) Events: ["transfer", from, to] data: [token_id]

fn nft_transfer(
    env: soroban_sdk::Env,
    from: soroban_sdk::Address,
    to: soroban_sdk::Address,
    token_id: u128,
) -> Result<(), soroban_sdk::Error>

Admin: Set base URI for NFT metadata

fn set_base_uri(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    uri: soroban_sdk::String,
) -> Result<(), soroban_sdk::Error>
fn total_minted(env: soroban_sdk::Env) -> u32

Expire a domain after grace period — auto-refund vault to owner ANYONE can call this (public — trustless cleanup)

fn expire_domain(
    env: soroban_sdk::Env,
    node: soroban_sdk::BytesN<32>,
) -> Result<(), soroban_sdk::Error>
fn set_subdomain(
    env: soroban_sdk::Env,
    caller: soroban_sdk::Address,
    parent_node: soroban_sdk::BytesN<32>,
    sub_name: soroban_sdk::String,
) -> Result, soroban_sdk::Error>

SEP-0050: Transfer by approved spender Events: ["transfer", from, to] data: [token_id]

fn transfer_from(
    env: soroban_sdk::Env,
    spender: soroban_sdk::Address,
    from: soroban_sdk::Address,
    to: soroban_sdk::Address,
    token_id: u128,
) -> Result<(), soroban_sdk::Error>
fn get_node_count(env: soroban_sdk::Env) -> u64

SEP-0050: Approve an operator for all tokens owned by owner Events: ["approve_for_all", owner] data: [operator, live_until_ledger]

fn approve_for_all(
    env: soroban_sdk::Env,
    owner: soroban_sdk::Address,
    operator: soroban_sdk::Address,
    live_until_ledger: u32,
) -> Result<(), soroban_sdk::Error>
fn reverse_resolve(
    env: soroban_sdk::Env,
    address: soroban_sdk::Address,
) -> Result, soroban_sdk::Error>

Set marketplace contract address (admin only)

fn set_marketplace(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    marketplace: soroban_sdk::Address,
) -> Result<(), soroban_sdk::Error>

Admin: set USTRY token

fn set_ustry_token(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    ustry: soroban_sdk::Address,
) -> Result<(), soroban_sdk::Error>

Read current pause status. Public, no auth required.

fn get_pause_status(env: soroban_sdk::Env) -> bool
fn get_vault_shares(env: soroban_sdk::Env, node: soroban_sdk::BytesN<32>) -> i128

SEP-0050: Check if operator is approved for all tokens of owner

fn is_approved_for_all(
    env: soroban_sdk::Env,
    owner: soroban_sdk::Address,
    operator: soroban_sdk::Address,
) -> bool

Admin: set Aquarius router

fn set_aquarius_router(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    router: soroban_sdk::Address,
) -> Result<(), soroban_sdk::Error>

Marketplace-authorized transfer (for atomic trades)

fn marketplace_transfer(
    env: soroban_sdk::Env,
    marketplace: soroban_sdk::Address,
    from: soroban_sdk::Address,
    to: soroban_sdk::Address,
    node: soroban_sdk::BytesN<32>,
) -> Result<(), soroban_sdk::Error>

Get domain attributes for dynamic NFT metadata (cross-contract reads from vault)

fn get_domain_attributes(
    env: soroban_sdk::Env,
    node: soroban_sdk::BytesN<32>,
) -> Result<
    soroban_sdk::Map,
    soroban_sdk::Error,
>

Toggle registration pause. Admin-only. When paused: register() and renew() both reject. M-03 fix: now emits RegistryPauseEvent for off-chain monitoring.

fn set_pause_registrations(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    paused: bool,
) -> Result<(), soroban_sdk::Error>

Imports

WebAssembly Text (WAT) ▶