For the complete documentation index, see llms.txt. This page is also available as Markdown.

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 Avalanche (PoD) dApps to pick the integration model, then follow Tutorial: private Adder on Avalanche Fuji for a primitive-only Solidity + TypeScript walkthrough (Avalanche Fuji presets).

Official reading order (SDK)

The upstream docs recommend:

Then deep dives:

Component → source file map

Concept (this book)
Where it lives in the SDK docs / repo

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 PodUserFuji.sol.

Types (it*, ct*, gt*)

Custom COTI calls

MpcAbiCodec.sol and the custom mode section of Writing privacy contracts.

Client crypto

Implementation checklist (condensed)

Derived from the SDK’s Writing privacy contracts and Async execution:

  1. Classify data — public metadata vs it* inputs vs ct* outputs vs internal gt* (COTI-only).

  2. Pick integration modePodLib helpers vs custom MpcAbiCodec + COTI contract.

  3. Model async state — persist requestId, track pending/completed/failed.

  4. Harden callbacksonlyInbox, correct abi.decode tuple, validate peer context when applicable.

  5. Configure routing safely — gated configure / configureCoti / inbox updates.

  6. Budget fees — understand msg.value and callbackFeeLocalWei; use Inbox fee views where available (Fees doc).

  7. 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

  • TypeScript: @coti-io/pod-sdk

  • Solidity: @coti-io/coti-contracts (PodLib, PodUserFuji, …) — the npm SDK does not ship contract sources

Use contract MyApp is PodLib, PodUserFuji with imports from @coti-io/coti-contracts/contracts/pod/mpc/....

Last updated

Was this helpful?