Wallets
Wallet options for Selendra
Wallet options for development and end-users.
Browser Wallets
MetaMask (EVM)
// Testnet
const selendraTestnet = {
chainId: "0x7A1", // 1953
chainName: "Selendra Testnet",
nativeCurrency: { name: "SEL", symbol: "SEL", decimals: 18 },
rpcUrls: ["https://rpc-testnet.selendra.org"],
blockExplorerUrls: ["https://explorer-testnet.selendra.org"],
};
// Mainnet
const selendraMainnet = {
chainId: "0x7A9", // 1961
chainName: "Selendra Mainnet",
nativeCurrency: { name: "SEL", symbol: "SEL", decimals: 18 },
rpcUrls: ["https://rpc.selendra.org"],
blockExplorerUrls: ["https://explorer.selendra.org"],
};
// Add to MetaMask
await window.ethereum.request({
method: "wallet_addEthereumChain",
params: [selendraMainnet],
});
Polkadot.js Extension
For Substrate features: staking, governance, multi-account management.
Mobile Wallets
- Nova Wallet - EVM + Substrate, staking
- SubWallet - Substrate ecosystem
Integration
// Connect wallet
async function connect() {
const accounts = await window.ethereum.request({
method: "eth_requestAccounts",
});
return accounts[0];
}
// Listen for changes
window.ethereum.on("accountsChanged", (accounts) => {
console.log("Account:", accounts[0]);
});
window.ethereum.on("chainChanged", () => {
window.location.reload();
});
React Hook
export function useWallet() {
const [account, setAccount] = useState(null);
const connect = async () => {
const accounts = await window.ethereum.request({
method: "eth_requestAccounts",
});
setAccount(accounts[0]);
};
return { account, connect };
}
Transaction Signing
// EVM
const txHash = await window.ethereum.request({
method: "eth_sendTransaction",
params: [{
to: recipient,
value: amount,
gas: "0x5208",
}],
});
// Substrate
import { web3FromSource } from "@polkadot/extension-dapp";
const injector = await web3FromSource(account.meta.source);
await tx.signAndSend(account.address, { signer: injector.signer });
Wallet Selection
| Use Case | Wallet |
|---|---|
| Development | MetaMask / Polkadot.js |
| Mobile | Nova / SubWallet |
| High Security | Hardware + Extension |
| Staking | Polkadot.js / Nova |
Security
Developers: Never store keys in frontend, use env variables
Users: Hardware wallets for large amounts, verify transactions, keep software updated
Next: Wallet Integration Guide
Contribute
Found an issue or want to contribute?
Help us improve this documentation by editing this page on GitHub.
