aleo1...) but balances come in two forms:
| Balance | What it is |
|---|---|
| Public | Transparent, on-chain balance (e.g. public credits.aleo). |
| Shielded | Private balances held as encrypted records only the owner can decrypt. |
AleoWalletConnectors.
This page covers setup and common operations for both wallet types. For the
full embedded wallet API (record merging, Feemaster sponsorship, prove
transactions), see
Aleo embedded wallets.
Enabling Aleo
Enable Aleo in the dashboard
Enable Aleo (Mainnet and/or Testnet) under Chains & Networks.
Supported Wallets
| Wallet | Type | Connection Standard |
|---|---|---|
| Shield | Browser extension | Aleo Wallet Standard |
AleoWalletConnectors. The adapter registry is extensible at runtime — see
Adding a custom Aleo wallet below.
Supported Networks
| Network | Chain ID | Description |
|---|---|---|
| Mainnet | 0 | Production network |
| Testnet | 1 | Test network |
Checking if a Wallet is an Aleo Wallet
React
Address and Public Key
On Aleo, the public key and address are the samealeo1... value.
React
Reading Balances
For external wallets,getBalance returns the combined public and private
balance in ALEO credits:
React
usePrivateTokenBalances:
React
Sending
sendBalance submits a transfer_public transition. By default it sends
native credits (credits.aleo); pass token for a token program.
React
Signing Messages
React
Executing Program Transitions
requestTransaction lets you execute any Aleo program transition through the
connected external wallet. The wallet handles proving and submission.
React
Decrypting Records
If the connected wallet supports decryption, you can decrypt ciphertexts using the wallet’s view key:React
Fetching Records
Request owned records for a given program. The wallet uses its view key to scan and return matching records:React
Explorer Links
Build a Provable explorer URL for any transaction ID:React
Adding a Custom Aleo Wallet
To add support for a new Aleo wallet that uses the adapter interface, register its constructor at runtime before the connector initializes:React
'yourwallet') must match the wallet book entry key.
Shielding (Embedded Wallets)
Embedded (Dynamic WaaS) Aleo wallets can move public balances into private records and work with those records directly. These methods are only available on embedded wallets — external wallets (e.g. Shield) should userequestTransaction / requestRecords instead.
React
DynamicWidget balance view does
this for you and exposes Shielded / Unshielded tabs out of the box.
For the full embedded wallet API (prove transactions, join records, Feemaster
checks), see
Aleo embedded wallets.
Embedded vs External Wallet Operations
| Method | External | Embedded |
|---|---|---|
signMessage | Yes | Yes |
sendBalance | Yes | Yes |
getBalance | Yes | Yes |
requestTransaction | Yes | Yes |
decrypt | Yes | Yes |
requestRecords | Yes | Yes |
shieldToken | No | Yes |
proveTransaction | No | Yes |
joinRecords | No | Yes |
listOwnedRecords | No | Yes |
Ownership Boundaries
- Dynamic — connection lifecycle,
AleoWalletConnectors, theAleoWalletobject, balance/address accessors, send + shielding helpers, and (for embedded wallets) MPC key management. - External wallet (Shield) — key custody and signing for injected wallets, via the Aleo Wallet Standard.
- Your app — how you present public vs shielded balances and any shielding UX beyond the default widget.