Dashboard
Live testnet status · on-chain owner actions.
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.
| Check | Status | Details |
|---|
Contract info
Proxy / implementation address · chain info. Read directly from the EIP-1967 impl slot.
| Field | Value | Link |
|---|---|---|
| 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.
Address lookup
/v1/names/{address} owned name list · /v1/reverse/{address} primary name.
Price lookup
/v1/pricing/{label}?years=N · annualCtc / totalCtc / restricted / claim policy.
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.
| Field | Value |
|---|---|
| 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.)
Short-name claim
setShortNameClaim(string label, address claimant) — assign a 1-3 character label so a specific wallet can claim it. Owner only.
Metadata Repair
Replace the stored metadata URI on-chain. setMetadataURI(string label, string uri) — owner or the name's holder.
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).
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))).
| Field | Value |
|---|---|
| Enter a name and press Lookup. | |
Repair · setMetadataURI
setMetadataURI(string label, string uri) — owner only. Replaces the stored URI with the canonical one.
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.
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.
Ownership transfer (2-step)
transferOwnership(next) → the new owner calls acceptOwnership(). To undo a mistake, cancelOwnershipTransfer().
Operators
setOperator(address operator, bool allowed) — owner only. Operators can run setReserved / setShortNameClaim / setMetadataURI. Treasury and ownership stay owner-only.
operators(address) via eth_call. Works read-only, no wallet required.Activity log
Local log for this browser session.