arcium

Solid

Build and debug encrypted Solana applications with Arcium — data stays private during computation, no single party sees it. Use when writing Arcis circuits (#[encrypted], #[instruction]), wiring Anchor programs with init/queue_computation/callback flows, choosing Shared vs Mxe encrypted state, encrypting inputs with @arcium-hq/client (RescueCipher, x25519), or debugging ArgBuilder ordering, nonce, callback, or computation finalization failures. Covers dark pools, sealed-bid auctions, encrypted voting, hidden game state, confidential DeFi, secure randomness, and threshold signing. Also use for getting started with your first Arcium app.

DevOps & Infrastructure 126 stars 79 forks Updated 2 weeks ago Apache-2.0

Install

View on GitHub

Quality Score: 87/100

Stars 20%
70
Recency 20%
90
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
50
License 10%
100
Description 5%
100

Skill Content

# Arcium Encrypted computation on Solana via MPC. Data stays encrypted during computation. The `arcium` CLI (wraps Anchor) handles init, build, test, and deploy — use MCP for current flags and options. **MCP Tools**: `search_arcium_docs` for discovery (returns page path), then `query_docs_filesystem_arcium_docs` with `cat <path>.mdx` for full-page reads (e.g., `cat /developers/arcis/mental-model.mdx`). ## When to Use **Use when:** - You need trustless computation -- cryptographically guaranteed, no single party sees the data - Multiple parties compute on combined data without revealing inputs - On-chain state must remain encrypted but computable - Privacy: sealed-bid auctions, voting, hidden game state, dark pools, confidential DeFi **Constraints:** - Fixed loop bounds required (no variable-length iteration) ## Mental Model Arcium apps have three coupled surfaces. Most bugs are mismatches across their boundaries: | Surface | Responsibility | Common Boundary Bugs | |---------|---------------|----------------------| | **Circuit** (Arcis/Rust) | Pure fixed-shape MPC logic | Variable loops, dynamic collections, `.reveal()` inside conditionals | | **Program** (Anchor/Rust) | Orchestration: init + queue + callback | Macro name mismatch, callback accounts not writable, wrong ArgBuilder order | | **Client** (TypeScript) | Key exchange, encryption, submission, decryption | Nonce reuse, missing `.x25519_pubkey()` for Shared, param order ≠ circuit order | **MPC constraints** (f...

Details

Author
sendaifun
Repository
sendaifun/skills
Created
7 months ago
Last Updated
2 weeks ago
Language
TypeScript
License
Apache-2.0

Integrates with

Bundled in these plugins

Similar Skills

Semantically similar based on skill content — not just same category