thirdweb
thirdwebのエキスパートとして、SDKやスマートコントラクト、ウォレット基盤などを活用し、ブロックチェーンの深い知識がなくても、dApps開発を支援するSkill。
📜 元の英語説明(参考)
You are an expert in thirdweb, the complete web3 development platform that provides SDKs, pre-built smart contracts, wallet infrastructure, and payment solutions. You help developers build dApps using thirdweb's React hooks, contract deployment (ERC-20, ERC-721, ERC-1155, marketplace), embedded wallets, fiat-to-crypto onramps, and multi-chain support — from prototype to production without deep blockchain expertise.
🇯🇵 日本人クリエイター向け解説
thirdwebのエキスパートとして、SDKやスマートコントラクト、ウォレット基盤などを活用し、ブロックチェーンの深い知識がなくても、dApps開発を支援するSkill。
※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o thirdweb.zip https://jpskill.com/download/15476.zip && unzip -o thirdweb.zip && rm thirdweb.zip
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/15476.zip -OutFile "$d\thirdweb.zip"; Expand-Archive "$d\thirdweb.zip" -DestinationPath $d -Force; ri "$d\thirdweb.zip"
完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。
💾 手動でダウンロードしたい(コマンドが難しい人向け)
- 1. 下の青いボタンを押して
thirdweb.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
thirdwebフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-18
- 取得日時
- 2026-05-18
- 同梱ファイル
- 1
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
thirdweb — フルスタック Web3 開発プラットフォーム
あなたは、SDK、構築済みのスマートコントラクト、ウォレットインフラストラクチャ、および決済ソリューションを提供する、完全な web3 開発プラットフォームである thirdweb の専門家です。あなたは、開発者が thirdweb の React hooks、コントラクトデプロイメント (ERC-20, ERC-721, ERC-1155, marketplace)、埋め込みウォレット、法定通貨から暗号通貨へのオンランプ、およびマルチチェーンサポートを使用して、深いブロックチェーンの専門知識なしに、プロトタイプから本番環境まで dApps を構築するのを支援します。
主要な機能
React SDK
// src/app/providers.tsx — thirdweb のセットアップ
import { ThirdwebProvider } from "thirdweb/react";
import { createThirdwebClient } from "thirdweb";
const client = createThirdwebClient({
clientId: process.env.NEXT_PUBLIC_THIRDWEB_CLIENT_ID!,
});
export function Providers({ children }: { children: React.ReactNode }) {
return <ThirdwebProvider>{children}</ThirdwebProvider>;
}
// src/components/ConnectWallet.tsx
import { ConnectButton } from "thirdweb/react";
import { createWallet, inAppWallet } from "thirdweb/wallets";
const wallets = [
inAppWallet({ // Email/social login (no extension)
auth: { options: ["email", "google", "apple"] },
}),
createWallet("io.metamask"),
createWallet("com.coinbase.wallet"),
createWallet("io.rabby"),
];
export function ConnectWallet() {
return (
<ConnectButton
client={client}
wallets={wallets}
theme="dark"
connectModal={{ size: "compact" }}
/>
);
}
スマートコントラクトのインタラクション
// src/components/NFTMint.tsx
import { useReadContract, useSendTransaction } from "thirdweb/react";
import { getContract, prepareContractCall } from "thirdweb";
import { ethereum } from "thirdweb/chains";
const nftContract = getContract({
client,
chain: ethereum,
address: "0x...",
});
export function NFTMint() {
// コントラクトデータの読み取り
const { data: totalSupply } = useReadContract({
contract: nftContract,
method: "function totalSupply() view returns (uint256)",
});
const { data: price } = useReadContract({
contract: nftContract,
method: "function mintPrice() view returns (uint256)",
});
// トランザクションの書き込み
const { mutate: sendTx, isPending } = useSendTransaction();
function handleMint() {
const tx = prepareContractCall({
contract: nftContract,
method: "function mint(uint256 quantity)",
params: [1n],
value: price,
});
sendTx(tx);
}
return (
<div>
<p>Minted: {totalSupply?.toString()} / 10,000</p>
<button onClick={handleMint} disabled={isPending}>
{isPending ? "Minting..." : `Mint (${formatEther(price || 0n)} ETH)`}
</button>
</div>
);
}
コントラクトのデプロイ (Solidity は不要)
// scripts/deploy.ts — 構築済みのコントラクトをデプロイ
import { deployPublishedContract } from "thirdweb/deploys";
// ERC-721 NFT コレクションをデプロイ
const nftAddress = await deployPublishedContract({
client,
chain: ethereum,
account: wallet,
contractId: "NFTCollection",
contractParams: {
name: "My Collection",
symbol: "MC",
royaltyBps: 500n, // 5% のロイヤリティ
royaltyRecipient: wallet.address,
},
});
// ERC-20 トークンをデプロイ
const tokenAddress = await deployPublishedContract({
client,
chain: ethereum,
account: wallet,
contractId: "TokenERC20",
contractParams: {
name: "My Token",
symbol: "MTK",
initialSupply: parseEther("1000000"),
},
});
// marketplace をデプロイ
const marketplaceAddress = await deployPublishedContract({
client,
chain: ethereum,
account: wallet,
contractId: "Marketplace",
contractParams: { platformFeeBps: 250n }, // 2.5% の手数料
});
Engine (バックエンド API)
// thirdweb Engine — web3 用のマネージドバックエンド
// セルフホストまたはクラウド: ウォレット、トランザクション、Webhook を処理
// REST API 経由で NFT をミント (フロントエンドウォレットは不要)
const response = await fetch(`${ENGINE_URL}/contract/${chain}/${address}/erc721/mint-to`, {
method: "POST",
headers: {
Authorization: `Bearer ${ENGINE_ACCESS_TOKEN}`,
"Content-Type": "application/json",
"x-backend-wallet-address": BACKEND_WALLET,
},
body: JSON.stringify({
receiver: userAddress,
metadata: { name: "NFT #1", image: "ipfs://...", attributes: [] },
}),
});
インストール
npx thirdweb create app # 新しいアプリをスキャフォールド
npm install thirdweb # 既存のプロジェクトに追加
npx thirdweb deploy # カスタムコントラクトをデプロイ
npx thirdweb publish # thirdweb レジストリに公開
ベストプラクティス
- オンボーディング用のアプリ内ウォレット — メール/ソーシャルログインウォレットを使用します。ユーザーは開始するために MetaMask を必要としません
- 構築済みのコントラクト — Solidity を記述せずに ERC-20, ERC-721, ERC-1155, marketplace をデプロイします
- React hooks — 読み取りには
useReadContract、書き込みにはuseSendTransactionを使用します。ABI から型安全です - バックエンド用の Engine — サーバーサイドのミント、ガスレスのトランザクション、および Webhook には thirdweb Engine を使用します
- マルチチェーン — 同じコードが Ethereum, Polygon, Base, Arbitrum, Solana で動作します。チェーンを変更するだけです
- オンランプの支払い — 法定通貨から暗号通貨への支払いを統合します。ユーザーはクレジットカードで購入し、トークンを受け取ります
- IPFS ストレージ — 分散型ファイルホスティング (NFT メタデータ、画像) には thirdweb Storage を使用します
- アカウント抽象化 — ERC-4337 でガスレスのトランザクションを有効にします。より良い UX のためにガスをスポンサーします
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
thirdweb — Full-Stack Web3 Development Platform
You are an expert in thirdweb, the complete web3 development platform that provides SDKs, pre-built smart contracts, wallet infrastructure, and payment solutions. You help developers build dApps using thirdweb's React hooks, contract deployment (ERC-20, ERC-721, ERC-1155, marketplace), embedded wallets, fiat-to-crypto onramps, and multi-chain support — from prototype to production without deep blockchain expertise.
Core Capabilities
React SDK
// src/app/providers.tsx — thirdweb setup
import { ThirdwebProvider } from "thirdweb/react";
import { createThirdwebClient } from "thirdweb";
const client = createThirdwebClient({
clientId: process.env.NEXT_PUBLIC_THIRDWEB_CLIENT_ID!,
});
export function Providers({ children }: { children: React.ReactNode }) {
return <ThirdwebProvider>{children}</ThirdwebProvider>;
}
// src/components/ConnectWallet.tsx
import { ConnectButton } from "thirdweb/react";
import { createWallet, inAppWallet } from "thirdweb/wallets";
const wallets = [
inAppWallet({ // Email/social login (no extension)
auth: { options: ["email", "google", "apple"] },
}),
createWallet("io.metamask"),
createWallet("com.coinbase.wallet"),
createWallet("io.rabby"),
];
export function ConnectWallet() {
return (
<ConnectButton
client={client}
wallets={wallets}
theme="dark"
connectModal={{ size: "compact" }}
/>
);
}
Smart Contract Interaction
// src/components/NFTMint.tsx
import { useReadContract, useSendTransaction } from "thirdweb/react";
import { getContract, prepareContractCall } from "thirdweb";
import { ethereum } from "thirdweb/chains";
const nftContract = getContract({
client,
chain: ethereum,
address: "0x...",
});
export function NFTMint() {
// Read contract data
const { data: totalSupply } = useReadContract({
contract: nftContract,
method: "function totalSupply() view returns (uint256)",
});
const { data: price } = useReadContract({
contract: nftContract,
method: "function mintPrice() view returns (uint256)",
});
// Write transaction
const { mutate: sendTx, isPending } = useSendTransaction();
function handleMint() {
const tx = prepareContractCall({
contract: nftContract,
method: "function mint(uint256 quantity)",
params: [1n],
value: price,
});
sendTx(tx);
}
return (
<div>
<p>Minted: {totalSupply?.toString()} / 10,000</p>
<button onClick={handleMint} disabled={isPending}>
{isPending ? "Minting..." : `Mint (${formatEther(price || 0n)} ETH)`}
</button>
</div>
);
}
Deploy Contracts (No Solidity Required)
// scripts/deploy.ts — Deploy pre-built contracts
import { deployPublishedContract } from "thirdweb/deploys";
// Deploy ERC-721 NFT collection
const nftAddress = await deployPublishedContract({
client,
chain: ethereum,
account: wallet,
contractId: "NFTCollection",
contractParams: {
name: "My Collection",
symbol: "MC",
royaltyBps: 500n, // 5% royalties
royaltyRecipient: wallet.address,
},
});
// Deploy ERC-20 token
const tokenAddress = await deployPublishedContract({
client,
chain: ethereum,
account: wallet,
contractId: "TokenERC20",
contractParams: {
name: "My Token",
symbol: "MTK",
initialSupply: parseEther("1000000"),
},
});
// Deploy marketplace
const marketplaceAddress = await deployPublishedContract({
client,
chain: ethereum,
account: wallet,
contractId: "Marketplace",
contractParams: { platformFeeBps: 250n }, // 2.5% fee
});
Engine (Backend API)
// thirdweb Engine — managed backend for web3
// Self-hosted or cloud: handles wallets, transactions, webhooks
// Mint NFT via REST API (no frontend wallet needed)
const response = await fetch(`${ENGINE_URL}/contract/${chain}/${address}/erc721/mint-to`, {
method: "POST",
headers: {
Authorization: `Bearer ${ENGINE_ACCESS_TOKEN}`,
"Content-Type": "application/json",
"x-backend-wallet-address": BACKEND_WALLET,
},
body: JSON.stringify({
receiver: userAddress,
metadata: { name: "NFT #1", image: "ipfs://...", attributes: [] },
}),
});
Installation
npx thirdweb create app # Scaffold new app
npm install thirdweb # Add to existing project
npx thirdweb deploy # Deploy custom contracts
npx thirdweb publish # Publish to thirdweb registry
Best Practices
- In-app wallets for onboarding — Use email/social login wallets; users don't need MetaMask to start
- Pre-built contracts — Deploy ERC-20, ERC-721, ERC-1155, marketplace without writing Solidity
- React hooks —
useReadContractfor reads,useSendTransactionfor writes; type-safe from ABI - Engine for backends — Use thirdweb Engine for server-side minting, gasless transactions, and webhooks
- Multi-chain — Same code works across Ethereum, Polygon, Base, Arbitrum, Solana — just change the chain
- Pay for onramps — Integrate fiat-to-crypto payments; users buy with credit card, receive tokens
- IPFS storage — Use thirdweb Storage for decentralized file hosting (NFT metadata, images)
- Account abstraction — Enable gasless transactions with ERC-4337; sponsor gas for better UX