HumanaryHumanary
人間を探すOrbを探すMiniAppを探すWorldガイドWorld Quiz
読み込み中...
  1. ホーム
  2. /
  3. ガイド
  4. /
  5. Mini App開発ガイド
開発者向け

Mini App開発ガイド

MiniKit-JS SDKでWorld App向けアプリを開発しよう

この記事のポイント

  • ✓World App Mini Appは既存のWeb技術(React/Next.js等)で開発可能。専用SDKは不要
  • ✓MiniKitライブラリでWorld IDの認証・ウォレット連携・決済機能を簡単に統合
  • ✓開発時はWorld App Simulatorでテスト可能。実機テストにはWorld App Developer Portalの登録が必要
  • ✓Mini Appの審査通過後、World App内のディスカバリーに表示され数百万ユーザーにリーチ可能

目次

  • 1. Mini App開発の概要
  • 2. MiniKit-JSのセットアップ
  • 3. World ID認証の実装
  • 4. USDC決済の実装
  • 5. テストとデバッグ
  • 6. リソースとドキュメント

1. Mini App開発の概要

Mini Appsは、World App内で動作するWebアプリケーションです。MiniKit-JS SDKを使うことで、 World AppのネイティブUIやWorld ID認証、決済機能と連携できます。

できること

🔐

World ID認証

ユーザーがOrb認証済みの人間かを確認

💳

USDC決済

World Chain上でのステーブルコイン決済

👤

ユーザー情報取得

ウォレットアドレス、ユーザー名などの取得

📱

ネイティブUI連携

World Appのネイティブ機能を活用

技術スタック

  • • フロントエンド:React, Next.js, Vue.js, Vanilla JS
  • • SDK:@worldcoin/minikit-js, @worldcoin/minikit-react
  • • UI Kit:mini-apps-ui-kit-react (オプション)
  • • Blockchain:World Chain (Optimism L2)

2. MiniKit-JSのセットアップ

インストール

# npm
npm install @worldcoin/minikit-js

# React用(オプション)
npm install @worldcoin/minikit-react

# UIキット(オプション)
npm install @worldcoin/mini-apps-ui-kit-react

React/Next.jsでの初期化

components/MiniKitProvider.tsx

"use client";

import { MiniKit } from "@worldcoin/minikit-js";
import { useEffect, ReactNode } from "react";

export function MiniKitProvider({ children }: { children: ReactNode }) {
  useEffect(() => {
    MiniKit.install();
  }, []);

  return <>{children}</>;
}

app/layout.tsx

import { MiniKitProvider } from "@/components/MiniKitProvider";

export default function RootLayout({ children }) {
  return (
    <html>
      <body>
        <MiniKitProvider>
          {children}
        </MiniKitProvider>
      </body>
    </html>
  );
}

Mini Appの検出

import { MiniKit } from "@worldcoin/minikit-js";

// World App内で動作しているか確認
if (MiniKit.isInstalled()) {
  console.log("World App内で動作中");
} else {
  console.log("ブラウザで動作中");
}

3. World ID認証の実装

MiniKitを使うと、ユーザーがOrb認証済みの人間かを簡単に確認できます。

認証の実装

import { MiniKit, VerificationLevel } from "@worldcoin/minikit-js";

async function verifyUser() {
  if (!MiniKit.isInstalled()) {
    return { success: false, error: "World App required" };
  }

  try {
    const result = await MiniKit.commandsAsync.verify({
      action: "your-app-action-id", // Developer Portalで設定
      verification_level: VerificationLevel.Orb, // Orb認証を要求
    });

    if (result.finalPayload.status === "success") {
      // バックエンドで検証
      const response = await fetch("/api/verify", {
        method: "POST",
        body: JSON.stringify(result.finalPayload),
      });

      return { success: true, data: await response.json() };
    }
  } catch (error) {
    return { success: false, error };
  }
}

認証レベル

VerificationLevel.Orb

Orb認証済みユーザーのみ許可。最も高いセキュリティレベル。

VerificationLevel.Device

デバイス認証レベル。より多くのユーザーが利用可能。

⚠️

重要

認証結果は必ずバックエンドで検証してください。フロントエンドだけでの検証は安全ではありません。

4. USDC決済の実装

MiniKitを使うと、World Chain上でのUSDC決済を簡単に実装できます。ウォレット接続不要、手数料無料の決済体験を提供できます。

決済の実装

import { MiniKit, Tokens, tokenToDecimals } from "@worldcoin/minikit-js";

async function initiatePayment(amount: number, reference: string) {
  if (!MiniKit.isInstalled()) {
    return { success: false, error: "World App required" };
  }

  try {
    const result = await MiniKit.commandsAsync.pay({
      reference,  // 注文IDなど
      to: "0xYourWalletAddress",  // 受取先アドレス
      tokens: [
        {
          symbol: Tokens.USDCE,  // USDC
          token_amount: tokenToDecimals(amount, Tokens.USDCE).toString(),
        },
      ],
      description: "商品購入",
    });

    if (result.finalPayload.status === "success") {
      // 決済成功
      return {
        success: true,
        transactionId: result.finalPayload.transaction_id
      };
    }
  } catch (error) {
    return { success: false, error };
  }
}

対応トークン

  • • Tokens.USDCE:USDC(ステーブルコイン)
  • • Tokens.WLD:WLDトークン

メリット

  • ✅ ウォレット接続不要 - ユーザーはタップするだけ
  • ✅ ガス代無料 - World Chain上のトランザクション
  • ✅ 即時決済 - 秒単位で完了
  • ✅ 中間業者なし - ダイレクトな送金

5. テストとデバッグ

ローカル開発

1

NGROKでローカルを公開

ngrok http 3000

NGROKで公開URLを取得し、World Appからアクセス可能にします

2

Developer Portalで設定

Developer PortalでApp URLをNGROK URLに設定

3

World Appでテスト

実機のWorld Appから直接Mini Appを開いてテスト

デバッグのヒント

  • • console.logを活用してSDKのレスポンスを確認
  • • MiniKit.isInstalled()でWorld App環境を検出
  • • ブラウザでのフォールバック動作も実装しておく
  • • エラーハンドリングを丁寧に実装

6. リソースとドキュメント

📚

公式ドキュメント

docs.world.org/mini-apps - 最新のAPI仕様とガイド

🐙

GitHub - MiniKit-JS

SDKのソースコードとサンプル

🔧

Developer Portal

アプリ登録、Action ID取得、設定管理

📦

npm - @worldcoin/minikit-js

パッケージ情報とバージョン履歴

テンプレートリポジトリ

  • • React template (バックエンド付き)
  • • Vanilla JS template
  • • Next.js template

GitHubのworldcoin/minikit-jsリポジトリから入手可能

招待特典

5,000円相当を追加でGET

以下の招待コードを使うと、約5,000円相当のWLDが追加で付与されます。

World Appを入手
既にアプリをお持ちの方 → 招待コード:6YQ47NH
招待コードの使い方・注意点はこちら

関連記事

Mini Apps使い方ガイド

ユーザー向けMini Apps解説

開発者向けWorld ID

World IDの技術的な詳細

World ID対応サービス

World IDが使えるサービス一覧

ガイド一覧に戻る
共有:

Humanary

WorldのOrb認証を完了した人だけが登録できるプロフィールサービス

リソース

  • よくある質問
  • Orbマップ
  • ユーザー一覧

法的情報

  • 利用規約
  • プライバシーポリシー
  • 運営者情報

© 2025 BBBandCompany Inc. · Unofficial · World ID™ is a trademark of TFH