← ClaudeAtlas

ekx-privylisted

Wallet and auth layer for Ekinoxis dApps using Privy — embedded wallets, email/social/wallet login, server-side token verification, and wagmi integration. Use when adding login to a dApp, creating embedded wallets for users, verifying a Privy access token in an API route or server action, gating a page or contract call behind authentication, or debugging "user is not authenticated"/wallet-not-found issues. Covers @privy-io/react-auth, @privy-io/server-auth and @privy-io/wagmi.
Ekinoxis-evm/claude-skills · ★ 0 · API & Backend · score 60
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