Introduction
You have a component deployed and a front end wired up with the Radix dApp Toolkit. You click Connect, and the Radix Wallet either shows your dApp as unknown or refuses the request outright. Nothing is broken: you have not yet told the ledger that this website and these entities belong to the same dApp.
That registration is a dApp Definition β an ordinary account whose metadata has been set to describe your application. It is the hub that ties your packages, components, resources, and website together, and it is what lets the wallet tell a user that the site asking for their account is the one that owns the component it claims to own. On Mainnet it is not optional.
What the Metadata Does
A dApp Definition account carries a handful of metadata entries:
account_typeset todapp definitionβ the flag that makes the account a dApp Definition rather than a normal one.name,description,tags,icon_urlβ the display fields the wallet shows whenever your dApp sends a request. These are what turn "an unknown site wants your account" into a recognisable prompt.claimed_websitesβ the origins you assert this dApp runs on.claimed_entitiesβ the packages, components, and resources that belong to this dApp.
The claims are two-way. The account states that it owns a website, and the website has to state that it belongs to the account β which is what stops anyone from claiming your domain by writing your URL into their own metadata.
Setting One Up
Do this once your components and front end exist, since you need their addresses and origin to claim them.
- Create a fresh account in the Radix Wallet β this one becomes the dApp Definition, so keep it separate from an account you hold funds in.
- Open the Developer Console β the Stokenet console while you are learning, the Mainnet one when you ship β and connect your wallet, sharing that account.
- On Configure Metadata, enter the account address and search for it.
- Set
account_typetodapp definition, then fill in name, description, tags, and icon URL. - Fill in
claimed_websiteswith your dApp's origin, andclaimed_entitieswith your component, package, and resource addresses. - Send the transaction to the wallet and approve it. The metadata is now on-ledger.
ShardSpace is a community-built alternative to the console for creating and managing dApp definitions on both networks.
Proving the Website Side
Claiming an origin in metadata is only half the handshake. The wallet then fetches /.well-known/radix.json from that origin and expects to find the dApp Definition account address listed there:
{
"dApps": [
{ "dAppDefinitionAddress": "account_rdx12y..." }
]
}Serve that file at the exact origin you claimed β scheme, host, and port all have to match, and www.example.com is not example.com. Until both directions agree, Mainnet requests from your dApp will not reach the wallet.
When Verification Fails
- Origin mismatch β the most common cause. Check the claimed string against what the browser actually sends.
- File not served as JSON β some hosts return the SPA shell for unknown paths, so the wallet receives HTML instead of the manifest. Fetch the URL yourself and check the response body.
- Wrong network β a Stokenet dApp Definition does not verify a Mainnet dApp. They are separate accounts on separate ledgers.
- Address typo in
claimed_entitiesβ the wallet will connect, but your component will not display as part of the dApp.
Next Steps
- Radix APIs β choose the right API once your dApp needs a backend
- Radix Developer Resources β the wider index of tooling, SDKs, and community services
