Contract 21d2c897a107ff620a561be90366c8f998e716609223bf87788e23b3766f773c

← Back to Index 📥 Download WASM

Meta

cliver 23.4.0#fc6745f3d4e90d1ef68d14d0ae947404768fa5c0
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: owner forfeits domain before expiry, gets 95% - time-value fee

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

Initialize registry with admin, operator wallet, vault, and USDC token

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,
) -> 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>

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>
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

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>

Imports

WebAssembly Text (WAT) ▶