Skip to content

🧱 Feature Plan: Flow Wallet Kit Core Architecture #16

Description

@lmcmz

📘 Overview

The Flow Wallet Kit is intended to handle all core wallet functionalities required to interact with the Flow blockchain, including Flow-EVM. This issue outlines the complete feature plan, broken down into modular components for implementation.


🗂️ TODO Breakdown

1. 🔐 Storage Protocol

  • Implement a storage protocol for securely handling keys and other sensitive data.
  • Support secure storage backends (e.g., Keychain, Secure Enclave, iCloud file system).

2. 🔑 Key Protocol

  • Implement a key protocol to support multiple types of private keys.
  • Implement the following key providers:
    • Secure Element Key Provider
    • Private Key Provider
    • Seed Phrase Key Provider

3. 👛 Wallet

  • Define and support three wallet types:
    • Watch Wallet: initialized with an address only.
    • Key Wallet: initialized with a private key or seed phrase.
    • Proxy Wallet: backed by external devices like Ledger.
  • On initialization (Key Wallet), lookup all related on-chain accounts using a key indexer API.
  • Support multiple accounts per wallet across different networks.
class Wallet {
    var accounts: [Flow.Network: [Flow.Account]]
}

4. 🧾 Account

  • Implement support for Cadence accounts on the Flow blockchain.
  • Support multiple public keys linked to a wallet's signing keys.
  • Accounts should act as transaction signers.
  • Accounts should be able to fetch and manage:
    • VM accounts (currently EVM only)
    • Child accounts
class Account: FlowSigner {
    var coa: COAccount?
    var child: [ChildAccount]
}

5. 🧬 Multi-VM Account

  • Fetch and manage VM accounts associated with the main account.
  • Currently only EVM (COA) is supported.
  • Design should support additional VM types in the future.

6. 👶 Child Account

  • Fetch all child accounts linked to a main Flow account.
  • Retrieve permissions related to FT and NFT access for each child account.

7. 💰 Token Balance

  • Query FT/NFT balances for:
    • Flow accounts
    • Flow-EVM accounts
  • Handle mixed address token balance queries across both environments.

8. 📦 Backup

  • Support multiple backup types:
    • Device backup
    • Seed phrase backup
  • Implement a backup protocol.
  • Add support for cloud backup providers:
    • Google Drive
    • iCloud
    • Dropbox

9. 🌐 FCL & WalletConnect Support

  • Support in-app browser injection for:
    • Flow
    • Flow-EVM
  • Handle WalletConnect requests for:
    • Flow
    • Flow-EVM

📌 Notes

  • All modules should be modular, secure, and independently testable.
  • Ensure support for extensibility (e.g., new VM types, more backup providers).
  • Prioritize seamless integration with Flow ecosystem tools and developer experience.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions