public static byte BLOCK_SIZE = 0x10;
public static byte[] SIG_BLOCK_IDXS = new byte[]
public static byte[] SIG_PUB_KEY = new byte[]
0x8E, 0x56, 0x7B, 0x03, 0x73, 0x42, 0x94, 0xEE,
0x2E, 0x49, 0x1C, 0x3A, 0x2D, 0xED, 0xA4, 0x6B,
0x9E, 0x18, 0x58, 0xC0, 0x89, 0x24, 0x69, 0x98,
0x60, 0xD2, 0x29, 0xE0, 0x12, 0x87, 0x25, 0x3B
public static bool VerifySignature(byte[] data)
byte[] block01 = new byte[32];
Buffer.BlockCopy(data, 0, block01, 0, block01.Length);
for (int i = 0; i < Constants.SIG_BLOCK_IDXS.Length; i++)
Buffer.BlockCopy(data, Constants.BLOCK_SIZE * Constants.SIG_BLOCK_IDXS[i], sig, i * Constants.BLOCK_SIZE, Constants.BLOCK_SIZE);
bool isSigValid = Ed25519.Verify(sig, block01, Constants.SIG_PUB_KEY);
public static void Main()
var data = Convert.FromBase64String("v1HOnr6BAQ/ENwAAAAAAFVsCAAAAAAAAAAAAABVUS1opUbinekHd/TTCOO9qerZASwsgEHzLDw8PaQAAAAAAUXEPER/I/0JU60KYl9M21rAAAAAAAAAAAAAAAAAAAAAAgkxiJ2sAvQAAAAAAAAAAAODoX5KZpX8PCGkAAAAAAACTtQvja799CBGLwa/GERHhI2ozwe/4HZRIE0NfasBguFKtc6hRxjmC5GlW2pci7wjGhYvBTmZ/DwhpAAAAAAAAxfjgjZKALenU4I4LIgwsufG02TZrAT96Z5xbVlQkGKv/K3Nzj7+S0kD2VmBxlYI4VbNhaKWHfw8IaQAAAAAAALXZTrwaD1IBevnt/fGHYOWKBM3/zX2RN3aoovjFNi3XkTOe7bNOWxrEUaHw6iKW8xlpyc8LAH8PCGkAAAAAAACQ08whUqhrC71Ht+bYvzW2LR9qsvjBLQiGaoWixx0QTAAAAAAAAAAAAAAAAAAAAACKXyNm4OF/DwhpAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArDL3NTcifw8IaQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD8EHZzcw38PCGkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANEg9gfbOsiN2/yMyqbu1SmnsEzTgcx/DwhpAAAAAAAAn0ge4BuULo14l2YOaECIoNjplL0USoVgje1ECUFppLZJx1JJ2Cj+hoxvHNPWRpASNIamemotfw8IaQAAAAAAALY8YDnuO7lamkOr2FCyOZUCdNFoorTsXFH1xLD6EdFeJP5lWdDSk937xjDXHbx10BLrcim97n8PCGkAAAAAAACyUfP60ntHf3AXwV5uUtQBCrTERvyrxIaH0sDJJQpjZQKNkSePmxDwmRBhugGG0yiB3ZiAVg9/DwhpAAAAAAAA+NTOFn7X08N76Jg0we74HRf+eYeuvblI4oGV1U5Ry8sAAAAAAAAAAAAAAAAAAAAAzQcwJ/iIfw8IaQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF4x2o4TaX8PCGkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4XA7dxKp/DwhpAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABxujk+3XrJWrQgO876t9cL62rkdC9Lfw8IaQAAAAAAAA==");
var isVerified = VerifySignature(data);
Console.WriteLine("is verified: " + isVerified);