Dashboard

Live testnet status · on-chain owner actions.

Testnet 102031 Read-only

CNS Operations

Reads live testnet status directly from RPC / API. Connect an owner wallet to run on-chain owner actions on the pages below.

RPC block

-Latest Creditcoin Testnet block.

Total supply

-Current CNS ERC-721 supply.

Contract balance

-CTC held by the contract (withdrawable).

Name / Symbol

-ERC-721 name() / symbol().

Owner

-Current contract owner (enforces onlyOwner).

Pending owner

-Pending ownership transfer address (requires acceptOwnership).

System health

Same-origin API and RPC status.

CheckStatusDetails

Contract info

Proxy / implementation address · chain info. Read directly from the EIP-1967 impl slot.

FieldValueLink
Loading...

Lookup

Read-only lookups for customer support (CS). Works without a wallet. Uses the same-origin API first, and where the API is off it falls back to on-chain RPC for the items that support it.

Name lookup

/v1/resolve/{name} · owner / status / 10 records / locks. Reservation and short-name claim are additionally read on-chain.

Enter a name and press Lookup.

Address lookup

/v1/names/{address} owned name list · /v1/reverse/{address} primary name.

Enter an address and press Lookup.

Price lookup

/v1/pricing/{label}?years=N · annualCtc / totalCtc / restricted / claim policy.

Enter a label and years, then press Lookup.

Names & Reserve

Look up a label's availability, reservation state, and short-name claim, then run setReserved / setShortNameClaim on-chain with owner privileges.

Label lookup

Read directly from RPC. Works without a wallet.

tokenId = uint256(labelHash) · labelHash = keccak256(utf8(label))
FieldValue
Enter a label and press Lookup.

Reserve / Unreserve

setReserved(string label, bool isReserved) — owner or operator. Reserved names are blocked from public registration. Use this to moderate names: reserve brand names, impersonation attempts, or any offensive/abusive label. (The app also ships a built-in offensive-word filter; this on-chain list covers anything beyond it and applies to every interface.)

-
Connect an owner or operator wallet. Read-only wallets have no write access.

Short-name claim

setShortNameClaim(string label, address claimant) — assign a 1-3 character label so a specific wallet can claim it. Owner only.

-
Connect an owner or operator wallet. Read-only wallets have no write access.

Metadata Repair

Replace the stored metadata URI on-chain. setMetadataURI(string label, string uri) — owner or the name's holder.

Note: an ipfs:// URI must first be created via a server upload (a backend that holds PINATA_JWT). This admin screen only submits the on-chain write and never holds PINATA_JWT. Do not upload files here.

setMetadataURI

The URI must start with ipfs:// (enforced by the contract).

-
Connect an owner or operator wallet. Read-only wallets have no write access. (A name's holder can also run this for their own name on-chain, but this console gates by role.)

NFT / Metadata Inspector

Computes a name's tokenId and reads the on-chain tokenURI (canonical) and metadataURIOf (stored reference) to compare them. Attempts to render the image and flags mismatches and load failures.

Inspect

Reads without a wallet. tokenId = uint256(keccak256(utf8(label))).

FieldValue
Enter a name and press Lookup.
No image

Repair · setMetadataURI

setMetadataURI(string label, string uri) — owner only. Replaces the stored URI with the canonical one.

Note: an ipfs:// URI must first be created via a server upload (a backend that holds PINATA_JWT). This console only submits the on-chain write and holds no secrets.
-
Connect an owner or operator wallet. Read-only wallets have no write access.

Ownership & Funds

Withdraw the contract balance and run a two-step ownership transfer on-chain. These are dangerous actions, so always double-check the address.

Withdraw

withdraw(address to) — withdraw the contract's CTC balance to a target address. Owner only.

Balance -
-
Connect an owner wallet. The current wallet has no write access.

Ownership transfer (2-step)

transferOwnership(next) → the new owner calls acceptOwnership(). To undo a mistake, cancelOwnershipTransfer().

-
Connect an owner wallet. The current wallet has no write access.

Operators

setOperator(address operator, bool allowed) — owner only. Operators can run setReserved / setShortNameClaim / setMetadataURI. Treasury and ownership stay owner-only.

-
Connect an owner wallet. The current wallet has no write access.
Reads operators(address) via eth_call. Works read-only, no wallet required.

Activity log

Local log for this browser session.