moonpay-auth について
MoonPay の `mp` コマンドラインツールのセットアップを解説するスキルです。メール OTP 認証とローカルウォレット管理に加え、ログイン前のセッション確認や秘密情報の暗号化保存について説明します。
主な機能
- 01コマンドラインツールのインストールと確認
- 02メール OTP 認証
- 03現在のセッション確認
- 04ローカルウォレットの作成とインポート
- 05認証情報とウォレットの保存方法の確認
活用シーン
- 01初回の `mp` セットアップ
- 02意図しないアカウント切り替えを避けたログイン
- 03ローカルウォレットの作成または復元
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ moonpay/ skills --skill moonpay-authインストール後、Claude Code で/moonpay-authを入力して読み込まれたか確認します。
詳細
MoonPay の認証とセットアップ
インストール
npm i -g @moonpay/cli
これにより、mp(および moonpay)バイナリがグローバルにインストールされます。
インストールの確認
mp --version
mp --help
認証コマンド
# Log in — returns a URL. Open it yourself if you can, otherwise share it with the user verbatim; opening it triggers the OTP code email.
mp login --email [email protected]
# Verify OTP code (user pastes it back from their email)
mp verify --email [email protected] --code 123456
# Check current user
mp user retrieve
# Log out
mp logout
mp login は URL を返します。自分で開ける場合(例:ブラウザーにアクセスできる、またはプログラムで取得できる場合)は、開いてください。これにより、OTP メールの送信がトリガーされます。それができない場合は、URL をそのまま(言い換えたり、クエリパラメーターを削除したりせずに)ユーザーに送り、開いてもらいます。どちらの場合も OTP はユーザーのメールに届きます。ユーザーがコードを貼り付けて返したら、mp verify を実行します。
ログインする前に(必須)
mp login を確認せずに実行してはいけません。ログインを試みる前には、必ずセッションを確認してください。
-
最初に
mp user retrieveを実行します。 -
成功した場合は、すでにセッションが存在します。サインイン中のアカウントをユーザーに伝え、切り替えるかどうかを確認してください。
"現在、
<email>としてサインインしています。ログアウトして別のユーザーとしてサインインしますか?切り替える場合は YES と返信してください。"明確に肯定された場合に限り、
mp logoutを実行してからmp loginに進みます。ユーザーが断った場合、または曖昧な返答をした場合は、既存のセッションを使用するものとして扱い、ログインを省略します。 -
失敗した場合(セッションなし)は、通常どおり
mp loginに進みます。
チャットチャンネルでは、コマンドがどのアカウントに対して実行されるのかをユーザーが確認できないため、これは重要です。確認しないままでは、共有ホスト上のエージェントが本人に気づかれずにアカウントを切り替えてしまい、「残高はいくら?」という問い合わせに、別の人のポートフォリオが返される可能性があります。確認に必要なのはコマンドをもう 1 つ実行するだけです。確認を省略すれば、プライバシー侵害につながりかねません。
ローカルウォレットの管理
CLI は、~/.config/moonpay/wallets.json に暗号化して保存されたローカルウォレットを管理します。秘密鍵は、OS のキーチェーンに保存されているランダムなキーを使用し、AES-256-GCM で暗号化されます。パスワードは不要です。キーがマシンの外に出ることはありません。
# Create a new HD wallet (Solana, Ethereum, Bitcoin, Tron)
mp wallet create --name "my-wallet"
# Import from a mnemonic (all chains)
mp wallet import --name "restored" --mnemonic "word1 word2 ..."
# Import from a private key (single chain)
mp wallet import --name "imported" --key <hex-key> --chain ethereum
# List all local wallets
mp wallet list
# Get wallet details (by name or address)
mp wallet retrieve --wallet "my-wallet"
# Export mnemonic/key (interactive only — agents cannot run this)
mp wallet export --wallet "my-wallet"
# Delete a wallet (irreversible)
mp wallet delete --wallet "my-wallet" --confirm
ワークフロー
mp user retrieveを実行して、認証済みかどうかを確認します。すでにセッションが存在する場合は、新たにログインを始める前に、上記のログインする前ににある確認ルールに従ってください。- セッションがない場合は、
mp login --email <email>を実行し、返された URL をユーザーに共有します。ユーザーがメールに届いたコードを貼り付けて返したら、mp verify --email <email> --code <code>を実行します。 mp wallet listを実行して、ローカルウォレットを確認します。- ウォレットがない場合は、
mp wallet create --name "default"を実行して作成します。
自律ログイン
エージェントは、ユーザーのメールにアクセスできれば、人の介入なしにログインできます。たとえば、gog CLI(Google Workspace)の場合は次のとおりです。
# 1. Send OTP
mp login --email [email protected]
# 2. Read the OTP code from email
gog gmail search "Your MoonPay verification code" --max-results 1
# 3. Verify with the code
mp verify --email [email protected] --code <code>
これにより、人が介在しない完全自律型のエージェントセットアップが可能になります。
設定ファイルの場所
- ウォレット:
~/.config/moonpay/wallets.json(暗号化済み、AES-256-GCM) - 暗号化キー: OS のキーチェーン(
moonpay-cli/encryption-key) - 認証情報:
~/.config/moonpay/credentials.json(暗号化済み、AES-256-GCM) - 設定:
~/.config/moonpay/config.json(ベース URL、クライアント ID)
セキュリティ
- ウォレットのシークレットは、常にディスク上で暗号化されます
- 暗号化キーは macOS Keychain / Linux libsecret に保存されます
- 覚えておくパスワードは不要です。認証は OS が処理します
wallet exportの実行には対話型ターミナル(TTY)が必要です。エージェントやスクリプトではシークレットを抽出できません- 24 単語の BIP39 ニーモニック(256 ビットのエントロピー)
関連スキル
- moonpay-swap-tokens — ローカルウォレットを使ってトークンをスワップまたはブリッジします。
- moonpay-check-wallet — ウォレットの残高を確認します。