Skip to main content

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.
Last modified on April 13, 2026