Names Architecture
BlackVault Names are ENS subnames under blackvaultwallet.eth, issued by
BlackVault’s own self-hosted name service — no third-party issuer.
Claiming (optionally paid)
app: check availability → (paid mode) transfer USDG → revenue wallet
→ claim { name, address, txHash }
service: fetch the receipt on-chain
→ verify the USDG Transfer log (from claimer, to revenue, ≥ price)
→ burn the tx hash (unique — replay-proof)
→ release the claimer's previous name → record the new one
(one atomic transaction)Because the payment check happens on-chain against the receipt, there is nothing to fake: no payment, no name; one payment, exactly one claim.
Resolution
Two paths answer “what address does this name point to?”:
- In-app — the service resolves instantly for sends and receive surfaces.
- ENS-native (CCIP-Read / ENSIP-10) — an offchain resolver on Ethereum
reverts with
OffchainLookup; the BlackVault gateway answers with the record signed (keccak(0x1900 ‖ resolver ‖ expiry ‖ hash(callData) ‖ hash(result)));resolveWithProofverifies the signature on-chain before accepting. Any ENS-aware wallet gets the same trust-minimized answer.
The gateway/resolver pair has been verified end-to-end on Sepolia; mainnet activation of the resolver is the final step for names to resolve in every wallet, everywhere.
Rules
- One name per wallet; claiming again releases the old name.
- Labels: 3–20 characters,
a–z,0–9, dashes. - Names resolve to your public address — private transfers keep using your
st:eth:…address.