Skip to main content

Accounts & Identity

An Orbinum account is a Substrate AccountId32 holding a public ORB balance. For a secp256k1 key — every standard Ethereum wallet — that account and the key's Ethereum H160 address are two views of the same account and the same balance, with no registration step.


The account model​

Substrate formEVM form
IdentifierAccountId32 (32 bytes, shown as SS58)H160 (20 bytes, 0x…)
Key typessr25519, ed25519, secp256k1secp256k1
SignsSubstrate extrinsicsEthereum transactions
Typical walletsTalisman, SubWallet; Solana walletsMetaMask, Trust Wallet

Extrinsics are verified with OrbinumSignature, which replaces Substrate's standard MultiSignature:

  • sr25519 and ed25519 accounts are the 32-byte public key. They have no H160 form and cannot be reached by a plain EVM transfer; Solidity can still pay them through the Balances precompile. An ed25519 key signs a readable text that names the transaction, never raw bytes.
  • secp256k1 (ECDSA) signatures map the signer to [H160 | 0x00×12], where H160 is the key's Ethereum address. The EVM maps an H160 to the same AccountId32, so one secp256k1 key controls one account from both sides.

The relationship is structural — computed by the runtime on every transaction, never stored — and the runtime maps only H160 → AccountId32. EVM ↔ Substrate Mapping has the derivation, every signature variant and the code.


Solana wallets​

A Solana account is an ed25519 key, so it is also an Orbinum account: its AccountId32 is the 32 key bytes. Phantom, Solflare and Backpack connect to Orbinum as they are.

Example
Solana spelling (base58)FHNpKmJrUtusuvKPGomAygQqeiks98bdV6yD61Stb6vg
SS58 spelling5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY

Both strings name the same account and the same ORB balance. The two chains share the key, not funds: nothing held on Solana appears on Orbinum, and the reverse.

  • Only the wallet's main address is an account. A Solana token account (ATA) or program-derived address (PDA) is not a key anyone can sign with, so ORB sent to it on Orbinum cannot be moved.
  • No checksum. A Solana address is bare base58. The app shows the SS58 account a Solana-format recipient resolves to before you confirm a send or an unshield.
  • Signing. The wallet signs the transaction's text with signMessage — see Ed25519 signs the transaction text.

Accounts and the shielded pool​

An account is the public side of the shielded pool:

  • Shielding moves ORB from an account into a private note. The account signs the shield — as a Substrate extrinsic or through the shielded-pool precompile — and pays its gas.
  • Unshielding pays ORB out of a note into an account, named as the recipient.
  • Private transfers and unshields are unsigned. No account signs them or pays their gas; the zero-knowledge proof authorises them and the spend fee comes out of the note.

The keys that own notes are not account keys. They are Baby JubJub keys derived from one signature of the account — see Keys & Identity. The account therefore determines the privacy identity: the same account on the same chain always reproduces the same keys, and a different account has a different identity. The app derives them from an EVM, sr25519 or ed25519 account (Ledger and Solana wallets included), provided the wallet signs deterministically.