Skip to content

mashharuki/WalletProject

Repository files navigation

プロダクト名

Wallet Project

カテゴリ

メンバー Discord ID

デモ動画

ピッチ資料

ピッチ資料

キャッチフレーズ

概要(500 文字)

プロダクト URL

Github repo(open) URL

開発した機能一覧表

機能名 説明
Blocto ログイン 機能 コントラクトウォレットを作成する機能
トークン発行機能 トークンを発行する機能
トークン送信機能 トークンを送金する機能
トークン購入機能 トークンを購入する機能
DID 登録機能 新規ログイン時に DID を発行し、スマコンに登録する機能
DID 関連データの登録機能 DID と紐づく情報(VC)を IPFS に登録する機能
DID 関連情報表示機能 DID と紐づく情報を表示する機能
共通資金プール作成機能 共通資金プールであるマルチシグコントラクトを作成する機能
共通資金プール送金機能 マルチシグコントラクトから目的のアドレスへ送金する機能
共通資金プール送金機能 共通資金プール送金のために承認する機能
deposit 機能 トークンを使ってマルチシグコントラクトにネイティブトークンを deposit する機能
小口送金機能 他人に気軽に Token を送れる機能

使用した分散型インフラと API

No. 名称 使用した API
1 ION generateKeyPair
2 ION generateRequest
3 ION AnchorRequest
4 Pinata pinFileToIPFS
5 Pinata Gateway
6 Pinata pinList
7

使用した tech stacks

No. 名称 用途
1 truffle スマートコントラクトの開発のため
2 React.js フロントエンドの開発のため
3 express API サーバー開発のため
4 superAgent フロントエンドから API を呼び出すため
5 MutliSig 承認制送金システム実装のため
6 SmartContract 分散型アプリケーション開発のため
7 ION(DID) DID の生成及び DID ドキュメントの生成のため
8 ethers.js API サーバー側でスマートコントラクトのメソッドを操作する処理を実装するため
9 Web3.js React.js とスマートコントラクトを接続するため
10 Blocto SDK ログイン機能の実装するため
11 RESTful API API 開発・設計・公開のため
12 Figma 画面デザイン考案のため
13 ERC20 Token IDQ Token 開発のため
14 Verifiable Credential DID と紐づくデータを検証可能な状態で公開するため
15 Pinata API IPFS へのファイルアップロードのため
16 Ipfs Verifiable Credentials と DID ドキュメントの登録・保管・参照のため
17 Stripe API トークン購入機能実装のため
18 MUI Component フロントエンドの開発を効率化させるため
19 Protocol Avalanche Fuji Chain(Testnet)
20 AWS KMS 署名に必要な秘密鍵を管理するため(秘密鍵本体の流出リスクを抑える)

これから使用する予定の tech stacks

No. 名称
1 AWS S3
2 AWS Lambda
3 AWS Route53
4 AWS API GateWay
5 AWS Cloud Watch
6 AWS Elastic IP
7 AWS NAT ゲートウェイ

使用した Blockchain

Avalanche Fuji Chain(Testnet)

deploy した Contract の情報

No. コントラクト名 Explorer の URL
1 MyToken 0x45f73bdac06c8ba7c41e47ed7eefe85ef74bae07
2 WalletFactoryV4 0xf9d1A62058c6eE047a5f0FfC1797A19FEffe44b9

AWS KMS 上の鍵で生成したウォレットアドレス

アドレス エクスプローラー URL
0xeDf54d22e96B3053722308951799162508973486 https://testnet.snowtrace.io/address/0xeDf54d22e96B3053722308951799162508973486

application code やその他の file

システム構成イメージ図

想定フロー

[

リポジトリのフォルダ構造

.
├── README.md     本ドキュメント
├── api           APIサーバー用ディレクトリ
├── assets        画像などの資材用ディレクトリ
├── backend       スマートコントラクト用ディレクトリ
├── book          honkit用のディレクトリ
├── docs          ビルドした成果物用ディレクトリ
├── frontend      フロントエンド用ディレクトリ
├── script        Ipfsへファイルをアップロードするためのスクリプトを格納したディレクトリ
└── intro-app     QRコード表示簡易アプリ用ディレクトリ

テスト手順

テスト手順書

審査やテストのためにプロジェクトにアクセスする方法など

プロジェクト起動手順書(ローカル環境)

その他ドキュメント

その他本プロダクトを開発するにあたり参考にした文献

  1. Developer Portal
  2. Blocto Wallet |ウォレットの使い方と Flow のステーキング方法
  3. Blocto Wallet
  4. testnet faucet
  5. Blocto Wallet 開発者向けドキュメント
  6. 敷居を下げる、充実したエコシステム:クロスブロックチェーンのスマートコントラクトウォレット「Blocto」を知る
  7. Flow Playground
  8. Emerald emerald academy logo Academy
  9. Testnet
  10. Mainnet
  11. EmeraldID
  12. beginner-cadence-course
  13. beginner-dapp-course
  14. Install the Flow CLI
  15. DApps のユーザー認証に web3.eth.personal.sign を使おう!
  16. FCL Development Wallet
  17. Blocto Wallet zendesk
  18. How Blocto as a cross-chain smart contract wallet solve user & developer problems
  19. Blocto Wallet Docs
  20. Blocto for Developers
  21. Blocto SDK JavaScript
  22. Crypto Candy
  23. Blocto SDK in Flow dApps
  24. Mermaid js Docs
  25. 想定フロー (新規登録〜送金まで)
  26. Mermaid js Tutorial
  27. dapper-contracts
  28. FanTop のフロントエンド開発 − Web3 におけるユーザ認証
  29. Web3-React
  30. MetaMask Docs
  31. JPYCv2 のメタトランザクション機能の紹介
  32. 「Dapper」はガス代がかからない仮想通貨ウォレット!インストール方法と特徴を解説(追記あり)
  33. Dapper コントラクトのコードを理解する
  34. 【Azure】クイック スタート:SMS メッセージを送信する
  35. Dapper Contract 解説/Dapper Contract
  36. IAP とは?VPN と比較しつつ、メリットを解説
  37. Cloud Run で Identity-Aware Proxy (IAP) を使う
  38. 電話番号で本人確認を行う「SMS 認証」とは?仕組みを解説
  39. Node.js を使用したユーザーの認証
  40. GCP + Node.js を使用したユーザーの認証のサンプルコード
  41. Solidity by Example
  42. Twilio(トゥイリオ) の Quick Start (SMS)
  43. Iroha React App
  44. Ethers Docs
  45. ethers.js とは(ethers.js の基本概念や特徴の解説)
  46. JavaScript の Import Assertions について
  47. tutorials(send-token-etherjs)
  48. Simple Code(send Tx)
  49. How to Mint an NFT from Code
  50. 0x2CcfA2AcF6FF744575cCf306B44A59B11C32e44B のコントラクト
  51. Avalanche Docs
  52. hardhat Docs
  53. Web3js 公式サイト
  54. Signing Raw Transactions
  55. ethers.js を使って MetaMask で署名して Node.js で検証する方法
  56. Twilio(トゥイリオ) Verify API
  57. Web3.0 と DID とは
  58. uPort: DID(Decentralized Identity)におけるユーザ認証について
  59. ceramic.network
  60. Ceramic Network とは?
  61. 「ION」Microsoft が主導する分散型デジタル ID システム
  62. ION tools
  63. Tutorial: How to create a DID on the ION network
  64. DIF Universal Resolver
  65. ION Explorer
  66. React で QR コード表示機能を実装
  67. 【Qita】react-qr-reader を利用した QR コードリーダーの作成
  68. バーコードリーダーをブラウザから使えるようにしたい!JS のバーコードリーダーライブラリを調査しました
  69. entra-verifier
  70. Verify your DID Developer Community Credential
  71. Microsoft Entra Verified ID documentation
  72. Microsoft Entra Verified ID の概要
  73. Verifiable Credentials Code Samples
  74. 【W3C】DID Specification Registries
  75. Verifiable Credentials × ゼロ知識証明
  76. BBS 署名 + Signature Scheme
  77. DID Specifications 読み進めガイド
  78. 【動画で学ぶブロックチェーン】BLS 署名 - 安土 茂亨氏
  79. Blockcerts について調べる
  80. Node.js でも綺麗なコードで WebAPI を作る(routing-controllers)
  81. express 実践入門
  82. async/await で処理を順番通りに出したい時の書き方
  83. 初めての npm パッケージ公開
  84. 初めて npm パッケージを一般公開する時の手順
  85. terraform
  86. Blockcerts を使って Ethereum ブロックチェーン証明書を発行する方法
  87. Context でデータ管理(createContext, useContext)
  88. React Context
  89. 【Qita】Stripe と React で、銀行振込やコンビニ決済などの複数の決済手段を表示する方法と見た目のカスタマイズ方法
  90. 【Stripe Docs】Elements Appearance API
  91. GitHub の新機能「GitHub Actions」で試す CI/CD
  92. リポジトリへのライセンスの追加
  93. 想定フロー (メンバーシップとしての VC を発行・連携・検証するまで)
  94. 初心者が5分で出来る簡単サーバレス API を構築してみる【Lambda】
  95. パブリック API の構築
  96. 【MUI】Low-code admin builder
  97. Zxing でバーコードリーダーを作ってみた
  98. 【UNCHAIN】進捗 to earn 資料
  99. 【GitHub】cert-verifier-js
  100. 【GitHub】blockcerts-verifier
  101. MUI file input
  102. 【GitHub】react-blockcerts
  103. React-blockcerts example
  104. React でファイルをダウンロードする
  105. GitHub API
  106. 過去のデモ動画
  107. Neumorphism UI
  108. ui-neumorphism
  109. React.js UI コンポーネント「ui-neumorphism」を使用する
  110. React でウィンドウサイズが小さいときだけスライドショー表示をする方法