Flow blockchain / Cadence version1.0ドキュメント

:::note info
ⓘ このドキュメントは、Flow blockchainによるDApp(分散型アプリケーション)構築の始め方ドキュメントの完全翻訳ページです。
:::

1. [flow developers](#flow-developers)
1. [Cadenceの言語仕様を学ぶ](#cadenceの言語仕様を学ぶ)
1. [Flow CLI と FCL](#flow-cli-と-fcl)
1. [開発方法](#開発方法)
1. [脚注](#脚注)

<h3>flow developers</h3>

:::note info
**Flow blockchain**は、Crypto Kitties、NFT(ERC-721)を開発してきた日本にも馴染み深いDieter Shirleyという人が新たに開発したブロックチェーンであり、Flow blockchainのスマートコントラクトを作成するプログラミング言語の事を**Cadence**といいます。

**米金融大手VISA**は、NFTの人気が最も高かった2021年に出したホワイトペーパーの中で、NFTに相応しいブロックチェーンとしてイーサリアムと**Flow**を挙げました。今も「Visa whitepaper for NFT in 2021」でGoogle検索すると[**その資料**](https://usa.visa.com/dam/VCOM/regional/na/us/Solutions/documents/visa-nft-whitepaper.pdf)<sup>[[1]](#脚注)</sup>が出てきます。

**ESportsで参考になるスマートコントラクトは?**
aiSportsのコントラクトが参考になると思います。aiSports創立者は実力派のCadenceエンジニアで、Flow blockchain公式がコンクールなどで優秀と取り上げています。

[aiSports](https://flow.com/post/how-aisports-built-a-fantasy-game-on-top-of-nba-top-shot)の**スマートコントラクト**(の一つ)はこちら: https://contractbrowser.com/A.4fdb077419808080.aiSportsEscrow

このURLはスマートコントラクトのコードを閲覧できるサイトで、検索する場所にaiSportsと入れると以下画像のように7つ出てきます。どれもESportsの参考になるコントラクトだと思います。
![スクリーンショット 2025-03-06 8.05.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3912821/c022b0d8-9446-4097-82f7-f8629c51559e.png)

:::

クリックすると各ページに飛びます

- [Why Flow](https://qiita.com/flowcadence/items/b6acebdde2b9a6a417c3)
- [Differences vs. EVM](https://qiita.com/abcdefgac153131/items/dd17b842da62ae1fc37b)
- Flow Protocol
  - [Blocks](https://qiita.com/abcdefgac153131/items/5242f5342667771f4d30)
  - [Collections](https://qiita.com/flowcadence/items/a3f85e924b5aec3e2624)
  - [Accounts](https://qiita.com/abcdefgac153131/items/83d778f84f462cb43318)
  - [Transactions](https://qiita.com/flowcadence/items/6393a2af33f82475a7ca)
  - [Scripts](https://qiita.com/flowcadence/items/dad3bb9e1b7c90b855e8)
  - [Fees](https://qiita.com/flowcadence/items/c4c24a01ec3d6b7429e2)
- Advanced Concepts
  - [FLIX (Flow Interaction Templates)](https://qiita.com/abcdefgac153131/items/e99d6da94296950204e2) (トランザクションの安全強化を行う)
- Guides
  - [Account Linking](https://qiita.com/abcdefgac153131/items/b41866abc1858ba8acd1) (スマートコントラクトを活用して親子アカウントの関係を作る)
    - [Building Walletless Applications Using Child Accounts](https://qiita.com/flowcadence/items/aa94c0ba2cdf670dab5d)
    - [Working With Parent Accounts](https://qiita.com/flowcadence/items/e9a3fc97d60bb007b878) (親子アカウントを作成した後のクエリー一覧)
- [Core Smart Contracts](https://qiita.com/flowcadence/items/e40267a3b8969f140431) (Flow blockchain公式が作成/管理しているスマートコントラクト)
  - [Fungible Token](https://qiita.com/flowcadence/items/2c2451d0b6bd889f407d)
  - [Flow Token](https://qiita.com/flowcadence/items/41308221443f207a7921)
  - [Service Account](https://qiita.com/flowcadence/items/c11bd0dfea9691961946) (Flowの運営オペレーター用アカウント)
  - [Flow Fees](https://qiita.com/flowcadence/items/0f41148ca231a09d1efb)
  - [Staking Table](https://qiita.com/flowcadence/items/1d432b038762c7bf8063)
  - [Epoch Contracts](https://qiita.com/flowcadence/items/f5e22a34d79769cb5c5d) (エポックのコード)
  - [Non-Fungible Token](https://qiita.com/flowcadence/items/152a2fb0c9acb1a6769c)
  - [NFT Metadata](https://qiita.com/flowcadence/items/191e2e765391e636a89c) (ViewResolver, MetadataViews, NFTカタログの説明)
  - [NFT Storefront](https://qiita.com/flowcadence/items/93a05e653883a93b617a) (OpenSeaのようなマーケットプレイスシステムを作れる)
  - [Staking Collection](https://qiita.com/flowcadence/items/89d155bb9a803da06b45)
  - [Account Linking](https://qiita.com/flowcadence/items/59158ab2b64af5844082)
  - [EVM](https://qiita.com/flowcadence/items/84d2ab27cfc5080c92e6)
  - [Burner](https://qiita.com/flowcadence/items/ee2edba3ed870402dac3)

<h3>Cadenceの言語仕様を学ぶ</h3>

:::note info
 **Cadence(version1.0)** は、Flow blockchain 上でスマートコントラクトを作る際の現行のプログラミング言語です。ブロックチェーン上で作成したアカウントに紐づくストレージに、Pathという論理パスを作り、そこにスマートコントラクトから作成したリソースやCapabilityを保存し、スマートコントラクトに対してリソース経由でアクセスすることで、デジタル通貨などを条件に沿ってやり取りできるようになります。
> **Flow blockchainの特徴は"easy to build"** です。スマートコントラクト言語をjQueryみたいにスラスラとブロックチェーンに繋がるコードを書けて、ウォレットとの繋がり方やコマンドラインツールも、一貫して一つの理念のもとに開発の手が止まらないように書きやすく作られています。一度コードを書いてみるとその美しい文法スタイルから何て書きやすいプログラミング言語なんだ、と感じるはずです。Swift言語に酷似していますが、JavaScript(TypeScript)エンジニアとも相性が良いスマートコントラクト言語です。
ウォレットで作成したアカウントには無料でストレージが割り振られており、自由に保存できます。そこに保存されるのは、コインやNFTなどの資産、スマートコントラクト、そして鍵です。ストレージの持ち主にしかこれらを移動させることができませんが、その内容を変更するトランザクションというのがあり、これを安全にプログラミングしてシステムを構築することができます。そして実際に移動します。コピーは不可能です。スマートコントラクトのデプロイ者はこの仕組みを使って世界中で事業を行うことができます。
* [Flowで何ができるのか?](https://qiita.com/flowcadence/items/2911220eb06a20beea14)
* [Flowのトランザクションって一体何?](https://qiita.com/flowcadence/items/27ef976c2f2493146dd6)
* [Flowの強みは実際に自分の強みをお金に変えられる](https://qiita.com/flowcadence/items/2ef6bb711f8e1446814d)
* [Flowのもう一つの特徴](https://qiita.com/flowcadence/items/bd9dd37723dab0557064)
* [リソースから情報を取り出す](https://qiita.com/flowcadence/items/8ff1ed3535bc368f7c68)
* [リソースを生成する](https://qiita.com/flowcadence/items/8443d8965a8f98486fa8)
* [トランザクションを自動化する](https://qiita.com/flowcadence/items/a701a42d833c63ef3b9a)
* [何がセットアップに必要?](https://qiita.com/flowcadence/items/8cc25249cda37364cac1)
* [乱数生成と現在時刻取得のグローバル関数の利用](https://qiita.com/flowcadence/items/e1e67cd8d904ece357e8)
* [商取引をLinear Types(`<-`記号)で安全に短時間で実装できる](https://qiita.com/flowcadence/items/0d3f809c2a4b331b1ca4)
:::

*Cadence v1.0のコードサンプルについては[開発方法](#開発方法)をご覧ください*
* [Introduction](https://qiita.com/abcdefgac153131/items/87147a26f1d2b89b46ca)
* [Why Use Cadence?](https://qiita.com/abcdefgac153131/items/39aa658f81f39a30e861)
* Tutorial
  - [1. First Steps](https://qiita.com/abcdefgac153131/items/d74e796356935d409ba4)
  - [2. Hello World](https://qiita.com/abcdefgac153131/items/8d5bce1f1feaf5404d2b)
  - [3. Resource Contract Tutorial](https://qiita.com/abcdefgac153131/items/891aaf12938b0e697ad3)
  - [4. Capability Tutorial](https://qiita.com/abcdefgac153131/items/87b1cc1ff58417dc086d)
  - [5.1 Non-Fungible Token Tutorial Part 1](https://qiita.com/abcdefgac153131/items/ee22ed2ce344620c79da)
  - [5.2 Non-Fungible Token Tutorial Part 2](https://qiita.com/abcdefgac153131/items/0f791b45ca9fd289944a)
  - [6. Fungible Token Tutorial](https://qiita.com/abcdefgac153131/items/d4f98c76d5f88d447345)
  - [7. Marketplace Setup](https://qiita.com/abcdefgac153131/items/20c399a90a9cd9eb5250)
  - [8. Marketplace (⇦Capability削除に関する説明はここ)](https://qiita.com/abcdefgac153131/items/4ccd756d0a2a71c6059b)
  - [9. Voting Contract](https://qiita.com/abcdefgac153131/items/284a96590784650acc3c)
  - [10. Composable Resources](https://qiita.com/abcdefgac153131/items/729d4317f64df7882783)
* [Language Reference](https://qiita.com/abcdefgac153131/items/9b08c176d64eff402a4d)
  - [Syntax](https://qiita.com/abcdefgac153131/items/29b0617fdfbf652c5425)
  - [Constants and Variable Declarations](https://qiita.com/abcdefgac153131/items/7224da752f0788e6a5e6)
  - [Type Annotations](https://qiita.com/abcdefgac153131/items/aefb58373b7b6dc956d9)
  - [Values and Types(⇦組み込み型の全関数およびプロパティ)](https://qiita.com/abcdefgac153131/items/c917af1e35cd46cf6a7f)
  - [Operators](https://qiita.com/abcdefgac153131/items/3220cbef5b83f3d27f7a)
  - [Functions(⇦関数)](https://qiita.com/abcdefgac153131/items/6518644e68d32b032530)
  - [Control Flow](https://qiita.com/abcdefgac153131/items/49857b417bbc90cfa50b)
  - [Scope](https://qiita.com/abcdefgac153131/items/4e7652187e58908f3d7e)
  - [Type Safety](https://qiita.com/abcdefgac153131/items/48303ea74f8e783d9d06)
  - [Type Inference(⇦型推論)](https://qiita.com/abcdefgac153131/items/cf6493f9fd297b677452)
  - [Composite Types (⇦構造体はここ)](https://qiita.com/abcdefgac153131/items/d15aeb14b6bbddd9e717)
  - [Resources](https://qiita.com/abcdefgac153131/items/f9b95df70c80a90d3a20)
  - [Access control (⇦Entitlementはここ)](https://qiita.com/abcdefgac153131/items/572df270135946f5290e)
  - [Capabilities](https://qiita.com/abcdefgac153131/items/85e1aaf7e41d1134fa6c)
  - [Interfaces](https://qiita.com/abcdefgac153131/items/765a76e4fac1220ea7d9)
  - [Enumerations](https://qiita.com/abcdefgac153131/items/13f888d2028c25a86a78)
  - [Intersection Types (⇦インタフェースを型にします)](https://qiita.com/abcdefgac153131/items/582db1a97e279dfe033f)
  - [References](https://qiita.com/abcdefgac153131/items/115d12a5deafc732636d)
  - [Imports](https://qiita.com/abcdefgac153131/items/72c88b02cfc21fd71983)
  - [Accounts(⇦アカウント)](https://qiita.com/abcdefgac153131/items/5ddbb79fe8438850cf57)
    - [Paths](https://qiita.com/abcdefgac153131/items/9767ec3f9b8d757d75bf)
    - [Storage(⇦アカウントストレージ)](https://qiita.com/abcdefgac153131/items/129d58ae7cb962056c6c) (Storage操作のEntitlementの説明)
    - [Capabilities](https://qiita.com/abcdefgac153131/items/b70151356f4e548f2c91) (Capability操作のEntitlementの説明)
    - [Keys](https://qiita.com/abcdefgac153131/items/19710392d7fb55545db4) (Key操作のEntitlementの説明)
    - [Contracts](https://qiita.com/abcdefgac153131/items/c8661fbf9eae32ce5926) (Contract操作のEntitlementの説明)
    - [Inbox (⇦Capabilityを譲渡します)](https://qiita.com/abcdefgac153131/items/db88a071c732f68cc7fb)
  - [Attachments](https://qiita.com/abcdefgac153131/items/4b41229869c45bc8a4df)
  - [Contracts(⇦スマートコントラクト)](https://qiita.com/abcdefgac153131/items/91a5ecb5812af1f98bef)
  - [Contract Updatability](https://qiita.com/abcdefgac153131/items/af1cfaf57838ed7f2401)
  - [Transactions(⇦トランザクション)](https://qiita.com/abcdefgac153131/items/0d73ce09c9da04d8b697)
  - [Events](https://qiita.com/abcdefgac153131/items/07a1cd2e6ca15272900f)
  - [Core Events](https://qiita.com/abcdefgac153131/items/5e0aea26c0ce24fab7e9)
  - [Run-time Types](https://qiita.com/abcdefgac153131/items/043595e6f6e738cfbece)
  - [Built-in Functions(⇦疑似乱数の生成はここ)](https://qiita.com/abcdefgac153131/items/e1528810ca4a72c8f521)
  - [Environment Information](https://qiita.com/abcdefgac153131/items/f7b6150b33edb466f58b)
  - [Crypto](https://qiita.com/abcdefgac153131/items/1bdc645b097a5efbb9cf) (Flowで使われている暗号の詳細説明)
  - [Type Hierarchy](https://qiita.com/abcdefgac153131/items/69898a231128e74407b1)
  - [Glossary(⇦記号)](https://qiita.com/abcdefgac153131/items/8e3287f9a4cd9b822065)
* [Design Patterns](https://qiita.com/abcdefgac153131/items/bc0dad9850d2d6eaf7d2)
* [Cadence Anti-Patterns](https://qiita.com/abcdefgac153131/items/80a8b5310d2b6ad383ad)
* [Development Standards](https://qiita.com/abcdefgac153131/items/d3c85d8bdec700424c5b) (`///`ドキュメントコメントの説明)
* [Cadence Security Best Practices](https://qiita.com/abcdefgac153131/items/352281011d0049abcdeb)
* [Guide for Solidity Developers](https://qiita.com/abcdefgac153131/items/13279fc2ca2970c3e433)
* [Contract Upgrades with Incompatible Changes](https://qiita.com/abcdefgac153131/items/498b5469c8fd62715e55)
* [JSON-Cadence format](https://qiita.com/abcdefgac153131/items/24135a1ea2f755e7fd19)
* [Measuring Time In Cadence(⇦現在時刻取得はここ)](https://qiita.com/abcdefgac153131/items/1aefd14bce23a00518ec)
* [Testing](https://qiita.com/abcdefgac153131/items/831eeb4521c4b645fb04)

<h3 id="Flow-CLI-と-FCL">Flow CLI と FCL</h3>

:::note info
WebブラウザーやNode.jsからブロックチェーンに対してトランザクションを実行するには **[Flow Client Library(FCL)](https://developers.flow.com/tools/clients/fcl-js)** を使用します。アカウントやキーを作成したりスマートコントラクトをデプロイする時には **[Flow CLI](https://developers.flow.com/tools/flow-cli)** を使用することができます。

翻訳元は[こちら](https://developers.flow.com/tools/flow-cli) (※Flow CLIとFCLは頻繁にドキュメントと仕様が更新されます)
:::


* [Flow CLI](https://qiita.com/abcdefgac153131/items/5ead732fad703556487d?utm_campaign=post_article&utm_medium=twitter&utm_source=twitter_share)
  - [Install Instructions](https://qiita.com/abcdefgac153131/items/530223569e603e10e1a7)
  - [Super Commands](https://qiita.com/abcdefgac153131/items/7009b1f3b889e7923acc)
  - Accounts
    - [Get an Account](https://qiita.com/abcdefgac153131/items/aa31ec968844f6f79ad6)
    - [Create an Account](https://qiita.com/abcdefgac153131/items/4348fc03cefc88920920)
    - [Deploy a Contract](https://qiita.com/abcdefgac153131/items/be5a731ec8a4101e7088)
    - [Update a Contract](https://qiita.com/abcdefgac153131/items/f0975b75fccd4dd8f0ad)
    - [Remove a Contract](https://qiita.com/abcdefgac153131/items/be57128e9dc029cf6d2b) (エミュレータのみの便利機能。テストネットでは削除不可能)
    - [Account Staking Info](https://qiita.com/abcdefgac153131/items/f375c66dca0349f6b31f) (ステーキング情報の取得)
    - [Funding a Testnet Account](https://qiita.com/abcdefgac153131/items/c7ff7180f9353fa31ff8) (Faucetからテスト用のFLOWトークンをもらう)
  - Keys
    - [Generate Keys](https://qiita.com/abcdefgac153131/items/31669ba30375cd713c54)
    - [Decode Public Keys](https://qiita.com/abcdefgac153131/items/8b86c8d0e1ae633de84e)
    - [Derive Public Key](https://qiita.com/abcdefgac153131/items/e4b469f269cab3442f12)
  - Deploy Project
    - [Start Emulator](https://qiita.com/abcdefgac153131/items/877ef913d31e57413692)
    - [Add Project Contracts](https://qiita.com/abcdefgac153131/items/83d86476479f13c2bd6f) (flow.initにデプロイしたいコントラクトを設定する)
    - [Deploy a Project](https://qiita.com/abcdefgac153131/items/36250ceb2e557abc1a92) (initに引数を渡すなど、高度なスマートコントラクトのデプロイ)
    - [Create Emulator Snapshot](https://qiita.com/abcdefgac153131/items/4d21672e2f465a8069ab)
  - Scripts
    - [Execute a Script](https://qiita.com/abcdefgac153131/items/54a8e1a7b9518a251353)
  - Transactions
    - [Send a Transaction](https://qiita.com/abcdefgac153131/items/8a5bcb87dc291815532d)
    - [Get a Transaction](https://qiita.com/abcdefgac153131/items/0bc44bcc8d5f7c71b7dc)
    - [Build a Transaction](https://qiita.com/abcdefgac153131/items/1ac123c6604ce19612d6)
    - [Build a Complex Transaction](https://qiita.com/flowcadence/items/af26fea25dbea5eb6599)
    - [Sign a Transaction](https://qiita.com/flowcadence/items/27ad947391e383ec6e40)
    - [Send Signed Transaction](https://qiita.com/flowcadence/items/f87b20072a4a66f15e23)
    - [Decode a Transaction](https://qiita.com/flowcadence/items/21c86299c83f81933e49)
  - Flow.json
    - [Initialize Configuration](https://qiita.com/abcdefgac153131/items/df96ca5d6c335d25ea2f) (flow.json作成)
    - [Configuration](https://qiita.com/abcdefgac153131/items/aa32f56e7469e8fbe5f4) (エイリアス設定やGCP/KMSによるキー管理など)
    - [Manage Configuration](https://qiita.com/abcdefgac153131/items/b600e1896db8cc1f5297) (設定の追加と削除)
    - [Security](https://qiita.com/abcdefgac153131/items/82b619c30a90193904c7) (Dotenvファイルがデフォルトで使えます)
  - Flow Entities
    - [Get Block](https://qiita.com/abcdefgac153131/items/023eaeb0632a3ad2b653)
    - [Get Events](https://qiita.com/abcdefgac153131/items/da3adfa951ab7641c2c2)
    - [Get Collection](https://qiita.com/abcdefgac153131/items/d8a09cefcb361a99826e) (1blockに含まれているtxの塊の取得)
    - [Network Status](https://qiita.com/flowcadence/items/bf5ff242f33c9f0630ff) (ブロックチェーンの状態を知れます)
  - Utils
    - [Generate a Signature](https://qiita.com/abcdefgac153131/items/85bdee18d6cc9b28cc2f) (メッセージに署名します)
    - [Verify Signature](https://qiita.com/abcdefgac153131/items/7ddd38a2546a5009d186) (署名の有効性確認)
    - [Snapshot Save](https://qiita.com/abcdefgac153131/items/520a80cf91f305407954) (スナップショットの保存)
    - [Development Tools](https://qiita.com/abcdefgac153131/items/6930957249896c0ad5d0) (エミュレータ用ウォレット)
  - [Dependency Manager](https://qiita.com/abcdefgac153131/items/9195f9872874baab611e) (依存コントラクトを簡単にインストール)
  - [Running Cadence Tests](https://qiita.com/abcdefgac153131/items/cf23506a744373ed46ca) (テスト実行/カバレッジレポート)
  - [Cadence Linter](https://qiita.com/abcdefgac153131/items/25a7923f97d6138062a4)
  - [Flow Interaction Templates (FLIX)](https://qiita.com/abcdefgac153131/items/65f173cc69d1eb22e38e) (Interaction Templatesの操作周り)
  - [Cadence Boilerplate](https://qiita.com/abcdefgac153131/items/3f9a3b3f175fdd48cf91) (ボイラーテンプレート)
  - [Data Collection](https://qiita.com/flowcadence/items/148c8e2779ed36284814)
* [Flow Emulator](https://qiita.com/flowcadence/items/cdbb322711f32a09028c)
* [Clients](https://qiita.com/abcdefgac153131/items/4d0e75b7f49d02f75445)
  - [Flow Client Library (FCL)](https://qiita.com/abcdefgac153131/items/4174cc0ae785b1ddb1d6)
    - [FCL API Reference](https://qiita.com/abcdefgac153131/items/82c4e2d91df09051b1de) (FCL全リファレンス)
    - [FCL SDK Reference](https://qiita.com/abcdefgac153131/items/c1a1364b2dba4262bdc1) (FCL経由のSDKの仕様詳細)
    - [Authentication](https://qiita.com/abcdefgac153131/items/07695f36283735c00a71) (ウォレット認証)
    - [How to Configure FCL](https://qiita.com/abcdefgac153131/items/b85a6df60a980c8e1dc1) (APIリファレンスのConfiguration(設定)と同等)
    - [Wallet Discovery](https://qiita.com/abcdefgac153131/items/01a1580cb15a359a59ce) (ウォレット認証画面の設定)
    - [Installation](https://qiita.com/abcdefgac153131/items/fd60e5c15a0626c2adf2) (FCLのインストール)
    - [Interaction Templates](https://qiita.com/abcdefgac153131/items/e49102ecf2109f9e55bb) (ウォレットの安全強化の仕組み)
    - [Proving Ownership of a Flow Account](https://qiita.com/abcdefgac153131/items/6032594d047c635939c3) (ユーザーがFlowアカウント管理証明)
    - [Scripts](https://qiita.com/abcdefgac153131/items/ef8373ed9471362f7132) (スクリプトをFCLを使って実行)
    - [Transactions](https://qiita.com/abcdefgac153131/items/318a428e8c006dc2497f) (トランザクションをFCLを使って実行)
    - [Signing and Verifying Arbitrary Data](https://qiita.com/abcdefgac153131/items/81b6d0b7dfce0ad452ff) (署名したメッセージの検証)
    - [WalletConnect 2.0 Manual Configuration](https://qiita.com/abcdefgac153131/items/da6327777ef6c7e811cb) (WalletConnect2.0をDiscoveryに)
  - [Flow Go SDK](https://qiita.com/abcdefgac153131/items/3616deed7fbb2d69f91e) (Flowの仕様詳細)
    - [Migration Guide v0.25.0](https://qiita.com/abcdefgac153131/items/f53d55ad70523d27f114) (新しいGoSDKの使い方)
  - [Flow Dev Wallet](https://qiita.com/abcdefgac153131/items/506522b43325705d9b8b) (エミュレータを使った初心者向け開発流れ, Flow残高取得)
  - [Cadence VS Code Extension](https://qiita.com/abcdefgac153131/items/1b5bde9635935c1e4d8d)
  - [Wallet Provider Spec](https://qiita.com/abcdefgac153131/items/caa67ecf27a07dc2ee29) (FCLを駆使してウォレットプロバイダになるには)
    - [Authorization Function](https://qiita.com/abcdefgac153131/items/9ba3fc7d18f53dedc98a) (認証関数はどう作るのか)
    - [Introduction](https://qiita.com/abcdefgac153131/items/322bc393bdb2d328ea0d) (ウォレット認証とは何かの仕様の言及)
    - [Provable Authn](https://qiita.com/abcdefgac153131/items/a6e223893ba142f54df6)
    - [User Signature](https://qiita.com/abcdefgac153131/items/af846638da5bc2bb4bdc)


<h3 id="開発方法">開発方法</h3>

:::note info
ブロックチェーンには値を変更しない **[Scripts](https://qiita.com/abcdefgac153131/items/ef8373ed9471362f7132)** と値を変更する **[Transactions](https://qiita.com/abcdefgac153131/items/318a428e8c006dc2497f)** という２種類のブロックチェーンノードに対するAPI Callがあります。これらを駆使してdappを作成していきます。　

以下の記事は、[X上で紹介され、Flow blockchain公式にリポストされました。](https://x.com/abcdefgac153131/status/1881520158659035503)

ハッカソンの場で作成された、[COF.ninja](https://devfolio.co/projects/code-of-flow-a0cd)というeスポーツゲームのCadenceソースコードを、Version1.0に合わせて書き換えたものが以下の5~12にかけて紹介されています。

eスポーツと書いてあるとおり、条件に沿って暗号通貨をスマートコントラクトを通じて運営からプレイヤーに配布しています。これが難しいものではなく、プログラミング初心者でも１日でできてしまうほど、Buildは簡単です。そのため世界80億人を相手に日本国民誰もがブロックチェーンゲームを作成・運営して収益を上げることができます。
<sub>(2025年4月現在、消費税法は消費税を外国人から徴収しないようになっており、これには旅行者に外貨を落としてもらおうという意図を持ちますが、Web3では逆に外貨を稼ぐ障害となっています。外国人を判定するのが大変なので消費税法改定が待たれます)</sub>
:::

- [ブロックチェーンゲームの作り方1 - 基本編Part1](https://qiita.com/flowcadence/items/8cc25249cda37364cac1)
- [ブロックチェーンゲームの作り方2 - 基本編Part2](https://qiita.com/flowcadence/items/bd9dd37723dab0557064)
- [ブロックチェーンゲームの作り方3 - 基本編Part3](https://qiita.com/flowcadence/items/2911220eb06a20beea14)
- [ブロックチェーンゲームの作り方4 - 基本編Part4](https://qiita.com/flowcadence/items/27ef976c2f2493146dd6)
- [ブロックチェーンゲームの作り方5 - 所持金表示](https://qiita.com/flowcadence/items/8ff1ed3535bc368f7c68)
- [ブロックチェーンゲームの作り方6 - プレイヤー登録](https://qiita.com/flowcadence/items/8443d8965a8f98486fa8)
- [ブロックチェーンゲームの作り方7 - ゲーム内通貨購入](https://qiita.com/flowcadence/items/2ef6bb711f8e1446814d)
- [ブロックチェーンゲームの作り方8 - デッキ編集](https://qiita.com/flowcadence/items/a701a42d833c63ef3b9a)
- [ブロックチェーンゲームの作り方9 - 対戦相手とのマッチング](https://qiita.com/flowcadence/items/e1e67cd8d904ece357e8)
- [ブロックチェーンゲームの作り方10 - マリガンおよびゲーム開始](https://qiita.com/flowcadence/items/824808bf581f41c08676)
- [ブロックチェーンゲームの作り方11 - ターンチェンジ](https://qiita.com/flowcadence/items/a1566910f4bafd162f1e)
- [ブロックチェーンゲームの作り方12 - 勝敗と賞金送付、ランキング](https://qiita.com/flowcadence/items/0d3f809c2a4b331b1ca4)

:::note warn
ブロックチェーンウォレットにはローンチ時からウォレットSDKで実績のある **[Blocto](https://blocto.io/ja)** があります。JavaScriptで簡単に**Blocto**ウォレットを呼び出す事ができ、トランザクションもJavaScript で簡単に行う事が出来ます。バックエンドではNode.jsでトランザクションを実行することが出来ます。
:::
:::note warn
Blockエクスプローラには **[Flow Diver](https://flowdiver.io)↗︎** があり、トランザクション結果を素早く確認する事が出来ます。 **[Contract Browser](https://contractbrowser.com/)↗︎** ではスマートコントラクトやトークンなどを確認したり、直接スマートコントラクトをデプロイすることが出来ます。 **[flowview](https://www.flowview.app/)↗︎** ではトークンやステーキング、保存したリソースなどのアカウント情報を簡単に確認することができます。
:::

:::note warn
ハンヅオンで学べる書籍もあります。 **[こちら](https://www.amazon.co.jp/dp/B0D3JBRJF5)↗︎**  (Version1.0ではないですが、先端技術を使用しています)
特色: ブロックチェーンのトランザクションは送信から情報取得までに7-10秒かかります。それを時間を感じさせなくする為には、バックエンドにGraphQLサーバーを採用することが考えられます。GraphQLは大人数による同時接続通信が可能なので、ゲームで何をしたのかを対戦相手に前もって通知することができるからです。(下部掲載動画の右下部分や[COF.ninjaのデモ動画](https://www.youtube.com/watch?v=TzxgaaAhM3c)の下部に表示される情報がそうです)
<sup>*GraphQLはTwitterなど大手ソフトウェア企業が積極採用しているリアルタイム通信技術です。</sup>
GraphQL はAWS Lambdaと相性が良く(特に金銭面で)、ブロックチェーンにもスムーズにトランザクションを送れるという利点があります。**GraphQL**はNode.jsで動作し、そのためAWS Lambdaで動きます。そしてAWS Lambdaがreturnする値を現在ブラウザに接続しているすべての端末に対して、Push送信することができます。Svelteに関しては他にも良い書籍がありますが、**AWS LambdaをGraphQLサーバーとして立ち上げる方法をきちんと図説**している情報媒体は少ないはずです(僕は英語でAWSの開発陣から知りました)。インフラを自分で立ち上げたことがある人なら、この本を読みながら簡単に低コストのバックエンドをセットアップすることができます。
<sub>（GraphQLの概念や実装はシンプルですので、ブロックチェーンゲームを誰でも作れるようになります。ネタバレ記事は[こちら](https://medium.com/@tickets.on.flow/how-to-create-wallet-less-blockchain-game-376e6a68f1a6)↗︎。本はこの記事の内容を元にしています。Flow普及を志したエンジニア本故レビューは甘めにお願いします。尚、ブロックチェーンゲーム作成方法についてまとめている[ブログ](https://medium.com/@tickets.on.flow/bcg-%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%E3%83%81%E3%82%A7%E3%83%BC%E3%83%B3%E3%82%B2%E3%83%BC%E3%83%A0-%E3%82%92%E4%BD%9C%E3%82%8B%E3%81%AB%E3%81%AF-d8c030c82f94)や[入門書](https://www.amazon.co.jp/dp/B0BZS6P5RL)(一部無料)もあります。）</sub>

執筆者が初めて作ったブロックチェーンゲーム(8日間で作りました)は[こちら](https://devfolio.co/projects/codeofflow-b687)↗︎。
<sub>(ウォレット操作が面倒くさい、と開発方法で書いているのはこの時の経験から来ています。時々画面右上に出るのはEventsの情報です。臨場感が出ますのでGraphQLサーバーで取得後、ブラウザにPush送信しています)</sub>
:::
<iframe width="560" height="315" src="https://www.youtube.com/embed/Qo5rhA147o4?si=vWoJvRfcSxcIQYwv" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
<sup>この動画のロジックは全てスマートコントラクトに書かれてます。<b>画面上に出ている情報は全てブロックチェーンから取得したものです。</b>(注:画像ファイル(©SEGA、以下略)はSvelteフレームワークで管理しています)</sup>

:::note info
こちらのQiitaアカウント<@flowcadence>のドキュメントは**無断転載OK**です。
:::

<h3>脚注</h3>

<sup>1: https://usa.visa.com/dam/VCOM/regional/na/us/Solutions/documents/visa-nft-whitepaper.pdf [↩](#flow-developers)</sup>

![スクリーンショット 2024-12-20 18.53.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3912821/8be01eff-dad7-520c-3b83-0ed844c3c82e.png)