# Roadmap

## Basic Account

* [x] Send HBAR to AccountID
* [x] Send HBAR to an AccountID with Memo
* [x] Create a new non-custodial Hedera Network account
* [x] View HBAR balance
* [x] Get Hedera Network Account Info
* [x] Use a Metamask account for transactions on the Hedera mainnet Network
* [x] Connect to a Hardware wallet for Digital Asset
* [x] Import a Hedera Network Account using a private key

## Advanced Account

* [x] Send HBAR to an EVM address
* [x] Auto-create a Hedera Network Account for a public key
* [x] Auto-create an account for an EVM address
* [x] View Transactions history
* [x] Approve and delete an allowance
* [x] Transfer Digital Assets(both fungible and non-fungible tokens) between Hedera network accounts
* [x] Delete an account
* [x] Stake and Unstake HBAR to and from Hedera Network nodes

## Hedera Token Service

* [x] Create a Token ID
* [x] Create an NFT ID
* [x] Create Digital Assets(both fungible and non-fungible tokens)
* [x] Update a Digital Asset and its properties
* [x] Transfer Digital Assets
* [x] Delete a Digital Asset
* [x] Mint a Digital Asset
* [x] Burn a Digital Asset
* [x] Get an account's Digital Asset balance
* [x] Get Digital Asset info for both fungible and non-fungible tokens
* [x] Freeze an account
* [x] Unfreeze an account
* [x] Enable and disable KYC account flag
* [x] Associate and disassociate tokens to an account
* [x] Pause and unpause a Digital Asset
* [x] Wipe a Digital Asset

## Hedera Smart Contract Service

* [x] Create a smart contract
* [x] Update a smart contract
* [x] Delete a smart contract
* [x] Call a smart contract function
* [x] Get a smart contract function
* [x] Get smart contract bytecode
* [x] Get smart contract info

## Hedera Consensus Service

* [x] Create a topic
* [x] Update a topic
* [x] Submit a message
* [x] Delete a topic
* [x] Get topic messages
* [x] Get topic info

## Other functions

* [x] Sign any message using user's snap account(similiar to how SIWE works with Metamask)
* [x] Perform atomic swaps between two parties between any two tokens
* [x] Show private key of the snap account on Metamask dialog box

## Miscellaneous

* [x] Snap static home page UI within MetaMask
* [x] Update Snap dialog boxes with images and static pages to make it more UX friendly
* [x] Send notifications to MetaMask for actionable information

## Example website

* [x] Showcase all the APIs of Hedera Wallet Snap by letting the user interact with each API on the website such as connecting to any type of Hedera account, viewing account info, sending HBAR or any tokens to another HBAR address or EVM address, etc
