ekx-privylisted
Install: claude install-skill Ekinoxis-evm/claude-skills
# Privy
The default wallet + auth layer for Ekinoxis user-facing dApps.
Authoritative docs: the **`privy-docs` MCP server**. Query it before answering from
memory — Privy's API moves fast.
Web: https://docs.privy.io · Dashboard: https://dashboard.privy.io
---
## Why Privy and not RainbowKit
Privy gives us **embedded wallets** — a user logs in with email or Google and gets a
real EVM wallet without ever seeing a seed phrase. That is the whole reason it won:
our users (LATAM real-estate buyers, gamers, renters) are not crypto-native and will
not install MetaMask.
Use **RainbowKit/wagmi alone** only when the audience is definitionally crypto-native.
Use **Coinbase CDP** instead when an *agent*, not a person, holds the key — see
[`../ekx-coinbase-cdp/SKILL.md`](../ekx-coinbase-cdp/SKILL.md).
---
## Environment
```bash
NEXT_PUBLIC_PRIVY_APP_ID= # public — safe in the bundle
NEXT_PUBLIC_PRIVY_CLIENT_ID= # public
PRIVY_APP_SECRET= # SECRET — server only
PRIVY_VERIFICATION_KEY= # SECRET — verifies access tokens offline
```
---
## Client setup
The provider, as it actually stands in production:
```tsx
"use client";
import { PrivyProvider } from "@privy-io/react-auth";
export default function Providers({ children }: { children: React.ReactNode }) {
return (
<PrivyProvider
appId={process.env.NEXT_PUBLIC_PRIVY_APP_ID!}
config={{
loginMethods: ["email", "wallet", "google"],
appearance: { theme: "dark