For developers: mapping concepts to the SDK
This page is the bridge from Architecture and main components to the canonical PoD SDK documentation on GitHub. It repeats a few facts on purpose so engineers can verify mental models quickly.
For a guided first implementation, read Tutorials: building Privacy on Demand (PoD) dApps to pick the integration model, then follow Tutorial: private Adder on Sepolia for a primitive-only Solidity + TypeScript walkthrough (Sepolia presets).
Official reading order (SDK)
The upstream docs recommend:
Then deep dives:
Contract references: Data types, Patterns and checklist, Request builder and remote calls, Fees, gas, and oracle
Component → source file map
Inbox
IInbox.sol and cross-domain flow in the domain model diagram.
Callback guard
InboxUser.sol (onlyInbox) — see Features.
PodLib
PodLib.sol and width-specific libraries (PodLib64, PodLib128, PodLib256).
PodUser / presets
PodUser.sol, network mixins such as PodUserSepolia.sol in Getting started.
Types (it*, ct*, gt*)
MpcCore.sol and Data types.
Custom COTI calls
MpcAbiCodec.sol and the custom mode section of Writing privacy contracts.
Client crypto
coti-pod-crypto.ts via CotiPodCrypto (TypeScript integration).
Implementation checklist (condensed)
Derived from the SDK’s Writing privacy contracts and Async execution:
Classify data — public metadata vs
it*inputs vsct*outputs vs internalgt*(COTI-only).Pick integration mode —
PodLibhelpers vs customMpcAbiCodec+ COTI contract.Model async state — persist
requestId, track pending/completed/failed.Harden callbacks —
onlyInbox, correctabi.decodetuple, validate peer context when applicable.Configure routing safely — gated
configure/configureCoti/ inbox updates.Budget fees — understand
msg.valueandcallbackFeeLocalWei; use Inbox fee views where available (Fees doc).Test failure paths — spoofed callback must revert, error callbacks must mark failures, decrypt integration must match widths.
Relationship to native COTI “build” documentation
If you build directly on COTI V2 with precompiles and private types, start from Build on COTI. PoD adds the Inbox-mediated cross-chain angle; many cryptographic ideas rhyme, but deployment and UX differ.
Package install
See Getting started for Solidity imports and the contract MyApp is PodLib, PodUserSepolia pattern.
Last updated
Was this helpful?