Skip to content
Back to skills

Thirdweb 0xkemcho

ASecurity

Thirdweb v5 SDK usage in AutoClaw. Use when working with wallet connection, social login, SIWE authentication, or thirdweb client/provider setup. Triggers on: "thirdweb", "wallet connect", "inAppWallet", "social login", "SIWE", "ConnectButton", "thirdweb auth", "thirdweb provider".

  • 57 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 17, 2026
securitygoreactapi

Works with

  • cli
  • api

Security analysis

A100/100

Scanned October 17, 2026

npx -y skills add diegosouzapw/awesome-omni-skill --skill thirdweb-0xkemcho --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Thirdweb 0xkemcho?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Thirdweb 0xkemcho
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/diegosouzapw-thirdweb-0xkemcho/badge)](https://www.skillsdirectory.com/skills/diegosouzapw-thirdweb-0xkemcho)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: thirdweb
description: 'Thirdweb v5 SDK usage in AutoClaw. Use when working with wallet connection, social login, SIWE authentication, or thirdweb client/provider setup. Triggers on: "thirdweb", "wallet connect", "inAppWallet", "social login", "SIWE", "ConnectButton", "thirdweb auth", "thirdweb provider".'
---

## Critical: Thirdweb v5 Sub-Path Imports

Thirdweb v5 uses sub-path imports. Never import from the root `thirdweb` package for specialized modules:

```ts
// CORRECT
import { createThirdwebClient } from 'thirdweb';
import { inAppWallet, createWallet } from 'thirdweb/wallets';
import { darkTheme } from 'thirdweb/react';
import { createAuth } from 'thirdweb/auth';
import { privateKeyToAccount } from 'thirdweb/wallets';

// WRONG — do not import wallet/auth/react from root
import { inAppWallet } from 'thirdweb'; // ❌
```

## Project Setup

### Client (Web — `apps/web/src/lib/thirdweb.ts`)

```ts
import { createThirdwebClient } from 'thirdweb';

export const client = createThirdwebClient({
  clientId: process.env.NEXT_PUBLIC_THIRDWEB_CLIENT_ID!,
});
```

### Client (API — `apps/api/src/lib/thirdweb.ts`)

```ts
import { createThirdwebClient } from 'thirdweb';

export const thirdwebClient = createThirdwebClient({
  secretKey: process.env.THIRDWEB_SECRET_KEY,
});
```

### Wallets Configuration

```ts
import { inAppWallet, createWallet } from 'thirdweb/wallets';

export const wallets = [
  inAppWallet({
    auth: { options: ['email', 'google', 'apple', 'passkey'] },
  }),
  createWallet('io.metamask'),
  createWallet('com.coinbase.wallet'),
  createWallet('walletConnect'),
];
```

### SIWE Auth (Server-Side)

```ts
import { createAuth } from 'thirdweb/auth';
import { privateKeyToAccount } from 'thirdweb/wallets';

const adminAccount = privateKeyToAccount({
  client: thirdwebClient,
  privateKey: process.env.THIRDWEB_ADMIN_PRIVATE_KEY as `0x${string}`,
});

export const thirdwebAuth = createAuth({
  domain: process.env.AUTH_DOMAIN,
  client: thirdwebClient,
  adminAccount,
});
```

Auth flow: `thirdwebAuth.generatePayload()` → client signs → `thirdwebAuth.verifyPayload()` → JWT via `thirdwebAuth.generateJWT()`.

### Provider Stack (Web)

Wrap app with `QueryClientProvider` (from `@tanstack/react-query`) + `ThirdwebProvider`:

```tsx
import { ThirdwebProvider } from 'thirdweb/react';

<QueryClientProvider client={queryClient}>
  <ThirdwebProvider>{children}</ThirdwebProvider>
</QueryClientProvider>
```

## Theme

This project uses `darkTheme()` from `thirdweb/react` with custom indigo accent colors. See `apps/web/src/lib/thirdweb.ts` for the full theme config.

## Environment Variables

| Variable | Location | Description |
|---|---|---|
| `NEXT_PUBLIC_THIRDWEB_CLIENT_ID` | Web | Public client ID |
| `THIRDWEB_SECRET_KEY` | API | Server-side secret key |
| `THIRDWEB_ADMIN_PRIVATE_KEY` | API | Admin wallet for SIWE signing |
| `AUTH_DOMAIN` | API | SIWE auth domain |

## Key Hooks

- `useActiveAccount()` — Get connected wallet account
- `useActiveWallet()` — Get connected wallet instance
- `useConnect()` — Connect a wallet programmatically
- `useDisconnect()` — Disconnect current wallet

## Chain Configuration

This project targets Celo mainnet (chain ID 42220). When using `ConnectButton`, set `chain={celo}` from `thirdweb/chains`.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.