Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Use when building wallet infrastructure, authenticating users, managing embedded wallets, configuring access controls and policies, or integrating blockchain transactions into applications. Reach for this skill when working with user onboarding, wallet creation, transaction signing, policy enforcement, or API integration across Ethereum, Solana, and other blockchains.
.claude/skills/internet-court-privy/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 171% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 88% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 61% | 0% |
| case-18 | ✗→✓ | ▲ Improved | 54% | 0% |
| case-19 | ✗→✓ | ▲ Improved | 78% | 0% |
Privy is a programmable wallet infrastructure platform for building financial applications. It provides embedded wallets, authentication, transaction execution, and policy controls across 50+ blockchains including Ethereum, Solana, Bitcoin, and Tempo. Agents use Privy to authenticate users, create and manage wallets, execute transactions, enforce spending policies, and build complete financial products without building wallet infrastructure from scratch.
Key files and commands:
https://api.privy.io/v1/ (requires Basic Auth with app ID:secret)@privy-io/react-auth), Node.js (@privy-io/node), Swift, Android, Flutter, Java, Go, Rust, RubyReach for Privy when:
Do not use Privy for: pure authentication without wallets (use Auth0, Firebase instead), or if you need complete control over key management without any abstraction.
| Platform | Package | Command | |----------|---------|---------| | React | @privy-io/react-auth | npm install @privy-io/react-auth | | Node.js | @privy-io/node | npm install @privy-io/node | | React Native | @privy-io/react-native-auth | npm install @privy-io/react-native-auth | | Swift | Privy Swift SDK | Via Swift Package Manager | | Android | Privy Android SDK | Via Gradle |
| Concept | Definition | Use case | |---------|-----------|----------| | User | Individual authenticated in your app | Consumer wallets, personal accounts | | Wallet | Blockchain account (embedded or external) | Holding assets, signing transactions | | Owner | Entity with full control (user, auth key, or quorum) | Determines who can modify wallet | | Signer | Additional party with scoped permissions | Server automation, delegated access | | Policy | Rules constraining wallet actions | Spending limits, recipient whitelists | | Authorization Key | P256 cryptographic key for server control | Backend wallet management | | Key Quorum | M-of-K multi-sig approval | Shared control, treasury operations |
Configure in Dashboard > Configuration > Authentication:
| Model | Owner | Signers | Use case | |-------|-------|---------|----------| | User-owned | User | None | Self-custodial consumer wallets | | User + server | User | Server (scoped) | Automated trading, limit orders | | App-owned | Auth key | None | Treasury, bots, agents | | Custodial | Licensed custodian | None | Institutional FBO accounts |
Authorization: Basic <base64(app_id:app_secret)>
privy-app-id: <app_id>
Content-Type: application/json| Action | Endpoint | Purpose | |--------|----------|---------| | Create wallet | POST /v1/wallets | Provision new wallet | | Get wallet | GET /v1/wallets/{id} | Fetch wallet details | | Send transaction | POST /v1/wallets/{id}/rpc | Execute blockchain action | | Get balance | GET /v1/wallets/{id}/balance | Check asset holdings | | Create policy | POST /v1/policies | Define spending rules | | Create user | POST /v1/users | Onboard new user |
| Scenario | Embedded | External | |----------|----------|----------| | New users, no existing wallet | ✓ | ✗ | | Users have MetaMask/Phantom | ✗ | ✓ | | Need full control over UX | ✓ | ✗ | | Users want to bring existing assets | ✗ | ✓ | | Mobile app | ✓ | Limited | | Require key export | ✓ | ✗ |
| Scenario | Client SDK | Server SDK | |----------|-----------|-----------| | User authentication | ✓ | ✗ | | Wallet creation for users | ✓ | ✓ | | Server-controlled wallets | ✗ | ✓ | | Transaction signing | ✓ | ✓ | | Policy management | ✗ | ✓ | | User management | ✗ | ✓ |
| Need | Policies | Key Quorums | |------|----------|-------------| | Spending limits | ✓ | ✗ | | Recipient whitelists | ✓ | ✗ | | Multi-sig approval | ✗ | ✓ | | Time-based rules | ✓ | ✗ | | Contract interaction control | ✓ | ✗ | | Shared ownership | ✗ | ✓ |
@privy-io/react-auth for React, etc.)PrivyProvider, passing appId and clientIdusePrivy() hook to access login(), logout(), and user stateready === true before consuming Privy statelogin() to trigger authentication modalembeddedWallets.ethereum.createOnLogin in PrivyProvider configuseCreateWallet() hook (client) or wallets().create() (server)useWallets() hook or APIeth_sendTransaction, signTransaction, etc.intents() API to propose and authorize transactionsPOST /v1/policies APIPATCH /v1/wallets/{id}ready === true before using Privy hooks; state may be stale during initialization.privy-app-id header; requests missing either are rejected.createAdditional: true to enable.Before submitting work with Privy:
ready state is checked before consuming PrivyComprehensive navigation: https://docs.privy.io/llms.txt
Critical documentation pages:
> For additional documentation and navigation, see: https://docs.privy.io/llms.txt
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 18,601 | 8,214 | -56% | 1 | 1 | 0% | 1,537 | 4,171 | +171% | 0 | 0 | — |
case-02 | pass→pass | 10,450 | 8,363 | -20% | 1 | 1 | 0% | 1,861 | 4,082 | +119% | 0 | 0 | — |
case-03 | fail→pass | 10,467 | 4,390 | -58% | 1 | 1 | 0% | 1,755 | 3,298 | +88% | 0 | 0 | — |
case-04 | pass→pass | 5,306 | 4,974 | -6% | 1 | 1 | 0% | 844 | 3,280 | +289% | 0 | 0 | — |
case-05 | fail→pass | 14,603 | 4,232 | -71% | 1 | 1 | 0% | 2,069 | 3,340 | +61% | 0 | 0 | — |
case-06 | pass→pass | 11,587 | 3,845 | -67% | 1 | 1 | 0% | 1,799 | 3,200 | +78% | 0 | 0 | — |
case-07 | pass→pass | 14,536 | 6,595 | -55% | 1 | 1 | 0% | 2,210 | 3,737 | +69% | 0 | 0 | — |
case-08 | pass→pass | 14,171 | 9,031 | -36% | 1 | 1 | 0% | 2,014 | 4,243 | +111% | 0 | 0 | — |
case-09 | pass→pass | 9,752 | 5,490 | -44% | 1 | 1 | 0% | 1,537 | 3,313 | +116% | 0 | 0 | — |
case-10 | pass→pass | 13,286 | 8,956 | -33% | 1 | 1 | 0% | 2,146 | 3,985 | +86% | 0 | 0 | — |
case-11 | pass→pass | 16,562 | 9,726 | -41% | 1 | 1 | 0% | 2,683 | 4,293 | +60% | 0 | 0 | — |
case-12 | pass→pass | 16,689 | 9,752 | -42% | 1 | 1 | 0% | 2,543 | 4,259 | +67% | 0 | 0 | — |
case-13 | pass→pass | 13,230 | 9,816 | -26% | 1 | 1 | 0% | 1,977 | 4,191 | +112% | 0 | 0 | — |
case-14 | pass→pass | 17,080 | 12,790 | -25% | 1 | 1 | 0% | 2,781 | 4,921 | +77% | 0 | 0 | — |
case-15 | fail→fail | 14,059 | 4,685 | -67% | 1 | 1 | 0% | 2,407 | 3,446 | +43% | 0 | 0 | — |
case-16 | fail→fail | 17,382 | 7,361 | -58% | 1 | 1 | 0% | 2,642 | 3,352 | +27% | 0 | 0 | — |
case-17 | pass→pass | 11,692 | 4,429 | -62% | 1 | 1 | 0% | 1,425 | 3,381 | +137% | 0 | 0 | — |
case-18 | fail→pass | 16,279 | 14,500 | -11% | 1 | 1 | 0% | 2,644 | 4,067 | +54% | 0 | 0 | — |
case-19 | fail→pass | 9,863 | 2,509 | -75% | 1 | 1 | 0% | 1,709 | 3,050 | +78% | 0 | 0 | — |
case-20 | pass→pass | 12,208 | 8,294 | -32% | 1 | 1 | 0% | 1,845 | 3,929 | +113% | 0 | 0 | — |
case-21 | pass→pass | 10,834 | 8,975 | -17% | 1 | 1 | 0% | 1,515 | 3,379 | +123% | 0 | 0 | — |
case-22 | pass→pass | 7,274 | 3,530 | -51% | 1 | 1 | 0% | 1,231 | 3,279 | +166% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +23 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
| Model | Method | Date | Lift |
|---|---|---|---|
| gemini-3.6-flash | verified | 8/13/2026 | +18% |
Other measured skills in the registry, with their headline benchmark lift.