원클릭으로
evm-wallet-integration
Integrate wallets into Celo dApps. Covers RainbowKit, Dynamic, and wallet connection patterns.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Integrate wallets into Celo dApps. Covers RainbowKit, Dynamic, and wallet connection patterns.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
ERC-8004 Agent Trust Protocol for AI agent identity, reputation, and validation on Celo. Use when building AI agents that need identity registration, reputation tracking, or trust verification across organizational boundaries.
Bridge assets to and from Celo. Use when transferring tokens between Celo and other chains like Ethereum.
Scaffold Celo dApps with Celo Composer. Use when starting new Celo projects, creating MiniPay apps, or setting up development environments.
Integrate DeFi protocols on Celo. Use when building swaps, lending, or liquidity applications with Uniswap, Aave, Ubeswap, or other DeFi protocols.
Interact with Celo blockchain via RPC endpoints. Use when reading balances, transactions, blocks, and interacting with Celo via viem or cast.
Working with Celo's stablecoin ecosystem. Use when building with USDm, EURm, USDC, USDT, or regional Mento stablecoins on Celo.
| name | evm-wallet-integration |
| description | Integrate wallets into Celo dApps. Covers RainbowKit, Dynamic, and wallet connection patterns. |
| license | Apache-2.0 |
| metadata | {"author":"celo-org","version":"1.0.0"} |
This skill covers integrating wallet connection libraries into Celo dApps.
| Library | Description | Best For |
|---|---|---|
| Reown AppKit | Official WalletConnect SDK with wagmi | Production React apps |
| Dynamic | Auth-focused with dashboard | Apps needing user management |
| ConnectKit | Simple wagmi integration | Quick setup |
| Custom wagmi | Direct connector setup | Full control |
Official WalletConnect SDK for React apps with built-in wallet UI. Supports 600+ wallets.
Source: https://docs.reown.com/appkit
Note: Reown is the company formerly known as WalletConnect Inc. (rebranded in 2024). The protocol and npm packages for wagmi connectors still use "walletConnect" naming.
npm install @reown/appkit @reown/appkit-adapter-wagmi wagmi viem @tanstack/react-query
// config.ts
import { WagmiAdapter } from "@reown/appkit-adapter-wagmi";
import { celo, celoAlfajores } from "@reown/appkit/networks";
const projectId = process.env.NEXT_PUBLIC_REOWN_PROJECT_ID!;
export const wagmiAdapter = new WagmiAdapter({
networks: [celo, celoAlfajores],
projectId,
ssr: true,
});
export const config = wagmiAdapter.wagmiConfig;
"use client";
import { WagmiProvider } from "wagmi";
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
import { createAppKit } from "@reown/appkit/react";
import { wagmiAdapter } from "./config";
import { celo, celoAlfajores } from "@reown/appkit/networks";
const queryClient = new QueryClient();
createAppKit({
adapters: [wagmiAdapter],
networks: [celo, celoAlfajores],
projectId: process.env.NEXT_PUBLIC_REOWN_PROJECT_ID!,
metadata: {
name: "My Celo App",
description: "Celo dApp",
url: "https://myapp.com",
icons: ["https://myapp.com/icon.png"],
},
});
export function Providers({ children }: { children: React.ReactNode }) {
return (
<WagmiProvider config={wagmiAdapter.wagmiConfig}>
<QueryClientProvider client={queryClient}>
{children}
</QueryClientProvider>
</WagmiProvider>
);
}
import { AppKitButton } from "@reown/appkit/react";
function Header() {
return (
<nav>
<AppKitButton />
</nav>
);
}
import { useAppKit, useAppKitAccount } from "@reown/appkit/react";
function WalletConnect() {
const { open } = useAppKit();
const { address, isConnected } = useAppKitAccount();
if (isConnected) {
return (
<div>
<p>Connected: {address}</p>
<button onClick={() => open({ view: "Account" })}>Account</button>
</div>
);
}
return <button onClick={() => open()}>Connect Wallet</button>;
}
import { useAccount, useBalance, useDisconnect } from "wagmi";
function AccountInfo() {
const { address, isConnected } = useAccount();
const { data: balance } = useBalance({ address });
const { disconnect } = useDisconnect();
if (!isConnected) return null;
return (
<div>
<p>Address: {address}</p>
<p>Balance: {balance?.formatted} {balance?.symbol}</p>
<button onClick={() => disconnect()}>Disconnect</button>
</div>
);
}
Authentication-focused wallet connection with user management dashboard.
Source: https://docs.dynamic.xyz
npm install @dynamic-labs/sdk-react
import {
DynamicContextProvider,
DynamicWidget,
} from "@dynamic-labs/sdk-react";
function App() {
return (
<DynamicContextProvider
settings={{
environmentId: process.env.NEXT_PUBLIC_DYNAMIC_ENV_ID!,
}}
>
<DynamicWidget />
</DynamicContextProvider>
);
}
Build wallet connection without a library using wagmi directly.
import { http, createConfig } from "wagmi";
import { celo, celoSepolia } from "wagmi/chains";
import { injected, walletConnect, metaMask } from "wagmi/connectors";
const projectId = process.env.NEXT_PUBLIC_WALLETCONNECT_PROJECT_ID!;
export const config = createConfig({
chains: [celo, celoSepolia],
connectors: [
injected(),
walletConnect({ projectId }),
metaMask(),
],
transports: {
[celo.id]: http(),
[celoSepolia.id]: http(),
},
});
import { useConnect, useConnectors, useAccount, useDisconnect } from "wagmi";
function WalletConnect() {
const { connect } = useConnect();
const connectors = useConnectors();
const { address, isConnected } = useAccount();
const { disconnect } = useDisconnect();
if (isConnected) {
return (
<div>
<p>Connected: {address}</p>
<button onClick={() => disconnect()}>Disconnect</button>
</div>
);
}
return (
<div>
{connectors.map((connector) => (
<button
key={connector.uid}
onClick={() => connect({ connector })}
>
{connector.name}
</button>
))}
</div>
);
}
| Network | Chain ID | Reown Import | Wagmi Import |
|---|---|---|---|
| Mainnet | 42220 | celo from @reown/appkit/networks | celo from wagmi/chains |
| Celo Alfajores | 44787 | celoAlfajores from @reown/appkit/networks | celoAlfajores from wagmi/chains |
| Celo Sepolia | 11142220 | - | celoSepolia from wagmi/chains |
Required for WalletConnect connections. WalletConnect Inc. rebranded to Reown in 2024.
NEXT_PUBLIC_REOWN_PROJECT_ID=your_project_id
Note: The wagmi
walletConnectconnector still uses the same project ID. Only the cloud console was rebranded.
{
"dependencies": {
"@reown/appkit": "^1.0.0",
"@reown/appkit-adapter-wagmi": "^1.0.0",
"wagmi": "^2.0.0",
"viem": "^2.0.0",
"@tanstack/react-query": "^5.0.0"
}
}
{
"dependencies": {
"wagmi": "^2.0.0",
"viem": "^2.0.0",
"@tanstack/react-query": "^5.0.0"
}
}