Selendra

Documentation

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 CaseWallet
DevelopmentMetaMask / Polkadot.js
MobileNova / SubWallet
High SecurityHardware + Extension
StakingPolkadot.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.

Edit this page on GitHub