ββββββββ βββ βββββββ ββββββββ βββ ββββββββ ββββββββ βββ ββββββββ ββββββββ βββ βββββββ ββββββββ βββ βββ ββββββββ βββ βββ
Privacy is not a feature. It's a right.
The privacy layer for cross-chain transactions via NEAR Intents + Zcash
One toggle to shield them all β’ Stealth addresses β’ Zero-knowledge proofs β’ Selective disclosure β’ Multi-chain support
π Winner β Zypherpunk Hackathon ($6,500: NEAR $4,000 + Tachyon $500 + pumpfun $2,000) | #9 of 93 | 3 Tracks π₯ 1st Place β Solana Graveyard Hackathon | Torque Sponsor Track ($750)
- What is SIP?
- Quick Preview
- The Problem
- The Solution
- Key Features
- Installation
- Quick Start
- Architecture
- Packages
- Infrastructure
- Roadmap
- Tech Stack
- Development
- Contributing
- Security
- License
- Acknowledgments
SIP (Shielded Intents Protocol) brings HTTPS-level privacy to cross-chain transactions. Just as HTTPS encrypted the web without changing how users browse, SIP adds privacy to blockchain intents without changing how users swap.
HTTP β HTTPS (Web privacy upgrade)
Intents β SIP (Blockchain privacy upgrade)
Stop exposing your financial activity. Start swapping privately.
| β Public Intent (Everyone sees everything) | β Shielded Intent (Solvers see only what they need) |
|---|---|
{
from: "0x1234...",
inputAmount: 10,
inputToken: "SOL",
outputToken: "ETH",
recipient: "0x5678..."
}Exposed:
|
{
intentId: "abc123",
outputToken: "ETH",
minOutput: 0.004,
inputCommitment: "0xabc...",
recipientStealth: "0xdef...",
proof: "0x123..."
}Protected:
|
Result: Solvers can fulfill your intent without knowing who you are or where the funds are going.
Current cross-chain solutions expose everything about your transactions. This isn't just inconvenient β it's a security risk.
| Data Point | Visibility | Risk |
|---|---|---|
| Sender Address | Public | Targeted phishing, social engineering |
| Transaction Amount | Public | Front-running, MEV extraction |
| Recipient Address | Public | Surveillance, address clustering |
| Transaction History | Permanent | Financial profiling, discrimination |
| Attack Vector | How It Works | Impact |
|---|---|---|
| Front-Running | Bots see your pending swap, execute first | You get worse price |
| MEV Extraction | Validators reorder txs to profit | Value extracted from you |
| Phishing | Attackers identify high-value wallets | Direct theft attempts |
| Surveillance | Exchanges/govts track all activity | Privacy violation |
| Price Discrimination | Services see your balance | Higher fees for wealthy users |
The blockchain is a public ledger. Without privacy, it's a surveillance system.
SIP wraps cross-chain intents in a cryptographic privacy layer using battle-tested technology from Zcash and cutting-edge stealth address schemes.
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β USER β
β β β
β βΌ β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β SIP SDK β β
β β βββββββββββββββ βββββββββββββββ βββββββββββββββββββ β β
β β β Privacy β β Stealth β β ZK Proof β β β
β β β Toggle β β Address Gen β β Generation β β β
β β βββββββββββββββ βββββββββββββββ βββββββββββββββββββ β β
β βββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββ β
β β β
β βΌ β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β SHIELDED INTENT LAYER β β
β β β’ Pedersen commitments (hide amounts) β β
β β β’ Stealth addresses (hide recipients) β β
β β β’ ZK proofs (prove validity without revealing data) β β
β βββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββ β
β β β
β βΌ β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β NEAR INTENTS ROUTER β β
β β β’ Intent matching β β
β β β’ Solver network β β
β β β’ Cross-chain execution β β
β βββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββ β
β β β
β βββββββββββββββββΌββββββββββββββββ β
β βΌ βΌ βΌ β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ β
β β Solana β β Zcash β β Ethereum β β
β β β β (Privacy β β β β
β β β β Backbone) β β β β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
| Mechanism | Purpose | Technology |
|---|---|---|
| Pedersen Commitments | Hide transaction amounts | value * G + blinding * H |
| Stealth Addresses | One-time recipient addresses | EIP-5564 style, secp256k1 |
| ZK Proofs | Prove validity without revealing data | Zcash proving system |
| Viewing Keys | Selective disclosure for compliance | Derived key pairs |
Toggle between public and shielded modes with a single switch. No complex setup, no key management headaches.
Works across Solana, Ethereum, NEAR, and more. Privacy shouldn't be chain-specific.
| Level | Description | Use Case |
|---|---|---|
TRANSPARENT |
Standard public transaction | When privacy isn't needed |
SHIELDED |
Full privacy via Zcash pool | Personal transactions |
COMPLIANT |
Privacy + viewing key | Institutional/regulatory |
Every transaction uses a fresh one-time address. No address reuse, no transaction linkability.
Selective disclosure for audits and compliance. Prove your transaction history without exposing it to everyone.
Hidden amounts and recipients mean front-runners can't extract value from your trades.
Same swap interface you're used to. Privacy happens under the hood.
# npm
npm install @sip-protocol/sdk
# pnpm
pnpm add @sip-protocol/sdk
# yarn
yarn add @sip-protocol/sdkimport { SIP, PrivacyLevel } from '@sip-protocol/sdk';
const sip = new SIP({
network: 'mainnet', // NEAR Intents is mainnet-only (no testnet)
});Note: NEAR Intents (1Click API) operates on mainnet only. There is no testnet deployment. For testing: use
MockSolverfor unit tests, or small mainnet amounts ($5-10) for integration testing.
const intent = await sip.createIntent({
input: {
chain: 'solana',
token: 'SOL',
amount: 10,
},
output: {
chain: 'ethereum',
token: 'ETH',
},
privacy: PrivacyLevel.SHIELDED,
});// Solvers compete to fill your intent
const quotes = await intent.getQuotes();
// Execute with the best quote
const result = await intent.execute(quotes[0]);
console.log(result.status); // 'fulfilled'
console.log(result.txHash); // null (shielded!)
console.log(result.proof); // ZK proof of execution// Public mode (standard intent, no privacy)
privacy: PrivacyLevel.TRANSPARENT
// Full privacy (via Zcash shielded pool)
privacy: PrivacyLevel.SHIELDED
// Privacy + audit capability (for institutions)
privacy: PrivacyLevel.COMPLIANT,
viewingKey: generateViewingKey()Full architecture documentation: docs/ARCHITECTURE.md
Design decisions: Why Noir over Halo2?
sip-protocol/
βββ examples/ # Integration examples
β βββ private-swap/ # Private swap example
β βββ private-payment/ # Stealth payment example
β βββ compliance/ # Viewing key example
βββ packages/
β βββ sdk/ # @sip-protocol/sdk
β β βββ src/stealth.ts # Stealth address generation
β β βββ src/intent.ts # Intent builder
β β βββ src/privacy.ts # Viewing key management
β β βββ src/crypto.ts # Pedersen commitments
β β βββ src/sip.ts # Main client class
β βββ types/ # @sip-protocol/types
β βββ src/intent.ts # ShieldedIntent interface
β βββ src/privacy.ts # PrivacyLevel enum
β βββ src/stealth.ts # Stealth address types
βββ docs/ # Documentation
User Input β Privacy Layer β Intent Creation β Solver Network β Execution
β β β β β
β βΌ β β β
β ββββββββββββ β β β
β β Generate β β β β
β β Stealth β β β β
β β Address β β β β
β ββββββββββββ β β β
β β β β β
β βΌ β β β
β ββββββββββββ β β β
β β Create β β β β
β β Pedersen β β β β
β βCommitmentβ β β β
β ββββββββββββ β β β
β β β β β
β βΌ β β β
β ββββββββββββ β β β
β β Generate β β β β
β β ZK Proof β β β β
β ββββββββββββ β β β
β β β β β
ββββββββββββββββ΄βββββββββββββββ΄ββββββββββββββββββ΄ββββββββββββββ
| Package | Version | Description | Tests |
|---|---|---|---|
@sip-protocol/sdk |
0.7.3 | Core SDK for shielded intents | 6,603 |
@sip-protocol/types |
0.2.1 | TypeScript type definitions | - |
@sip-protocol/react |
0.1.0 | React hooks for SIP | 82 |
@sip-protocol/cli |
0.2.0 | CLI tool | 10 |
@sip-protocol/api |
0.1.0 | REST API wrapper | 18 |
@sip-protocol/react-native |
0.1.1 | iOS/Android SDK | 10 |
circuits |
- | Noir ZK circuits | - |
On-chain Programs:
| Program | Description |
|---|---|
sip-privacy |
Solana Anchor program |
sip-ethereum |
Ethereum Foundry contracts |
Examples: 11 integration examples in examples/
SIP is infrastructure-agnostic β use your preferred RPC providers without changing your application code.
| Provider | Best For | Real-time | Special Features |
|---|---|---|---|
| Helius | Production apps | Webhooks | DAS API, rich metadata |
| QuickNode | Enterprise | Yellowstone gRPC | Global edge network |
| Triton | DeFi/Trading | Dragon's Mouth gRPC | ~400ms latency advantage |
| Generic | Development | WebSocket | No API key required |
import { createProvider } from '@sip-protocol/sdk'
// Same API, different backends β your choice
const provider = createProvider('quicknode', { endpoint: process.env.QUICKNODE_ENDPOINT })
// or: createProvider('helius', { apiKey: process.env.HELIUS_API_KEY })
// or: createProvider('triton', { xToken: process.env.TRITON_TOKEN })
// or: createProvider('generic', { connection })
// All providers work identically
const assets = await provider.getAssetsByOwner('7xK9...')- No vendor lock-in β switch providers without code changes
- Best-of-breed β use Helius for DAS, QuickNode for gRPC, mix and match
- Open-source tooling β unified interface benefits the entire ecosystem
- Resilience β easy failover between providers
See SDK README for detailed provider documentation.
See ROADMAP.md for detailed milestone tracking.
- β Core SDK with stealth addresses, Pedersen commitments, viewing keys
- β Multi-chain support (15+ chains including Solana, Ethereum, NEAR)
- β ZK proof system (Noir circuits, browser proving)
- β NEAR Intents + Zcash integration
- β React, CLI, API packages
- β 6,661+ tests
- β M16: Narrative capture (content, community, positioning)
- β M17: Solana same-chain privacy (Complete - Jan 2026)
- π― M18: Ethereum same-chain privacy (Active)
- π² M19: Proof composition (Zcash + Mina)
- π² M20: Multi-language SDK (Python, Rust, Go)
- π² M21: SIP-EIP standard proposal
- π² M22: Institutional custody integration
| Category | Technology | Purpose |
|---|---|---|
| Framework | Next.js 14 (App Router) | Reference application |
| Language | TypeScript (strict mode) | Type safety |
| Styling | Tailwind CSS + shadcn/ui | UI components |
| State | Zustand | Client state management |
| Monorepo | pnpm + Turborepo | Package management |
| Cryptography | @noble/curves, @noble/hashes | Stealth addresses, commitments |
| Deployment | Vercel | Hosting |
- Node.js 18+
- pnpm 8+
# Clone the repository
git clone https://github.com/sip-protocol/sip-protocol.git
cd sip-protocol
# Install dependencies
pnpm install
# Start development
pnpm devpnpm dev # Start development server
pnpm build # Build all packages
pnpm test -- --run # Run all tests (6,661+)
pnpm lint # Lint code
pnpm typecheck # Type checkWe welcome contributions! Please see CONTRIBUTING.md for guidelines.
- Protocol improvements
- SDK features
- Documentation
- Security audits
- Chain integrations
SIP is experimental software. Use at your own risk.
See our comprehensive Threat Model for:
- Identified attack vectors and mitigations
- Trust assumptions and security boundaries
- Severity ratings for each threat category
- Security recommendations for users, integrators, and operators
CRITICAL: Always use HTTPS/TLS when connecting to Zcash nodes in production.
The Zcash RPC client uses HTTP Basic Authentication, which transmits credentials in base64-encoded cleartext. Without TLS/HTTPS:
- RPC credentials are vulnerable to network sniffing
- All transaction data can be intercepted
- Man-in-the-middle attacks are possible
Production Requirements:
- β
Use
https://URLs for Zcash RPC endpoints - β Configure zcashd with valid TLS certificates
- β Store credentials in secure environment variables
- β Use network-level access controls (firewall rules, VPCs)
- β NEVER use HTTP in production
- β NEVER hardcode credentials in source code
Example:
// β
Production (HTTPS)
const client = new ZcashRPCClient({
host: 'https://your-node.com',
port: 8232,
username: process.env.ZCASH_RPC_USER,
password: process.env.ZCASH_RPC_PASS,
})
// β οΈ Development only (HTTP on localhost)
const testClient = new ZcashRPCClient({
host: '127.0.0.1',
port: 18232,
username: 'test',
password: 'test',
testnet: true,
})If you discover a security vulnerability, please report it responsibly:
- Email: security@sip-protocol.xyz
- Do NOT open public issues for security vulnerabilities
MIT License β see LICENSE file for details.
SIP builds on the shoulders of giants:
- Zcash β Privacy-preserving cryptocurrency and proving system
- NEAR Protocol β Intent-centric blockchain infrastructure
- EIP-5564 β Stealth address standard
- @noble/curves β Audited cryptographic primitives
- The broader privacy and cryptography research community
π Winner β Zypherpunk Hackathon ($6,500) | #9 of 93 | 3 Tracks π₯ 1st Place β Solana Graveyard Hackathon | Torque Sponsor Track ($750)
Privacy is not a feature. It's a right.
Documentation Β· Examples Β· Report Bug