---
title: "SeahorseでPythonを使ってSolanaプログラムを書く方法"
description: "Python開発者向けSolanaアプリケーション作成ガイド"
---

# SeahorseでPythonを使ってSolanaプログラムを書く方法

Solanaは、グローバルな普及に向けてスケールするよう構築された、スマートコントラクト機能を備えた高性能ブロックチェーンネットワークです。Solanaは平均で秒間3,000件のトランザクションを処理し、最速のブロックチェーンプロトコルの1つです。Solana Programsは、Solanaブロックチェーンネットワーク上に書かれたスマートコントラクトであり、トークン転送、NFTのミント、オンチェーンでの投票など、あらゆるアクティビティの実行に使用されます。

この記事では、ローカル開発環境およびオンラインIDEから、Seahorse開発フレームワークを使ってPythonでSolana Programsを書く方法を説明します。

## **Solana上でプログラムを開発する主な方法とは？**

**Solana Programsを開発するには、Rustを習得するか、Anchor開発フレームワークで構築するか、あるいはSolana向けのpythonicな開発フレームワークであるSeahorseを使用する必要があります。**

RustはSolanaが構築されているプログラミング言語であり、SolanaのSealevel Runtimeとやり取りするために使用できるデフォルトの[web3プログラミング言語](https://www.alchemy.com/overviews/web3-programming-languages)です。

### **Anchorを使ったSolana開発**

**Anchorは、平均的なユーザーからRust言語の複雑さを抽象化することで、Solanaアプリケーション開発を容易にするために使用されるフレームワークです。**

Anchorは、Solana開発者にInterface Definition Language（IDL）、IDLからクライアントを生成するTypescriptパッケージ、Rustクレート、Command Line Interface（CLI）などのツールを提供します。

### **Seahorseを使ったSolana開発**

**Seahorseはコミュニティ主導のSolana開発フレームワークであり、開発者がPythonプログラミング言語でSolanaプログラムを書けるようにします。**

**‍**Seahorseでは、Pythonで書かれたすべてのプログラムに、Rustプログラムと同じ安全性の仕組みが備わります。SeahorseはAnchorと完全な互換性があり、Rustコードとも相互運用可能です。

**Pythonはウェブアプリケーションや機械学習プロジェクトの日常的なプログラミングで使用されており、最も人気のあるプログラミング言語です。**

ブロックチェーンベースのアプリケーション構築に関心を持つ開発者の多くはすでにPythonのプログラミングスキルを持っている可能性があるため、新しいプログラミング言語（Rust）を学ぶことなく、Seahorseを使ってSolanaアプリケーションを構築できます。

## **ローカルのSolana開発環境でSeahorseを使う方法**

Solana Playgroundのようなプラットフォームは、アプリケーションを素早く構築・テストするためのものであり、大規模な[アプリ](https://www.alchemy.com/dapps/top/defi-dapps)の作成には依存すべきではありません。ローカルワークスペースでSeahorseを使った開発に必要な環境を構築するために、以下をインストールしていきます。

1. Rust
1. The Solana Tool Suite
1. Node
1. Anchor
1. Seahorse

### **1. 必須のSolana開発ツールをインストールする**

Rust、Solana Tool Suite、Node、Anchorをインストールするには、[ローカルのSolana開発環境をセットアップする](https://www.alchemy.com/docs/reference/solana-api-quickstart)このチュートリアルを参照してください。

Linuxベースのマシンを使用している場合、追加の依存関係を加えるために以下のコマンドを実行する必要があるかもしれません。

### **2. Seahorseをインストールする**

Seahorseが正しく動作するには、_Anchor_と_Rustfmt_が必要です。Anchorはすでにマシン上で動作しているはずなので、_Rustfmt_パッケージと_Anchor_のインストールは簡単です。

Rustfmtパッケージを追加するには、以下のコマンドを実行します。

**Seahorseをインストールするには、ターミナルで以下のコマンドを実行します。**

**最後に、Seahorseが正しくインストールされたか確認するために次のコマンドを実行します。**

### 3. ペーパーウォレットを生成する

すでに[Solana Command Line Tools](https://www.alchemy.com/overviews/solana-developer-tools)をインストールしているので、ローカルで作業する際に使用するローカルの「ペーパー」ウォレットを作成できます。

Solana CLIツールがインストールされていることを確認するには、以下のコマンドを実行します。

**次に、新しいキーペアを生成するには、次のコマンドを入力します。**

詳細を適切に保存しておき、ローカル環境で使用できるようにしてください。

**ペーパーウォレットに資金を入れるには:**

`solana airdrop 2`コマンドを実行して、テスト用のSOLトークンを2つ取得します

ローカルで実行する代わりにオンライン開発環境でSeahorseをテストしたい場合、Solana Playgroundが良い選択肢です。

## **Solana PlaygroundでSeahorseをセットアップする方法**

Solana Playgroundは、Solanaアプリケーション開発をすぐに始められるように作られたオンラインの[統合開発環境](https://www.alchemy.com/overviews/solidity-ide)です。

[Solana Playground](https://www.alchemy.com/overviews/solidity-ide)は、以下のプリビルドされたCrateを提供しています。

1. **Native**（Rust） - フレームワークを使わずにSolana上で構築したい開発者向け
1. **Anchor**（Rust） - 追加のツールとともにRustでSolana上に構築したい開発者向け**‍**
1. Seahorse（Python） - Pythonでのプログラミング経験があるSolana開発者向け

<ImageBlock
  src="https://media.alchemy.com/1703683155-solana-playground-selection-screen.png"
  alt="開発フレームワーク（Native、Anchor、Seahorse）を選択するためのSolana Playground選択画面"
  width={1600}
  height={813}
  caption="開発フレームワーク（Native、Anchor、Seahorse）を選択するためのSolana Playground選択画面"
/>

### **1. 新しいSolana Playgroundプロジェクトを作成する**

Solana Playground上でディレクトリ名を指定して新しいプロジェクトを作成します。名前を付けた後、_FizzBuzz_という名前のデモプロジェクトが表示されます。このミニdappを、本チュートリアルの中で使用します。

### **2. Playgroundウォレットを作成する**

Seahorseプログラムとやり取りするために、まずPlayground Walletを生成する必要があります。Playground Walletは、アプリケーションのテストウォレットとして機能します。

- 「playground wallet」をクリックします
- 新しいウォレットを選択します
- 手順に従い、JSONファイルをダウンロードします

<ImageBlock
  src="https://media.alchemy.com/1703683340-creating-new-playground-wallet.jpg"
  alt="新しいPlayground Walletを作成するためのSolana Playgroundインターフェース"
  width={1600}
  height={900}
  caption="新しいPlayground Walletを作成するためのSolana Playgroundインターフェース"
/>

### **3. テスト用のSOLトークンを取得する**

[devnetのSOLトークンを取得する](https://www.alchemy.com/overviews/solana-faucet)には、Playgroundのターミナルで以下のコマンドを入力します。

**$ connect**‍

`connect`コマンドは、テストウォレットとプロジェクトを紐付けます。

**$ solana address**

**‍**`solana address`コマンドは、あなたの[Solanaウォレット](https://www.alchemy.com/overviews/solana-wallets)アドレスを出力します。このアドレスは、後でFizzBuzzアプリを起動する際に使用します。

**$ solana airdrop 2**

`solana airdrop`コマンドは、「Build」や「Deploy」などのトランザクションを実行するために必要な手数料をまかなうため、テスト用のSOLトークンをウォレットに入金します。

<ImageBlock
  src="https://media.alchemy.com/1703683491-solana-playground-project-file.jpg"
  alt="Solana PlaygroundのFizzBuzz Seahorse dappプロジェクトファイル"
  width={1600}
  height={791}
  caption="Solana PlaygroundのFizzBuzz Seahorse dappプロジェクトファイル"
/>

## **SeahorseのPythonコンポーネントの仕組み**

このセクションでは、シンプルで人気のあるFizzBuzzアプリをオンチェーンで作成する手順を見ていきます。コード内には3つの主要なセクションがあります。

1. The Account
1. Instruction 1
1. Instruction 2

### **1. Account**

Executable Accountsは、Solanaブロックチェーン上で実行される実行コード（スマートコントラクト）を定義するために使用されます。Accountsの定義では、Solanaプログラムに必要なデータ型を割り当てることができます。

**Fizz**と**Buzz**はブール型として定義され、「n」変数は符号なし整数型です。

### **2. Instruction 1**

Built-In Accountsと呼ばれる別の種類のアカウントもあります。これらの組み込みアカウントの多くは、オンチェーンでの特定のインストラクションの呼び出しに使用されます。

#### **A. Signerアカウント**

署名者を必要とするインストラクションには、ウォレットの承認が必要です。_Signer_とは、コードのこの部分で定義されたインストラクション呼び出しでトランザクションに署名するウォレットのことです。

ownerキーワードは、Signerの詳細情報の値を保持するために使用されます。Signerの公開鍵を取得するには、以下のコードを追加します。

#### **B. 空のアカウント**

空のアカウントタイプは、最初は空であっても、メインAccount（FizzBuzz）のクラスを初期化するために使用されます。

_Empty_キーワードを使用することで、メインAccountで定義されたクラスを構築できます。FizzBuzzアカウントが初期化されると、作成手数料はOwner（すなわちトランザクションの署名者）によって支払われます。

一度そのアカウントがオンチェーンで作成されると、同じOwnerが再度呼び出しても再作成することはできません。初期化から生成されたシードによって、元のアカウントを特定できます。

### **3. Instruction 2**

2つ目のインストラクション呼び出しでは、すでに作成されたアカウントとその値を使用します。

FizzBuzzの完全なコードサンプルは以下の通りです。

## **SeahorseでPythonを使ったSolanaアプリケーションの構築を始めよう**

Seahorseはコミュニティ主導のオープンソースプロジェクトであり、完全に無料で公開利用できます。Seahorseは現在ベータ版であり、多くの機能はまだ実装されていません。本番環境向けではありませんが、[Solanaのdevnet](https://www.alchemy.com/overviews/solana-devnet)上でアプリケーションを実験・開発するために使用できます。

Seahorseを使えば、Pythonを使ったSolana上での構築が可能でシンプルになります。あなたがPythonの[web3開発を学びたい開発者](https://www.alchemy.com/overviews/how-to-learn-web3-development)であれば、Solana PlaygroundでSeahorseを試してみることは、Anchor、Rust、Solanaプログラムのスキルを身につけ始めるための、安全で楽しい方法です。
