MoneyForwardCryptoIntegrationは、仮想通貨資産等の非対応資産の統合管理と自動同期を実現するプロジェクトです。このプロジェクトの目的は、マネーフォワードと公式非対応の様々な資産プラットフォーム(例: Ledger、Bybitなど)の間での仮想通貨残高を自動的に同期し、マネーフォワードの資産状況を最新に保つことです。
MoneyForward
1.Segwit BTCに対応しておらず(Legacyのみ)、BTC残高が統合できない
2.STETHやBNBXなど、ステーキング中の仮想通貨に対応しておらずそれらの残高が統合出来ない
3.Ledger Walletに対応していない
4.Bybit等の海外仮想通貨/株取引所に対応していない
5.無料プランでは総資産推移が表示出来ない
本PythonスクリプトをAWS Lambdaから定期実行することで、各非公式APIやスクレイピングで非対応口座残高を取得し、Seleniumを用いてMoneyforwardの手動口座入力から残高を自動更新する。
AWS Lambda PythonでSeleniumを使える環境を構築する
AWS LambdaでSeleniumを動かすときに"Unable to import module 'lambda_function': urllib3 v2.0 only supports OpenSSL 1.1.1+, …
【Python】ChromeDriverのエラーまとめ【selenium】
GitHub Actions でのシークレットの使用を参照してください。
- AWS_ACCESS_KEY_ID: Lambdaを実行するためのAWSアクセスキーID
- AWS_SECRET_ACCESS_KEY: Lambdaを実行するためのAWSアクセスキー
- MONEYFORWARD_BANK_URL: MoneyForwardに登録した更新対象の手動入力口座のURL。
例: https://moneyforward.com/accounts/show_manual/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx - MY_EMAIL_ADDRESS: MoneyForwardに登録したメールアドレス
- MONEYFORWARD_PASSWORD: MoneyForwardのアカウントパスワード
- STETH_WALLET_ADDRESS: STETHが保管されているウォレットアドレス
- BNBX_WALLET_ADDRESS: BNBXが保管されているウォレットアドレス
- BTC_WALLET_BALANCE_URL: 自分のBTC xpubを表示しているBlockchain.comのページ。segwit対応の良いAPIが無くスクレイピングで暫定対応しているため。
例: https://www.blockchain.com/explorer/assets/btc/xpub/xpub6BhqNxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
ハンドラはmoneyforward_balance_updater.lambda_handler
AWS Lambdaで遊ぼう #2 Lambda関数を定期実行する