Developer Resources
The POD and GPC libraries are available for JavaScript/TypeScript developers. Start by looking at the tutorial code here, then you can take a look at the specific packages listed below.
All code is open-source and available in the Zupass repo. Detailed documentation is at docs.pcd.team. We hope you’ll give them a try and tell us what you think.
POD Packages
@pcd/pod
Links: NPM, tutorial, docs, code
Allows creation and signing of PODs, and manipulation of their keys and values.
@pcd/pod-pcd
Links: NPM, tutorial, docs, code
Allows PODs to be issued by Podbox, stored in Zupass, and requested and manipulated in all the ways enabled by the PCD framework. A PODPCD can be displayed in Zupass with a user-friendly image and description, or as raw POD entries.
Ports to other languages
While the only fully-supported SDK for PODs is currently in TypeScript, the POD technology is portable (defined by math). Its implementation has been ported to other languages to support other projects during POD development. Note that these are not complete SDKs, but are cryptographically sound examples of cross-language compatibility.
Rust (PARCNET)
POD implementation in Rust for POD2 development. Note that this implementation does not (yet) support the terse JSON format used by the TypeScript libraries.
Python (miniPOD)
Minimal Python code to sign a POD and send it to Zupass using a URL link.
Embedded C (microPOD)
Based on the Python implementation above, this project signed and issued a POD from an embedded hardware device (Cyberduck). This was a precursor to the Cyberfrogs seen at Devcon 7 SEA in 2024. (Note that the final released Cyberfrogs do not sign PODs, but instea sign a nonce which the server verifies before issuing a POD.)