Overview
Mavryk (a fork of Tezos) uses the Ed25519 elliptic curve. Addresses are derived with Blake2b-160 hashing and encoded using b58cencode from @mavrykdynamics/webmavryk-utils. Transactions are built and submitted using MavrykToolkit from @mavrykdynamics/webmavryk.
This guide covers Ed25519 (mv1) addresses only. Mavryk also supports Secp256k1 (mv2), P-256 (mv3), and BLS12-381 (mv4); Dynamic’s embedded wallet flow here assumes Ed25519 keys.
Dependencies
Derive Address
Hash the Ed25519 public key with Blake2b-160 and encode with b58cencode using the MV1 prefix:
Sign a Message
Mavryk uses a 0x05 watermark for arbitrary data signing, followed by Blake2b-256 — the same scheme as the React Native example below:
Verify a Signature
Verify the Ed25519 signature against the same Blake2b-256 digest produced when signing (watermark 0x05 + message):
Check Balance
Query the MAV balance via the Mavryk node RPC:
Send a Transfer
Use MavrykToolkit with a custom signer that routes signing through Dynamic’s signMessage. The toolkit handles forging, watermarking, and injection automatically.
MavrykToolkit handles operation forging, watermarking (0x03), and injection. The custom signer applies Blake2b-256 pre-hashing before passing the digest to Dynamic’s signMessage.