# docs.21.dev > Swift library for secp256k1 elliptic curve cryptography — ECDSA signing/verification, Schnorr signatures (BIP-340), ECDH key agreement, MuSig2 multi-signatures, public key recovery, and zero-knowledge proofs. Two modules: P256K (libsecp256k1, Bitcoin Core) and ZKP (libsecp256k1-zkp, Blockstream Elements fork). Swift 6.1+. API reference for the swift-secp256k1 package (v0.23.0), generated by Swift-DocC. Each module below has its own `llms.txt` with curated symbols and an `llms-full.txt` with all markdown files. > For a complete list of all markdown files across all modules, see [llms-full.txt](https://docs.21.dev/llms-full.txt). ## Modules - [P256K](https://docs.21.dev/data/documentation/p256k/llms.txt): Elliptic curve cryptography — key generation, ECDSA signing, Schnorr signatures (BIP-340), MuSig2 multi-signatures, ECDH key agreement, public key recovery. Wraps Bitcoin Core's `libsecp256k1`. - [ZKP](https://docs.21.dev/data/documentation/zkp/llms.txt): Zero-knowledge proofs — Pedersen commitments, range proofs, surjection proofs, ECDSA adaptors, Schnorr half-aggregation. Extends P256K with Blockstream Elements' `libsecp256k1-zkp` fork. ## Related - [21.dev llms.txt](https://21.dev/llms.txt): Hub llms.txt for the project — covers both subdomains and links here for local API context - [GitHub Repository](https://github.com/21-DOT-DEV/swift-secp256k1): Swift package source, issues, and releases - [Interactive HTML Docs](https://docs.21.dev/documentation/p256k/): Human-readable DocC reference with search and source links (requires JavaScript)