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.
npx skills add https://github.com/internet-court/internet-court-skill --skill Privy
Privy is a wallet infrastructure and authentication platform that enables developers to embed wallets and user authentication into applications. It provides client-side SDKs (React, React Native, Swift, Android, Flutter, Unity) for user-facing features and server-side SDKs (Node.js, Go, Java, Rust, Ruby) for backend wallet management. Key entry points: REST API at https://api.privy.io/v1/, PrivyProvider component for React apps, PrivyClient for backend operations. Configuration happens in the Privy Dashboard at https://dashboard.privy.io/. The primary documentation is at https://docs.privy.io.
Use Privy when:
| Concept | Purpose | Example |
|---------|---------|---------|
| User | Unified identity across auth methods and wallets | Email + MetaMask linked to same user |
| Embedded wallet | Privy-managed wallet secured by key splitting | User wallet created on login |
| Owner | Entity with full control over a wallet | User, authorization key, or key quorum |
| Signer | Party with scoped permissions to sign transactions | Server automation, delegated access |
| Policy | Rules constraining wallet actions (amounts, recipients, contracts) | Max $1000 per transfer, approved recipients only |
| Intent | Proposed action awaiting approval (manual or quorum) | Transfer request pending team approval |
React/Next.js:
import {PrivyProvider} from '@privy-io/react-auth';
<PrivyProvider appId="your-app-id" clientId="your-client-id" config={{...}}>
{children}
</PrivyProvider>
Node.js:
import {PrivyClient} from '@privy-io/node';
const privy = new PrivyClient({appId: 'your-app-id', appSecret: 'your-app-secret'});
REST API:
curl -X POST https://api.privy.io/v1/wallets \
-H "Authorization: Basic <base64(appId:appSecret)>" \
-H "privy-app-id: your-app-id"
| Item | Location | Purpose |
|------|----------|---------|
| App ID & Secret | Privy Dashboard > Apps | API authentication credentials |
| Webhook signing secret | Dashboard > Configuration > Webhooks | Verify webhook payloads |
| App clients | Dashboard > Apps > App Clients | Environment-specific configuration |
| Login methods | Dashboard > Configuration > Login Methods | Enable email, SMS, OAuth, wallets, etc. |
| Policies | Dashboard or API | Define wallet action constraints |
| Endpoint | Method | Purpose |
|----------|--------|---------|
| /v1/wallets | POST | Create wallet |
| /v1/wallets/{id} | GET | Fetch wallet details |
| /v1/wallets/{id}/ethereum/eth_sendTransaction | POST | Send EVM transaction |
| /v1/wallets/{id}/solana/signAndSendTransaction | POST | Send Solana transaction |
| /v1/users | POST | Create user |
| /v1/users/{id} | GET | Fetch user |
| /v1/policies | POST | Create policy |
| /v1/intents | GET/POST | Fetch or create intents |
| Scenario | Embedded | External |
|----------|----------|----------|
| New users without wallets | ✓ | ✗ |
| Users bringing existing wallets | ✗ | ✓ |
| Full control over UX | ✓ | ✗ |
| User controls keys directly | ✗ | ✓ |
| Seamless onboarding | ✓ | ✗ |
| Leverage existing balances | ✗ | ✓ |
| Scenario | Privy Auth | JWT-based |
|----------|-----------|-----------|
| No existing auth system | ✓ | ✗ |
| Multiple login methods needed | ✓ | ✓ |
| Existing auth provider (Auth0, Firebase) | ✗ | ✓ |
| Want Privy to manage sessions | ✓ | ✗ |
| Custom auth system | ✗ | ✓ |
| Scenario | Client-side | Server-side |
|----------|------------|------------|
| User-controlled wallets | ✓ | ✗ |
| Application-owned wallets | ✗ | ✓ |
| Automated trading/agents | ✗ | ✓ |
| Consumer app | ✓ | ✗ |
| Treasury/business wallets | ✗ | ✓ |
| User signs transactions | ✓ | ✗ |
PrivyProvider at the rootPrivyClient with appId and appSecretready state before consuming Privy hooks/stateuseLoginWithEmail(), useLoginWithWallet(), or other login hooks (React)/v1/users to create users server-sideembeddedWallets.createOnLogin in PrivyProvider configprivy.wallets().create({chain_type: 'ethereum'}) or POST to /v1/walletsuseSendTransaction() hook or sign methodsprivy.wallets().ethereum().sendTransaction() or equivalentid (UUID) for API calls, not the wallet address. Address is for on-chain identification only.eip155:1 for Ethereum mainnet, solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp for Solana).privy.webhooks().verify() or manual verification.ready === true in React. State may be stale or undefined.clientId to PrivyProvider.Before submitting work with Privy:
ready state is checked before consuming Privy hooks (React)APIError and PrivyAPIError (backend)> For additional documentation and navigation, see: https://docs.privy.io/llms.txt
Automatically organizes invoices and receipts for tax preparation by reading messy files, extracting key information, renaming them consistently, and sorting them into logical folders. Turns hours of manual bookkeeping into minutes of automated organization.
Expert guidance for systematic backtesting of trading strategies. Use when developing, testing, stress-testing, or validating quantitative trading strategies. Covers "beating ideas to death" methodology, parameter robustness testing, slippage modeling, bias prevention, and interpreting backtest results. Applicable when user asks about backtesting, strategy validation, robustness testing, avoiding overfitting, or systematic trading development.
This skill calculates key financial ratios and metrics from financial statement data for investment analysis
This skill provides an advanced financial modeling suite with DCF analysis, sensitivity testing, Monte Carlo simulations, and scenario planning for investment decisions
This skill retrieves upcoming earnings announcements for US stocks using the Financial Modeling Prep (FMP) API. Use this when the user requests earnings calendar data, wants to know which companies are reporting earnings in the upcoming week, or needs a weekly earnings review. The skill focuses on mid-cap and above companies (over $2B market cap) that have significant market impact, organizing the data by date and timing in a clean markdown table format. Supports multiple environments (CLI, Desktop, Web) with flexible API key management.
Crypto wallet operations via the awal CLI — sign in, check balances, send USDC/ETH/POL/SOL, trade tokens, fund the wallet, and use the x402 payment protocol to discover paid services, pay for API calls, monetize an API, or query onchain data. Use whenever the user mentions signing in, login, authentication, wallet status, balance, address, sending money, paying someone, transferring tokens, ENS names, swapping/trading/converting tokens, funding/topping up/onramp, USDC, ETH, POL, SOL, the x402 bazaar, paid APIs, monetizing an endpoint, or querying onchain data on Base.
Access real-time and historical stock market data, forex rates, cryptocurrency prices, commodities, economic indicators, and 50+ technical indicators via the Alpha Vantage API. Use when fetching stock prices (OHLCV), company fundamentals (income statement, balance sheet, cash flow), earnings, options data, market news/sentiment, insider transactions, GDP, CPI, treasury yields, gold/silver/oil prices, Bitcoin/crypto prices, forex exchange rates, or calculating technical indicators (SMA, EMA, MACD, RSI, Bollinger Bands). Requires a free API key from alphavantage.co.
Braintree Automation: manage payment processing via Stripe-compatible tools for customers, subscriptions, payment methods, and transactions
Take internet-court/privy from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.