Near Address Format: How NEAR Wallet Addresses Work
In this article

The phrase “near address format” usually refers to how wallet and contract addresses look and work on the NEAR Protocol blockchain. If you plan to send NEAR, deploy a smart contract, or build a dApp, you need to understand how NEAR addresses are structured. A clear view of the NEAR address format helps you avoid mistakes, choose safe names, and debug transactions with less stress.
Introduction to NEAR Address Format
NEAR uses a human-readable account model, not the long hex strings seen on many other chains. Instead of a random-looking hash, a NEAR address can look like a username or domain, such as alice.near or my-dapp.testnet. This design makes crypto use feel closer to normal web accounts and reduces friction for new users.
Why NEAR Uses Human-Readable Addresses
Under the hood, every NEAR account still maps to cryptographic keys. The visible address is a friendly layer on top of those keys. The main benefit is that the address you share and type is easy to read and remember, which cuts down on copy-paste errors and makes support easier. This design also adds rules about names, subaccounts, and formats that you need to understand before sending funds or deploying contracts.
What Makes NEAR Address Format Different?
NEAR’s account model treats addresses as account IDs rather than bare public keys. This is different from many networks where the address is just an encoded key. NEAR accounts can own code, hold balances, and create structured subaccounts under a parent name.
Account Model Versus Key-Based Addresses
On many chains, a wallet address is a direct encoding of a public key. NEAR separates the human-readable ID from the keys, so you can rotate keys without changing the account name. This makes permission management easier, because you can attach or remove keys from a stable account ID while keeping the same visible address for users and contracts.
Two Main Types of NEAR Addresses
On NEAR, “address” usually means an account ID. There are two key types of account IDs you will see in the NEAR address format: named accounts and implicit accounts. They behave slightly differently and appear in different situations, but both can hold NEAR and interact with contracts.
Named NEAR Accounts (Human-Readable)
Named accounts are the most common NEAR addresses. They look like usernames, sometimes with dots, and are easy to share. Examples include alice.near, company.near, or myapp.testnet. These are what most people mean when they talk about a NEAR wallet address.
A named NEAR address follows simple rules. The account ID:
- Uses lowercase letters
a-z, digits0-9, and special characters_,-, and. - Has a moderate length, neither extremely short nor extremely long
- Cannot start or end with a dot, and cannot have two dots in a row
- Is unique on the network once created
Named accounts are what most users see in wallets, explorers, and dApps. They are also used for smart contracts, DAOs, and services on NEAR, because the readable format makes support, audits, and permissions easier to understand.
Implicit NEAR Accounts (Hex-Style)
Implicit accounts are the “raw” NEAR address format that maps directly to a public key. They look like a long string of hex characters with no dots. A typical implicit account has 64 hexadecimal characters, such as 6f2b9c3e8d4a...f17a, and does not suggest any human name or brand.
This type of address is created by converting a public key to hex. If someone sends NEAR to that hex address, the account can be claimed later by the holder of the matching private key. Many users never deal with implicit accounts directly, but developers and advanced users see them in logs, low-level tools, and when working with key management scripts.
Structure of a Named NEAR Address
A named NEAR address can be a simple name or can contain several parts separated by dots. These dots define subaccounts. Understanding subaccounts is important for smart contracts, dApp design, access control, and clear project organization.
Top-Level and Subaccount Layout
The rightmost part of a NEAR address is the “parent” account. Everything to the left is a subaccount. For example, in store.company.near, the parent is company.near, and store.company.near is a subaccount of that parent. Each extra segment adds another layer under the same root.
This structure allows organizations and apps to group related accounts. A company can have one main account and many subaccounts for services, bots, or contracts. The parent account controls creation and deletion of its subaccounts, which gives a clear tree of ownership and control.
Mainnet vs Testnet Address Endings
NEAR has separate networks, such as mainnet and testnet. On mainnet, accounts often end in .near, like alice.near. On testnet, addresses usually end in .testnet, for example dev-12345.testnet or app.testnet. The suffix is a simple but powerful signal of where funds live.
The address format is the same on both networks, but the suffix helps you see which network you are using. Never mix up networks when sending tokens. alice.near on mainnet is different from alice.testnet on testnet, and a mistake here can lead to failed transfers or confusion about missing balances.
How NEAR Address Format Compares to Other Blockchains
NEAR’s address format is part of a broader account model that differs from many chains. A short comparison helps you understand what to expect if you come from Ethereum, Bitcoin, or Solana. The key differences involve readability, account structure, and how contracts are addressed.
This table highlights key differences between NEAR and common blockchain address formats.
| Blockchain | Typical Address Example | Readable Style | Account Model |
|---|---|---|---|
| NEAR | alice.near, myapp.testnet, 64-char hex |
Human-readable names plus hex implicit accounts | Named accounts with subaccounts |
| Ethereum | 0x12ab...34cd |
Hex string, optional ENS on top | Hex addresses, contracts share format |
| Bitcoin | bc1qxy...0sl5 |
Base58 or Bech32 strings | UTXO-based, no named accounts |
| Solana | 7Gg8...pZ9f |
Base58 public keys | Key-pair addresses, programs separate |
NEAR pushes human-readable names into the core protocol, while Ethereum and several others add readable names as a separate naming service. This choice affects how wallets, explorers, and smart contracts handle permissions, address lookup, and user support, because the readable name is the primary identifier rather than an optional add-on.
How to Read and Validate a NEAR Address
Before you send funds or call a contract, you should check that a NEAR address is valid. A few simple checks catch most mistakes. These checks are quick to apply and can save you from sending tokens to a broken or fake account ID.
Visual Checks for Named Accounts
For a named account, first look for illegal characters. The NEAR address format does not allow spaces, uppercase letters, or symbols like @, #, or $. Every letter should be lowercase, and only ., -, and _ are allowed as extra characters, so any other symbol is a warning sign.
Next, check the dots. The address should not start or end with a dot, and you should not see two dots in a row. If the account ends in .near or .testnet, make sure you are on the matching network in your wallet. When in doubt, compare the address with a known good source, such as a contract’s official account ID.
Checks for Implicit Hex Accounts
For an implicit NEAR address, count the characters and scan for valid hex. The string should be 64 characters long, using only 0-9 and a-f. There are no dots in this type of address, and any letter outside this range is a sign of a broken or fake address.
If the address passes these basic checks, you can then use a block explorer to confirm whether the account exists, has a balance, or has deployed code. This final check helps you catch typos that still look valid under the simple rules but point to a different account.
Step-by-Step: Creating and Using a NEAR Address Safely
A simple, repeatable process helps you create and use NEAR addresses with fewer errors. Follow these steps whenever you set up a new account and send funds, especially when you are handling larger amounts or contract interactions.
- Open a trusted NEAR wallet and confirm the correct network (mainnet or testnet).
- Choose a clear account name that is easy to read and hard to confuse.
- Check that the name uses only lowercase letters, digits, dots, dashes, or underscores.
- Let the wallet register the account and store your recovery phrase or keys in a safe place.
- Copy the new NEAR address and paste it into a block explorer to confirm it exists.
- For your first transfer, send a very small amount of NEAR to this address.
- Verify that the balance updated as expected before sending larger amounts.
- When sharing your address, copy and paste instead of typing it by hand.
This ordered routine reduces risk for both new and experienced users. Over time, the steps become habit, and you are less likely to lose funds because of small address mistakes, wrong networks, or copied addresses from untrusted sources.
Creating NEAR Addresses in Practice
How you create a NEAR address depends on whether you are a regular user or a developer. Wallets hide many details and focus on ease of use, while developer tools expose more control over keys, account IDs, and subaccount structure for complex projects.
Wallet-Based Account Creation
Most users create a NEAR address through a wallet interface. The wallet asks you to pick a name, checks that the name is free, and then registers that account on-chain. Behind the scenes, the wallet creates keys, links them to your new account ID, and may show you a recovery phrase to store safely.
Some wallets also support implicit accounts. In that case, the wallet shows you a long hex address based on your public key. You can send NEAR to that address, then later turn it into a named account when you are ready, which gives you a smoother upgrade path from a raw key to a friendly name.
Developer Tools and Programmatic Accounts
Developers often create NEAR addresses using command-line tools or scripts. A common pattern is to use a main account, then create subaccounts for contracts, test users, or services. For example, a project might create contract.app.near or bot.app.near as children of app.near, keeping each role separate.
This pattern gives clear structure and helps with permission design. The parent account can manage keys, deploy code, and control access across its subaccounts, while logs and support tickets can reference specific subaccounts by name rather than relying on opaque hashes.
Using NEAR Address Format Safely
NEAR’s friendly address style reduces some types of mistakes, but you still need safe habits. Small errors in an account ID can send funds to the wrong place or fail a transaction, and social tricks can still trick users into sending to the wrong address.
Safety Checklist for Everyday Use
Before you send NEAR or call a contract, use this quick checklist for NEAR addresses. These simple checks give you a safety net without adding much time to each transaction.
- Confirm the network (mainnet or testnet) matches the address ending.
- Check for typos, missing letters, or swapped characters in the account name.
- Look for illegal characters or uppercase letters; valid NEAR IDs are lowercase.
- For contracts, confirm the exact account ID from a trusted source.
- Use a block explorer to see if the account exists and has code or a balance.
- For large transfers, send a small test amount to the NEAR address first.
These habits take a few extra seconds but can prevent lost funds. Human-readable names are easier to check than long hashes, yet social engineering and lookalike names are still risks, so combining visual checks with explorer checks is the safest approach.
Common Mistakes With NEAR Addresses
Many issues with the NEAR address format come from mixing up networks or copying names from untrusted sources. Understanding frequent mistakes helps you avoid them and debug problems faster when a transaction does not behave as expected.
Network Confusion and Wrong Suffix
One of the most common errors is using a testnet address on mainnet, or the other way around. For example, sending tokens from a mainnet wallet to alice.testnet will fail or behave in unexpected ways, because that address belongs to a different network with a separate state and balances.
Always check both the wallet’s selected network and the account suffix. Mainnet accounts often end with .near, while testnet accounts end with .testnet. If those do not match, stop and fix the settings before sending anything, and consider doing a tiny test transfer after any network change.
Lookalike Names and Phishing
Because NEAR addresses are readable, attackers can create names that look close to real ones. For example, they might replace a letter with a similar-looking character or add an extra symbol. The NEAR address format limits allowed characters, but small changes are still possible and can trick a quick glance.
To stay safe, never rely on a NEAR address sent in an untrusted message or chat. Instead, get the account ID from a reliable source, or confirm it through a second communication channel. For large transfers, verify the address with the recipient before you send funds, and keep a known-good address book inside your wallet where possible.
Key Takeaways and Quick FAQ on NEAR Address Format
NEAR’s address format is built around human-readable account IDs, with support for both named and implicit accounts. Named accounts look like user.near and support subaccounts, while implicit accounts use 64-character hex strings linked directly to keys. Simple rules and a short checklist help you stay safe.
Summary and Common Questions
In summary, learn the basic rules for valid names, subaccounts, and network suffixes so you can read and use NEAR addresses with confidence. Combine that knowledge with simple safety checks and a clear step-by-step routine, and you lower the chance of errors or scams while working with NEAR Protocol. If you remember that readable names are primary, suffixes mark networks, and hex strings are implicit accounts, you already understand the core of the NEAR address format.


