← Back to Inaya Network
⚙️ DEVELOPER PLATFORM

Build on Inaya

@inaya-network/custody-sdk is a client-side cryptographic sovereignty SDK — encrypt, shard, anchor, and reconstruct files against a live chain, from your own app. TypeScript-first, live on the public npm registry, and used to build Inaya's own products.

View on npm ↗Source on GitHub ↗npm install @inaya-network/custody-sdk ethers

Why build on Inaya

🔑

Sovereignty by default

Encryption and sharding happen entirely client-side — in the browser or in Node — before anything leaves the device. Your app never holds a plaintext file, and neither does Inaya.

🧩

Six layers, use what you need

Crypto, on-chain anchoring, payments, metadata, analytics, and backup are each independently usable. Pull in the whole kernel or just the one client your app actually needs.

Ship in an afternoon

TypeScript-first with full .d.ts coverage, drop-in React components, a CLI for deploys, and create-inaya-dapp for a zero-to-running scaffold. The 30-second example below is real, copy-pasteable code.

🏪

Built-in distribution

Ship a static site and inaya-cli's deploy command pins it to IPFS and submits it to the Web3 App Store for review in one call — no separate hosting, no separate submission flow.

30-second quickstart

A full wallet-connected upload, start to finish.

import { InayaKernel } from "@inaya-network/custody-sdk";

const connection = await InayaKernel.connectWallet();
const salt = InayaKernel.generateSecureSalt(16);
const vaultKey = await InayaKernel.deriveVaultKey({ passkey: "user-supplied-passkey", salt });
const sharded = await InayaKernel.disperseAndSlice({ file, encryptionKey: vaultKey });

// Pin sharded.shardAlpha / sharded.shardBeta to IPFS yourself, then:
await InayaKernel.approveFeeTokens({ connection, fileSizeBytes: file.size });
const receipt = await InayaKernel.anchorToLedger({
  connection,
  fileName: sharded.filename,
  fileSizeBytes: file.size,
  dataShardAlpha: cidAlpha,
  dataShardBeta: cidBeta,
});

Six layers, one SDK

Each is independently usable — pull in the whole kernel, or just what your app needs.

🔐Cryptocrypto.js

Client-side AES-GCM-256 encryption and binary sharding. Pure JS (@noble/hashes + @noble/ciphers) — works in browsers, Node.js, and React Native alike.

⛓️On-chainindex.js

Wraps the deployed InayaCustody and InayaStaking contracts. Dual-mode: a connected browser wallet, or a server-held ethers.Wallet for signing on a user's behalf.

💳Paymentspayments.js

A typed client for the card-payment, no-wallet backend routes (Corporate Reserve, PAYG, egress checkouts). Carries zero secrets of its own.

🗂️Metadatametadata.js

Rename, move, delete, virtual folders, and sharing — an off-chain layer authenticated by wallet signatures, since the on-chain contract itself is write-once.

📊Analyticsanalytics.js

Per-wallet storage statistics, built entirely from data the SDK can already read — no new on-chain calls, no new backend surface.

🛰️Backupbackup.js

Replica redundancy status, health, and recovery for your uploaded shards across independent pinning providers.

The toolkit

Four packages, all published and installable today.

The core SDK

ethers v6 is a peer dependency, install it alongside.

npm install @inaya-network/custody-sdk ethers
Drop-in UI components

Upload, staking, and file-management widgets, documented in a live Storybook.

npm install @inaya-network/react
CLI & CI/CD tooling

inaya deploy <path> pins a static site to IPFS and submits it to the App Store in one command.

npm install -g inaya-cli
Project scaffolding

A working app wired to the SDK, ready to run.

npx create-inaya-dapp my-app

What people build

🗄️

Sovereign storage apps

Consumer or prosumer tools where users own their encryption keys outright — nothing to trust Inaya, or you, with.

🏢

Business document workflows

The Metadata and Payments clients are the same primitives Inaya's own Business Workspace is built on — rename/move/share, invoicing, corporate reserve billing.

🖼️

NFT & media galleries

Anchor large media to a real chain without paying full on-chain storage cost — the sharding + IPFS pinning layer is designed for exactly this.

🏪

App Store listings

Ship a static site, deploy it with inaya-cli, and it's reviewed and listed in Inaya's Web3 App Store — a distribution channel that ships with the SDK.

Verify this build

This page (and every page on this site) is identified by a build ID tied to the exact git commit and custody-sdk version it was built from — not a random ID that tells you nothing. Same encryption code path as mobile, since the client-side crypto consolidation described below.

Build ID:fbd55f05fe95053059757db900b375895d5c127a-sdk1.0.8-beta
custody-sdk version:1.0.8-beta

What this does and doesn't guarantee, how to reproduce a release yourself, and what content-addressed delivery means here — see docs/reproducible-builds-and-verification.md in this app's repository, and custody-sdk's own release-verification guide for the SDK package specifically.

Start building

Install the SDK, scaffold a project, or browse the source — everything above is live and public today.