Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions docs/AI/AI-Agent-JPYC-ChatApp/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# AI-Agent-JPYC-ChatApp

![](/metadata/AI-Agent-JPYC-ChatApp/learn-banner.jpg)
112 changes: 112 additions & 0 deletions docs/AI/AI-Agent-JPYC-ChatApp/section-1/lesson-0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
---
title: プロジェクトの概要
---

### 👋 AI Agent × JPYC チャットアプリへようこそ

```sh
※ 本サービス(コンテンツ・作品等)はJPYC株式会社による公式コンテンツではありません。
※ 「JPYC」はJPYC株式会社の提供するステーブルコインです。
※ JPYC及びJPYCロゴは、JPYC株式会社の登録商標です。
```

このプロジェクトでは、AI AgentとJPYC(日本円ステーブルコイン)を組み合わせたインタラクティブなチャットアプリケーションを構築します。

AI Agentが自律的にJPYCを使った送信や残高確認などの操作を行える、次世代のAI×web3のアプリケーションを体験しましょう。

### 🎯 このプロジェクトで学べること

このプロジェクトを通じて、以下のスキルを習得できます:

1. **JPYC(日本円ステーブルコイン)の基礎知識**
- JPYCとは何か、どのように動作するか
- JPYC SDKの使い方

2. **AI Agentの実装方法**
- AI Agentの基本概念
- Mastraフレームワークを使ったAgent開発

3. **MCP(Model Context Protocol)の理解と実装**
- MCPとは何か
- AI Agentにweb3機能を追加する方法

4. **フルスタック開発スキル**
- バックエンド:TypeScript、Node.js
- フロントエンド:Next.js、React
- AI統合:Claude API、Mastra

### 🛠 何を作るのか?

このプロジェクトでは、以下の機能を持つチャットアプリケーションを構築します:

- **AI Agentとの自然な対話**:ユーザーはAI Agentと自然言語でコミュニケーション
- **JPYC送信機能**:「〇〇さんに100 JPYC送って」とお願いすると、AI Agentが自動で送信処理
- **残高確認機能**:「残高を教えて」と聞くと、AI Agentが現在のJPYC残高を確認
- **トランザクション履歴**:過去の取引履歴をAI Agentが取得・表示

### 🌟 このプロジェクトの魅力

**web3 × AI の融合**

従来のweb3アプリケーションでは、ユーザーが手動でウォレットを操作する必要がありました。しかし、AI Agentを組み合わせることで、自然言語での指示だけでブロックチェーン操作が可能になります。

**実用的なステーブルコイン体験**

JPYCは日本円と1:1でペッグされたステーブルコインです。価格変動が少ないため、実際の決済や送信のユースケースに最適です。

**最新技術の習得**

- **MCP(Model Context Protocol)**:Anthropic社が提唱する、AI Agentとツールをつなぐためのプロトコル
- **Mastra**:AI Agentを簡単に構築できるモダンなフレームワーク
- **JPYC SDK**:JPYCを扱うための専用SDK

### 📚 前提知識

このプロジェクトを始める前に、以下の基礎知識があると理解がスムーズですが、なくても開発できます! :

- JavaScriptまたはTypeScriptの基本文法
- React.jsやNext.jsの基礎
- ブロックチェーンとウォレットの基本概念

### 🚀 プロジェクトの流れ

このプロジェクトは、以下の5つのセクションで構成されています:

**セクション1:**
JPYCやAI Agent、MCP、Mastraなどの基礎知識を学びます。

**セクション2:セットアップ**
開発環境を構築し、必要な依存関係をインストールします。

**セクション3:MCPの実装**
JPYC操作のためのMCPサーバーを実装します。

**セクション4:MCPの組み込み**
MastraフレームワークにMCPを統合し、AI AgentにJPYC操作機能を追加します。

**セクション5:フロントエンドの実装**
Next.jsでユーザーインタフェースを構築し、アプリケーションを完成させます。

### 🎓 このプロジェクトを終えると

プロジェクト完了後、あなたは以下のことができるようになります:

- AI Agentとweb3を組み合わせたアプリケーションを開発できる
- MCPを使ってAI Agentに独自の機能を追加できる
- JPYCを使った実用的な決済アプリを構築できる
- Mastraフレームワークを活用したAI Agent開発ができる

### 🙋‍♂️ 質問する

ここまでの作業で何かわからないことがある場合は、Discordの`#jpyc`で質問をしてください。

ヘルプをするときのフローが円滑になるので、エラーレポートには下記の4点を記載してください ✨

1. 質問が関連しているセクション番号とレッスン番号
2. 何をしようとしていたか
3. エラー文をコピー&ペースト
4. エラー画面のスクリーンショット

---

次のレッスンに進んで、本格的な開発を始めましょう!
76 changes: 76 additions & 0 deletions docs/AI/AI-Agent-JPYC-ChatApp/section-1/lesson-1.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
---
title: JPYCについて
---

※ 本コンテンツはJPYC株式会社による公式コンテンツではありません。

### 💴 JPYC とは?

JPYC(JPY Coin)は、日本円と1:1でペッグされた**日本円ステーブルコイン**です。

2025年8月に、JPYC株式会社は資金決済法に基づく**資金移動業者(第二種)**の登録を得ました。これにより、国内で最初の、日本円と1:1で連動する電子決済手段(ステーブルコイン)を発行可能な資金移動業者となり、2025年10月27日より正式に発行を開始しています。

詳細は[JPYC公式サイト](https://jpyc.co.jp/)をご覧ください。

### 🔑 JPYC の特徴

**1. 高速かつ低コストな送信**

従来の銀行振込と比較して、JPYCを使った送信は下記の特徴があります:
- 24時間365日いつでも送信可能
- 数秒〜数分で着金
- 低い手数料(ブロックチェーンの手数料のみ)

**2. プログラマビリティ**

JPYCはERC20規格(イーサリアム互換)のトークンの拡張として発行されており、スマートコントラクトと組み合わせることで、自動送信や条件付き決済などの複雑な処理を実装できます。

**3. 透明性とトレーサビリティ**

すべての取引がブロックチェーン上に記録されるため、透明性が高く、取引履歴を追跡することができます。

**4. JPYCは複数のブロックチェーンで発行**

- **Ethereum**(イーサリアム)
- **Polygon**(ポリゴン)
- **Avalanche**(アバランチ)

### 📖 JPYC の仕組み

JPYCの発行と償還は、専用プラットフォーム「JPYC EX」を通じて行われます。
ユーザーが保有しているJPYCは、不特定多数の間で、自由に、金額の制限なく移転が可能です。

発行の手順
1. 本人確認したユーザーが発行予約を行う。
2. 予約時に指定された銀行口座に、銀行振込で送信する
2. 振込金額と同額のJPYCが発行される

償還の手順
1. 本人確認したユーザーが償還予約を行う。
2. 予約時に指定されたアドレスに、JPYCを送信する
3. 送信したJPYCと同額の日本円が登録の出金先口座に振込される。

### 💡 このプロジェクトでの JPYC の役割

このプロジェクトでは、AI AgentがJPYCを使って以下の操作を行います:

- **総供給量確認**:JPYCの流通額を取得
- **残高確認**:ユーザーのJPYC残高を取得
- **送信処理**:指定されたアドレスにJPYCを送信

AI Agentが自然言語での指示を理解し、これらの操作を自動的に実行することで、より直感的なweb3体験を提供します。

### 🙋‍♂️ 質問する

ここまでの作業で何かわからないことがある場合は、Discordの`#jpyc`で質問をしてください。

ヘルプをするときのフローが円滑になるので、エラーレポートには下記の4点を記載してください ✨

1. 質問が関連しているセクション番号とレッスン番号
2. 何をしようとしていたか
3. エラー文をコピー&ペースト
4. エラー画面のスクリーンショット

---

次のレッスンでは、JPYC SDKについて学びます!
132 changes: 132 additions & 0 deletions docs/AI/AI-Agent-JPYC-ChatApp/section-1/lesson-2.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
---
title: JPYC SDKについて
---

### 🛠 JPYC SDK とは?

JPYC SDK(`@jpyc/sdk-core`)は、JPYCコントラクトと簡単にやり取りできるNodeJS向けのインタフェースです。

ブロックチェーンの複雑な処理を抽象化し、開発者が簡単にJPYC機能を実装できるようになっています。このSDKは[JPYC v2コントラクト](https://github.com/jcam1/JPYCv2)に対応しており、複数のブロックチェーンネットワークをサポートしています。

### ✨ JPYC SDK の今回のプロジェクトでの使用例

**1. 総供給量取得**

JPYCの総供給量を取得します。

```typescript
const totalSupply = await jpyc.totalSupply();
console.log(`総供給量: ${totalSupply.toString()}`);
```

**2. 残高取得**

ユーザーのJPYC残高を取得します。

```typescript
const balance = await jpyc.balanceOf(address);
console.log(`残高: ${balance} JPYC`);
```

**3. 送信処理**

指定したアドレスにJPYCを送信します。

```typescript
const tx = await jpyc.transfer(
recipientAddress,
amount
);
console.log(`送信完了: ${tx.hash}`);
```

### 📦 JPYC SDK のインストール

JPYC SDKは、npmまたはyarnを使ってインストールできます:

```bash
# npm
npm i @jpyc/sdk-core

# または yarn
yarn add @jpyc/sdk-core
```

### 🔧 JPYC SDK の初期化

JPYC SDKを使用するには、以下の4ステップで初期化を行います:

```typescript
import { JPYC, SdkClient } from '@jpyc/sdk-core';

// 1. SdkClientインスタンスを初期化
const sdkClient = new SdkClient({
chainId: 137, // Polygon PoS
rpcUrl: 'YOUR_RPC_ENDPOINT_URL',
});

// 2. 秘密鍵からEOA(外部所有アカウント)を設定
const account = sdkClient.configurePrivateKeyAccount({
privateKey: 'YOUR_PRIVATE_KEY',
});

// 3. アカウントを使ってウォレットクライアントを設定
const client = sdkClient.configureClient({
account,
});

// 4. クライアントを使ってJPYCインスタンスを初期化
const jpyc = new JPYC({
env: 'prod', // 'prod' または 'local'
contractType: 'jpyc', // 'jpyc' または 'jpycPrepaid'
localContractAddress: undefined, // ローカルネットワーク使用時のみ設定
client,
});
```

**重要なポイント**:

- SDKは環境変数を暗黙的に使用しません。秘密鍵などの機密データは安全にロードしてください
- `chainId`には後述のサポートされているチェーンIDを使用します
- 本番環境では`env: 'prod'`、ローカル開発では`env: 'local'`を指定します

### 🌐 サポートするネットワーク

JPYC SDKは、JPYCが発行されている3つのチェーンとテストネットでサポートされています。
- Ethereum Mainnet
- Ethereum Sepolia Testnet
- Polygon PoS Mainnet
- Polygon Amoy Testnet
- Avalanche Mainnet
- Avalanche Fuji Testnet

このプロジェクトでは、**各テストネット**を使用します。

### 📚 このプロジェクトでの JPYC SDK の役割

このプロジェクトでは、JPYC SDKをMCP(Model Context Protocol)サーバーに統合します。

MCPサーバーがJPYC SDKを使用してブロックチェーン操作を行い、AI Agentがそれを自然言語で制御します。

それではAI AgentやMCPについて次のセクション以降で学んでいきましょう!

### 📖 参考資料

- [JPYC SDK公式ドキュメント](https://jcam1.github.io/sdks/)
- [JPYC SDK GitHub リポジトリ](https://github.com/jcam1/sdks)
- [JPYC v2コントラクト](https://github.com/jcam1/JPYCv2)

### 🙋‍♂️ 質問する

ここまでの作業で何かわからないことがある場合は、Discordの`#jpyc`で質問をしてください。

ヘルプをするときのフローが円滑になるので、エラーレポートには下記の4点を記載してください ✨

1. 質問が関連しているセクション番号とレッスン番号
2. 何をしようとしていたか
3. エラー文をコピー&ペースト
4. エラー画面のスクリーンショット

---

次のレッスンでは、AI Agentについて学びます!
Loading