For users of the dapp. No coding required. This guide covers everything from connecting your wallet to using advanced privacy and identity features.
- What is Linagee?
- Getting started — wallet setup
- Wrapping your name
- Unwrapping your name
- Managing resolver records
- ENS resolution — name.linagee.eth
- Privacy features
- Identity aggregation
- Soulbound (locking) your name
- Renting your name
- Token-bound account (TBA)
- Subnames
- NFT metadata and versioning
- Royalties
- Troubleshooting
- Glossary
Linagee is the oldest name registrar on Ethereum, deployed on August 8, 2015 — before ENS existed. Names like alice, vitalik, and satoshi were registered as raw bytes32 values on the Linagee contract. These are the true OG Ethereum names.
The Wrapper V2 turns your Linagee name into a modern ERC-721 NFT while adding:
- Real ENS resolution (your name resolves as
yourname.linagee.eth) - An on-chain identity wallet for your name
- Privacy features including stealth payments
- Compatibility with OpenSea, Blur, and every NFT marketplace
Your original Linagee name is never destroyed — unwrapping returns full ownership at any time.
- An Ethereum wallet (MetaMask, Coinbase Wallet, Rabby, or any WalletConnect-compatible wallet)
- The wrapped name dapp URL (provided by your deployment admin)
- ETH for gas fees (wrapping costs approximately 0.003–0.006 ETH depending on network congestion)
- Open the dapp in your browser
- Click Connect Wallet in the top-right corner
- Choose your wallet from the list
- Approve the connection request in your wallet
Your address will appear truncated (e.g. 0x1234...abcd) when connected.
Wrapping converts your legacy Linagee name into an ERC-721 NFT. The process uses a commit-reveal pattern to protect against frontrunning (someone else stealing your wrap).
Step 1 — Check ownership
- Go to the Wrap / Unwrap tab
- Type your name in the box without the
.og— just the raw name (e.g.alice, notalice.og) - Click Check
- If you own the name, you'll see a green confirmation
Note: Linagee names are case-sensitive.
Alice,alice, andALICEare three different names.
Step 2 — Transfer to wrapper
- Click Transfer to Wrapper
- Approve the transaction in your wallet
- Wait for the transaction to confirm (~15–30 seconds)
This transfers your Linagee name to the wrapper contract. It does not lose your ownership — the wrap in the next step will re-assign it back to you as an NFT.
Step 3 — Commit
- Click Submit Commitment
- Approve the transaction in your wallet
- Wait for confirmation
The commitment is a cryptographic hash of your address, name, and a random secret. It prevents others from frontrunning your wrap.
Step 4 — Wait ~30 seconds
The system requires at least 2 Ethereum blocks to pass after your commitment. This is typically 24–30 seconds. The dapp will warn you if you try too early.
Step 5 — Wrap
- Click Wrap Name
- Approve the transaction in your wallet
- Wait for confirmation
Your name is now an NFT! The NFT will appear in your wallet and on OpenSea within a few minutes.
- An ERC-721A NFT with a fully on-chain SVG image showing
yourname.og - The NFT is listed with metadata attributes including ENS compatibility, privacy level, and genesis year (2015)
Unwrapping burns the NFT and returns your Linagee name directly to your wallet — just as it was before wrapping.
- Go to the Wrap / Unwrap tab, scroll to Unwrap a Name
- Enter the Token ID of the name you want to unwrap (visible in your NFT wallet or on OpenSea)
- Click Unwrap
- Approve the transaction in your wallet
Warning: You cannot unwrap a soulbound name. See Section 9.
Once wrapped, your name can point to addresses, social profiles, and content — just like ENS names. Go to the Resolver Records tab.
Sets which Ethereum address your name resolves to. By default, it resolves to the NFT owner's address.
- Enter your Token ID
- Enter the address you want your name to point to
- Click Set
Use case: You want payments sent to alice.og to go to a cold wallet, not your hot wallet.
Text records attach social and profile information to your name. Supported keys:
| Key | Purpose |
|---|---|
twitter |
Twitter/X handle (e.g. @aliceog) |
github |
GitHub username |
discord |
Discord handle |
email |
Contact email |
url |
Personal website |
avatar |
Profile picture (IPFS hash or URL) |
description |
Bio / about text |
status |
Current status message |
farcaster |
Farcaster handle or FID |
You can also set any custom key you like by selecting custom in the dropdown.
Links your name to an IPFS or IPNS resource — for example, a personal website stored on IPFS.
If your name is ENS-compatible (lowercase letters and numbers, no spaces or special characters), it automatically resolves as yourname.linagee.eth in any ENS-aware application.
| Name | ENS compatible? | Resolves as |
|---|---|---|
alice |
Yes | alice.linagee.eth |
alice123 |
Yes | alice123.linagee.eth |
Alice |
Yes (folds to alice) |
alice.linagee.eth |
hello world |
No (space) | Display only |
hello! |
No (special char) | Display only |
Case collisions: If both
Aliceandaliceare registered, only the first one wrapped claims thealice.linagee.ethslot. The other still exists as an NFT with the.ogdisplay name, but has no ENS resolution route. Check the ENS Compatible badge on your name card.
Once the resolver is set up for linagee.eth, you can test in:
- MetaMask: send ETH to
yourname.linagee.eth - ENS App: visit
app.ens.domains/yourname.linagee.eth - viem / ethers.js:
provider.resolveName("yourname.linagee.eth")
Go to the Privacy & Identity tab, enter your Token ID, and choose your privacy level.
Standard resolution. Your address is publicly visible when someone looks up your name. No special configuration needed.
Your name stores a stealth meta-address — a special cryptographic key. When someone wants to pay you:
- They look up your stealth meta-address via your name
- Their wallet automatically generates a brand-new one-time address just for this payment
- The payment goes to that one-time address, which only you can access
- Your main wallet address is never revealed
To set up stealth payments:
- Generate a stealth meta-address using a compatible tool (e.g. Umbra.cash or the Fluidkey app)
- Copy your stealth meta-address (starts with
st:eth:0x...) - Paste it in the Stealth meta-address field
- Select Level 1 and click Apply Privacy Config
The viewing key (for finding incoming payments) can be shared with a trusted third-party scanning service. The spending key must always stay private.
Advanced: generates a cryptographic nullifier that lets you prove you own a Linagee name without revealing which name or which address. Used by:
- Anonymous voting systems weighted by name ownership
- Access-gated spaces where you prove OG status without deanonymising yourself
- Anonymous forums where your consistent identity is the nullifier hash
This requires a wallet that supports PLUME signatures. Configuration is done through the ZK verifier address field (set to a deployed Semaphore or Noir verifier contract).
ERC-7231 lets you bind your Web2 and Web3 identities to your name NFT, creating a verifiable identity layer that follows your name across the ecosystem.
- Create a JSON object describing your identity:
{ "twitter": "@aliceog", "github": "alice-dev", "farcaster_fid": 12345, "ens": "alice.eth", "linagee": "alice.og" } - Store this JSON on IPFS (use Pinata, web3.storage, or Fleek)
- In the Privacy & Identity tab, paste your JSON in the schema field
- Click Commit Identity Schema
- A
keccak256hash of your JSON is stored on-chain — the data stays private unless you share the IPFS link
The hash proves the identity claims haven't been tampered with, while keeping the actual data under your control.
A soulbound name cannot be transferred or sold — it is permanently bound to your wallet address. Useful if your name is your core identity anchor and you never want to risk it being transferred accidentally or through a wallet compromise.
- Go to the My Names tab
- Expand the name card (click it)
- Click Lock (Soulbound)
- Approve the transaction
This is irreversible. Once locked, the name can never be transferred. It can still be unwrapped (returning the raw Linagee name), but the NFT itself cannot move to another wallet.
You can grant another address the right to use your name (update records, act as the name) for a specified time period, without transferring ownership of the NFT.
This is configured via the contract directly (via Etherscan or a custom UI):
setUser(tokenId, renterAddress, unixTimestampExpiry)
Example use cases:
- Rent your name to a brand for a marketing campaign
- Temporarily give a friend use of your name while you're travelling
- Let an organisation manage your name's records for a conference
The rental expires automatically — no need to trust the renter to return anything.
Every wrapped name can have its own smart contract wallet, called a Token-Bound Account (TBA). This is created using the ERC-6551 standard.
- Holds assets: The TBA address can receive ETH, ERC-20 tokens, and other NFTs
- Executes transactions: As the name owner, you can instruct the TBA to interact with DeFi protocols, vote in DAOs, etc.
- Transfers with the name: If you sell the name NFT, the buyer gets control of the TBA and all assets inside it
- Go to the My Names tab
- Expand your name card
- Click Create TBA
- Approve the transaction
The TBA address is deterministic and actually exists before deployment — you can send assets to it in advance.
If you own a wrapped name, you can mint subnames from it — like having parent.og and issuing sub.parent.og to other people.
This is done via the contract's mintSubname function (currently via Etherscan or developer tools):
mintSubname(
parentTokenId, // your name's token ID
childNameBytes32, // bytes32 of the child name
recipientAddress,
expiryTimestamp // 0 for no expiry
)
Subname token IDs work identically to root names — they can have their own resolver records, TBAs, and privacy settings.
Your name NFT's on-chain SVG image shows:
- The name with
.ogsuffix - The token ID
- "Ethereum genesis · 2015" — marking its historical significance
- A soulbound badge if locked
You can add alternative metadata versions to your NFT — different visual themes, seasonal artwork, or credential-rich versions:
- Host your metadata JSON on IPFS
- In the My Names tab, expand the name card
- Use Add Version (developer tab) to add the IPFS URI
- Use Pin Version to set the active display version
All previous versions are permanently preserved — a full revision history of your name's identity.
The wrapper contract includes ERC-2981 royalty support. When your wrapped name NFT is sold on a secondary marketplace:
- A royalty percentage (configured by the contract admin, default 2.5%) goes to the protocol treasury
- This funds ongoing development and gateway infrastructure
Marketplaces that support ERC-2981 (OpenSea, Blur, LooksRare) will enforce this automatically.
"Contract is not the owner" error when wrapping
You need to transfer your Linagee name to the wrapper contract address before calling wrap. Use the dapp's Transfer step, or manually call transfer(nameId, wrapperAddress) on the Linagee contract at 0x5564886ca2C518d1964E5FCea4f423b41Db9F561.
"Too early" error when wrapping
The commit-reveal pattern requires at least 2 blocks (~24 seconds) between your commitment and your wrap. Wait a little longer and try again.
"Commitment expired" error
Commitments expire after ~250 blocks (~50 minutes). If you waited too long between committing and wrapping, you need to start over with a new commitment.
My name doesn't resolve on ENS
- Check the ENS Compatible badge on your name card — names with spaces or special characters cannot resolve via ENS
- Check if there's a Normalized Slot Conflict — another case variant of your name may have claimed the ENS slot first
- The gateway server must be running and the resolver must be set on
linagee.ethin ENS Manager
My name isn't showing on OpenSea
OpenSea indexes new NFTs within a few minutes to hours. If it's been more than 24 hours, try manually refreshing metadata on OpenSea (click the refresh button on the NFT page). The contract emits ERC-4906 metadata update events which OpenSea listens to.
I locked my name and now can't transfer it
This is by design. Soulbound names are permanently non-transferable. You can still unwrap it to recover the underlying Linagee name, but the NFT wrapper cannot move to another address.
Stealth address setup — I can't find my payments
You need to scan for incoming stealth transactions using your viewing key. Use a compatible tool like Umbra.cash or Fluidkey that implements ERC-5564 scanning. Never share your spending key.
| Term | Meaning |
|---|---|
| bytes32 | The raw format Linagee stores names in — a 32-byte hex string |
| CCIP-Read (EIP-3668) | Protocol allowing ENS to fetch data from an offchain gateway |
| Commit-reveal | Two-step process that prevents frontrunning by hiding your intent until you're ready |
| ERC-721A | Gas-efficient NFT standard used by the wrapper |
| ENSIP-10 | ENS wildcard resolution — allows *.linagee.eth to resolve without registering each name individually |
| Frontrunning | When a bot sees your transaction and submits their own first to steal the outcome |
| Normalization (ENSIP-15) | The process of standardising a name (e.g. lowercasing) before hashing it for ENS lookup |
| Soulbound | A non-transferable token permanently bound to an address |
| Stealth address | A one-time address generated for a specific payment, preserving recipient privacy |
| TBA (Token-Bound Account) | A smart contract wallet owned by an NFT (ERC-6551) |
| ZK proof | Zero-knowledge proof — proves a fact without revealing the underlying information |
| Viewing key | Used to scan for incoming stealth payments — can be shared with a trusted scanner |
| Spending key | Controls funds at stealth addresses — must always remain private |
| Nullifier | A unique identifier used in ZK systems to prevent double-actions without revealing identity |
| Gateway | The CCIP-Read server that reads from the wrapper contract and signs responses for ENS resolution |
| Royalty (ERC-2981) | A percentage of secondary sales that flows to the protocol treasury |
Linagee Wrapper V2 — built on Ethereum, honoring the 2015 genesis.