プレイブック

メインネット Web3Modal とウォレットの強化 (Web3modal)

MetaMask のみから Web3Modal + WalletConnect + Coinbase WalletLink への移行。 chainId、ガス、アドレスの強化。

NFTコレクションのミントとメインネットの強化

一部 4 の 4

CBD オールスターと自信のあるゴリラのミント サーフェス: WIP ホワイトリスト ファネル、IPFS メタデータ、プレースホルダー→公開パイプライン、Web3Modal によるメインネット ウォレットの強化。

NFT mint and mainnet architecture diagram

メインネットは単一ウォレットの前提を打ち破る

Gorillas メインネット 1.8 では、All-Stars/1.4 時代の window.ethereum.enable() パスが削除されます。 Web3Modal キャッシュプロバイダーで開きます。 WalletConnect (Infura ID) とカスタム Coinbase WalletLink (chainId: 1) が ProviderOptions に追加されます。 ConnectWeb3 → ethers Web3Provider → アドレス;コントラクト インスタンスはモーダル プロバイダー経由で通信するようになりました。```text Before (All-Stars / early) window.ethereum only → Web3

After (mainnet 1.8) Web3Modal ├─ WalletConnect (Infura) ├─ WalletLink / Coinbase (chainId 1) └─ injected (MetaMask) ↓ provider → ethers Web3Provider ↓ getNftContract(Web3(provider))


## 最初に説明した概念```text
📦 Web3Modal
Çoklu cüzdan bağlantı UI'si; providerOptions ile WalletConnect/WalletLink enjekte edilir.

📦 WalletConnect
QR / mobil cüzdan köprüsü; Infura (veya RPC) id ister.

📦 WalletLink
Coinbase Wallet connector; appName, networkUrl, chainId ile kurulur.

📦 cacheProvider
Son başarılı provider'ı hatırlama; reconnect UX'i, stale session riski.
```RPC/Infura プロジェクト ID は構成です。プレイブックには秘密は保持されません。キーはリポジトリではなく環境にあります。

## MetaMask だけではなぜ不十分なのでしょうか?

ランディング FAQ ではまだ MetaMask と表示される場合があります。メインネットユーザーはCoinbase WalletとモバイルWalletConnectを望んでいます。単一の噴射パスがファンネルをカットします。 1.8 決定: モーダルを使用したマルチコネクタ、ネットワーク: 'メインネット'。```text
User segments
  Desktop MetaMask
  Mobile WC
  Coinbase WalletLink
       ↓
  one ConnectWeb3() API
```## 接続ライフサイクル

ConnectWeb3: web3Modal.connect() → Web3Provider → getAddress。 DisconnectWeb3:clearCachedProvider + Provider.disconnect + リロード。 getNetwork プロバイダーを介して netId を読み取ります。コントラクトゲッターは、initialState.provider で Web3.eth.Contract を確立します。レガシー appWeb3() Infura フォールバックは、メインネット署名パスであってはなりません。```text
connect → address
getNetwork → chainId check
mint/reveal only if chainId OK
disconnect → clear cache → reload
```## ADR: ウォレットのファサードとしての Web3Modal

決定: mint/reveal utils を window.ethereum に直接接続しないでください。モーダル ファサードのアドレスとプロバイダーを指定します。さらに、コネクタを追加するかどうかは製品の決定によって決まります。マイナス: ethers + web3 デュアル スタックとcacheProvider の古い状態。軽減策: mint の前にchainId をアサートし、切断時にキャッシュをクリアします。```text
ADR-04 Web3Modal facade
  UI → ConnectWeb3 / DisconnectWeb3
  Utils → provider from modal state
  Guard → chainId === 1 before send
  Reject → wrong net / no provider
```## メインネット障害のプレイブック

1) 本番環境のスタブ コントラクト アドレス — tx は「成功」として表示されますが、状態は間違っています。 2) 間違ったネットワーク — 署名、メインネット供給は Rinkeby/Goerli では変更されません。 3) ガス価格: 0 — mempool では割安です。 4) ABI の不一致 — multipleMint/reveal エンコード エラー。 5) クライアント バンドルに Pinata/Infura キーを埋め込む — 秘密漏洩 (決してコミットしない)。```text
Hardening checklist
  ✓ real mainnet addresses
  ✓ chainId === 1 gate
  ✓ dynamic gas / tip
  ✓ ABI ↔ deployment lock
  ✓ secrets in env only

このエピソードで最も混乱を招く対戦```text

❌ window.ethereum yeter, modal lüks ✓ Mainnet dönüşümü için çoklu connector ürün gereksinimidir

❌ cacheProvider = her zaman bağlı kal ✓ Stale provider'ı disconnect + clearCachedProvider ile temizle

❌ Infura/Pinata anahtarlarını constants'a yaz ✓ Anahtarlar env/secret store'da; client'a minimum scope


## 独自のシステムのチェックリスト

1. 接続後にchainId === 1がアサートされていますか?
2. ミント送信前のプロバイダーは null ではないでしょうか?
3. 実稼働ビルドでは、gasPrice: 0 がスタックしていますか?
4. nft/reserve/auction アドレスはそれぞれ、メインネットとは異なりますか?
5. WalletConnect / WalletLink コネクタは実際にテストデバイスでテストされましたか?

## このセクションで覚えておくべきこと

1. 1.8 移行: MetaMask のみ → Web3Modal マルチウォレット ファサード。
2. メインネットの強化とは、アドレス、ネットワーク、ガス、ABI、および秘密の規律です。
3. 切断とキャッシュのクリアは再接続 UX の一部です。

> ウォレットの接続は機能ではありません。間違ったネットワークでの署名は、サイレント実稼働イベントです。

FAQ

よくある質問

Web3モーダルとは何ですか?

マルチウォレット接続UI; WalletConnect/WalletLink には、providerOptions が挿入されます。

ウォレットコネクトとは何ですか?

QR/モバイルウォレットブリッジ。 Infura (または RPC) は ID を要求します。

「window.ethereumで十分、モーダル・ラグジュアリー」は正しいでしょうか?

マルチコネクタはメインネット変換の製品要件です

このセクションでは何を修正しますか?

このセクションでは、ウォレットの多様性、ネットワーク検証、ガス、アドレス/ABI 規律など、メインネットの準備状況チェックリストでシリーズを締めくくります。 Gorillas メインネット 1.8 では、All-Stars/1.4 時代の window.ethereum.enable() パスが削除されます。 Web3Modal キャッシュプロバイダーで開きます。 WalletConnect (Infura ID) とカスタム Coinbase WalletLink (chainId: 1) が ProviderOptions に追加されます。 ConnectWeb3 → ethers Web3Provider → アドレス;コントラクト インスタンスはモーダル プロバイダー経由で通信するようになりました。

学んだエンジニアリング原則

  • 単一のウォレットのファサードの背後にある Mint ユーティリティを入手します。
  • 各送信前にchainId、アドレス、ガスを確認してください。
  • バンドルからシークレットを削除します。実際のデバイス上のコネクタを証明します。

続きを読む

続きを読む

シリーズの次のシリーズ

同じシリーズ

同じシリーズ

Paylaş