I'm not sure what your threat model is regarding cryptography but this is a big no-no:
<https://github.com/C-NERD/nimAptos/blob/08b838a/src/aptos/ed25519/ed25519.nim#L60-L72> You're using the standard library hex parsing which is vulnerable to timing attacks and MUST NOT be used for cryptographic keys. Either use: * a hex parser supplied by libsodium if any * or nimcrypto's: <https://github.com/cheatfate/nimcrypto/blob/71bca15/nimcrypto/utils.nim#L58-L59> * or Constantine's (disclaimer, I'm the author): <https://github.com/mratsim/constantine/blob/5952e64/constantine/serialization/codecs.nim#L101-L102> There are very unidiomatic blank lines and indents in your library after function declarations or `var` sections.