https://github.com/rickhull/schnorr-platform
This is a working platform for the new Roc compiler, based off of roc-platform-template-zig (thanks @Luke Boswell !) that implements Schnorr Signatures, using libsecp256k1 from the Bitcoin project, intended for Nostr applications written in Roc.
I am very new to both Roc and Zig, so please provide constructive criticism, suggestions, enhancements, or Pull Requests!
There are other ways to achieve this result. Zig has: https://ziglang.org/documentation/master/std/#std.crypto.pcurves.secp256k1.Secp256k1
So I could provide the 3 libsecp256k1 functions directly via Zig stdlib, instead of pulling libsecp256k1 (C) from the Bitcoin source. However, I am not certain of the provenance of Zig's Secp256k1, and I know that Bitcoin's libsecp256k1 has been deliberately engineered to resist timing attacks.
@Luke Boswell said elsewhere:
If you design an idiomatic Roc module that wraps that zig functionality... you could propose the crypto primitive be added to Roc's builtins in a new ideas thread.
I called that S T R E T C H G O A L for me, personally. But keeping it in mind! :thinking:
Last updated: Feb 20 2026 at 12:27 UTC