December 4, 2023

Crypto Wallet Development: Ultimate Guide

Table of Contents
Crypto Wallet Development - Ultimate Guide

In today’s article, we’ll cover the fundamentals of crypto wallet development. In addition to looking at the fundamentals, we’ll introduce you to Moralis’ Wallet API – the industry’s leading tool for building crypto wallets. With this interface, you can effortlessly fetch all the on-chain data you need in your Web3 wallet development endeavors with only single lines of code. To highlight the accessibility of this premier tool, here are three prominent endpoints you’ll likely find helpful: 

  • getWalletTransactions() – Get the native transaction of any address: 
const response = await Moralis.EvmApi.transaction.getWalletTransactions({
  "chain": "0x1",
  "address": "0x1f9090aaE28b8a3dCeaDf281B0F12828e676c326"
});
  • getNativeBalance() – Fetch the native balance of any wallet address: 
const response = await Moralis.EvmApi.balance.getNativeBalance({
  "chain": "0x1",
  "address": "0xDC24316b9AE028F1497c275EB9192a3Ea0f67022"
});
  • getWalletNFTs() – Query all NFTs owned by a wallet address: 
const response = await Moralis.EvmApi.nft.getWalletNFTs({
  "chain": "0x1",
  "address": "0xff3879b8a363aed92a6eaba8f61f1a96a9ec3c1e"
});

If you’d like to learn more about the Wallet API and how you can use the various services of Moralis, join us in this article as we explore the ins and outs of crypto wallet development! Also, if you’re looking for a complete Web3 wallet development tutorial, check out the clip below from Moralis’ YouTube channel. This video covers the entire process of building a wallet from start to finish:

Don’t forget to sign up with Moralis for access to our industry-leading APIs. You can set up an account completely for free, and you’ll gain immediate access to premier tools like the Wallet API! 

Overview 

We’ll kickstart today’s article by answering the question, ”What is a crypto wallet?”. In doing so, we’ll explore what a Web3 wallet is, cover different types of crypto wallets, and give examples of already existing platforms. From there, we’ll introduce you to the intricacies of crypto wallet development. Next, we will explore the ins and outs of Moralis’ industry-leading Wallet API – the ultimate tool for building crypto wallets. Lastly, to top things off, we’ll cover a Web3 wallet development tutorial, where we show you how to get the transactions of a wallet in three straightforward steps: 

  1. Get a Moralis API Key
  2. Write a Script Calling the getWalletTransactions() Endpoint 
  3. Run the Code

If this sounds exciting, join us below as we kick things off by diving straight into crypto wallets! 

What is a Crypto Wallet? 

Crypto wallets – also referred to as Web3 wallets – are digital platforms allowing users to store their digital assets. This includes cryptocurrencies, non-fungible tokens (NFTs), and fungible tokens. The most prominent crypto wallets are also typically equipped with functionality for buying, selling, sending, and swapping tokens of various types, enabling users to fully manage their assets! 

Crypto wallet example - Graphical art illustration depicting a Web3 wallet

Along with providing functionality for storing and managing assets, users also require wallets to interact with decentralized applications (dapps). Consequently, crypto wallets additionally act as gateways to the extensive Web3 ecosystem of decentralized finance (DeFi) platforms, blockchain games, NFT marketplaces, and much more.

Nevertheless, with an overview of crypto wallets, let’s explore different types in the following subsection! 

Type of Crypto Wallets 

There are three main types of crypto wallets: non-custodial, custodial, and smart contract wallets. In this section, we’ll briefly explore each to highlight the differences between the various types! 

  • Non-Custodial Wallets: Non-custodial wallets – also known as self-custody wallets – use public and private key pairs to provide users with complete control of their own assets. The public key is a unique identifier for receiving cryptocurrencies and other assets on a blockchain network. Meanwhile, the private key is used to sign transactions, ensuring that only the owner can access and control the assets. However, if the private key is lost, so is the access to the account. 
  • Custodial Wallets: Custodial wallets typically provide many of the same features as non-custodial wallets. However, the main difference is that a third-party actor – such as a centralized exchange – manages the private key on the user’s behalf. This can give users a second chance if they lose their login credentials. But at the same time, it also poses a security risk, as the private key can become compromised if the third party gets hacked.
  • Smart Contract Wallets: Smart contract wallets are – as the name indicates – managed by smart contracts on a blockchain network. These wallets run as they are programmed, giving users more control over their assets and improved opportunities for customization. For instance, they can be programmed to require multiple signatures for transactions, support batch transactions, etc. Check out our account abstraction article for more information on how this works. 

Now, with an overview of the different types of crypto wallets, let’s explore some prominent examples of already existing platforms! 

Crypto Wallet Examples 

The Web3 space is filled with many different wallet providers, and in this section, we’ll take a closer look at three prominent examples: 

  • MetaMask: MetaMask is an industry-leading, self-custodial wallet trusted by over 100 million users worldwide. It’s an Ethereum Virtual Machine (EVM) compatible wallet that allows users to store, buy, send, and swap tokens with ease. And it’s available as a browser extension and mobile application. 
Crypto Wallet Development Examples - MetaMask - Showing the MetaMask wallet
  • Coinbase Wallet: Coinbase Wallet is a self-custodial crypto wallet that allows users to store and manage their cryptocurrencies and NFTs. Moreover, as you might already have figured, Coinbase Wallet has close ties to the centralized exchange Coinbase. However, we must distinguish between the two, as they are entirely different platforms. Nevertheless, Coinbase Wallet is – much like MetaMask – also available as a mobile app and browser extension. 
  • Trust Wallet: Trust Wallet is a straightforward, multichain, self-custody crypto wallet that allows users to manage and safely store over nine million assets securely across 70 different blockchain networks. What’s more, Trust Wallet is available as either an Android or iOS application or a browser extension. Some examples of supported browsers include Chrome, Brave, Edge, and Opera. 

That covers three prominent crypto wallets. However, the market is filled with many additional options, and if you’d like to explore other examples, you’ll find 100+ wallet providers by checking out the Web3 wallets page on Moralis’ Web3 Wiki

What is Crypto Wallet Development? 

Crypto wallet development is the process of creating a Web3 wallet. But what does this mean? And what exactly does crypto wallet development entail? 

Graphical art illustration - Showing components of crypto wallet development

To answer the questions above, let’s look at the typical Web3 wallet development process: 

  1. Market Research: Any crypto wallet development process should start with research to identify gaps in the market and the needs of potential users.
  2. Developing a Plan: After assessing what the industry lacks and what your future customers need, the next step is to develop an actionable plan. Here, you must identify features and functionalities you will implement during the crypto wallet development process.
  3. Smart Contract Development: Next, you need to develop or find smart contracts required to power the features and functionalities of your crypto wallet.
  4. Frontend and Backed Development: With the required smart contracts at hand, the next step is to build the frontend and backend. The frontend handles how users interact with your wallet. Meanwhile, the backend infrastructure facilitates the interactions between the blockchain and the frontend.
  5. Testing: Before you deploy your crypto wallet, you should always test it thoroughly to ensure that everything works as it should without bugs and errors.
  6. Deployment: Once you know everything works as intended, the next step is to go live with your Web3 wallet.
  7. Maintenance: With the crypto wallet up and running, you additionally need to maintain the product to ensure its longevity. 

That broadly outlines the typical process of building a crypto wallet. However, it’s worth noting that the crypto wallet development steps above might differ slightly depending on how you or your company works, along with what services you leverage! 

How to Get Started with Crypto Wallet Development 

To get started with crypto wallet development, you need to master a few essential skills, and it’s a good idea to grasp the fundamentals of frontend, smart contract, and backend development. As such, let’s take a look at these three components: 

  • Frontend: Frontend development in Web3 doesn’t differ all that much from Web2. Consequently, when it comes to frontend crypto wallet development, it’s beneficial to know JavaScript, HTML, and CSS. 
  • Smart Contract: Even though you don’t necessarily have to build your own smart contracts, you should still know the basics. As such, it might be a good idea to learn the fundamentals of Solidity – the largest and most popular programming language for building EVM-compatible smart contracts – before you get going with Web3 wallet development.
smart contract crypto wallet development example
  • Backend: Backend development has generally been a pain point when it comes to building Web3 projects. This is because it can be a complicated and time-consuming endeavor to set up the necessary infrastructure needed to communicate with the various blockchain networks. Fortunately, it’s possible to use services and crypto wallet developer tools a company provides to make the development process significantly easier. 

But which company offers the best services for crypto wallet development? 

Well, at the top of the list, you’ll find Moralis and our industry-leading Web3 APIs. To learn more about this, join us in the following section as we introduce you to the Wallet API – the ultimate tool for Web3 wallet development!

The Best Tool for Crypto Wallet Development 

Moralis’ Wallet API is the ultimate tool for crypto wallet development. This industry-leading interface boasts an extensive array of features, unparalleled scalability, and exceptional flexibility, making Moralis the best company and solution among the top crypto wallet development services!

Graphical art illustration title - Get Started with Crypto Wallet Development - Use Moralis

But what exactly makes the Wallet API the ultimate tool for Web3 wallet development? 

To answer this question, let’s explore some prominent features and benefits of this premier interface! 

  • Wallet Data: With the Wallet API, you can effortlessly fetch wallet activity, token balances, native transactions, and much more with only single lines of code. 
  • Decoded Transactions: Access decoded transactions and events to seamlessly connect the dots and understand what’s happening on-chain via transaction and address labeling.
  • Cross-Chain Compatability: The Wallet API is cross-chain compatible and supports over 500 million addresses on the biggest blockchains, including Ethereum, Polygon, BNB Smart Chain (BSC), and many others.
  • Moralis’ API Suite: The Wallet API works perfectly in unison with Moralis’ other APIs. A great example is the Streams API, which allows you to set up Web3 alerts effortlessly during your crypto wallet development endeavors. 

Check out all our premier interfaces by visiting the Web3 API page! 

  • Trusted By Industry Leaders: Moralis powers some of the biggest names in Web3, including MetaMask, XDEFI Wallet, Delta, and many others: 
Moralis Crypto Wallet Development Testimonials from MetaMask, Delta, etc.
  • And much more! 

So, if you want to build Web3 wallets faster and smarter, make sure to sign up with Moralis. You can create an account free of charge, and you’ll gain immediate access to the Wallet API and all other interfaces! 

Also, if you’d like to learn more about how this tool works in practice, join us in the following section as we walk you through a crypto wallet development tutorial! 

Crypto Wallet Development Tutorial 

When building a crypto wallet, you need to display a bunch of information to your users, including token balances, NFT balances, transaction histories, etc. In this section, we’ll show you exactly how to effortlessly query this on-chain data in a heartbeat with Moralis’ Wallet API! 

To showcase the accessibility of this industry-leading Web3 wallet development tool, we’ll fetch the native transaction history of an address in three straightforward steps: 

  1. Get a Moralis API Key
  2. Call the getWalletTransactions() Endpoint 
  3. Run the Code

However, before proceeding with the first step, you must take care of a couple of prerequisites! 

Prerequisites 

For this tutorial, we’ll be using JavaScript. As such, make sure you have the following ready before you continue: 

  • Node.js v14+
  • Npm/Yarn

Step 1: Get a Moralis API Key 

For the initial step, the first thing you need is a Moralis account. As such, if you haven’t already, hit the ”Start for Free” button at the top right to sign up with Moralis:  

Crypto Wallet Development for Free Button on Moralis

With a Moralis account at hand, click on the ”Settings” tab, scroll down to the ”API Keys” section, and copy your API key: 

Copying the crypto wallet API key on Moralis Admin UI

Keep your API key for now, as you’ll need it in the next section to initialize the Moralis SDK! 

Step 2: Call the getWalletTransactions() Endpoint 

Open your preferred integrated development environment (IDE), set up a new project, and run the following terminal command to install the Moralis SKD: 

npm install moralis @moralisweb3/common-evm-utils

Next, create an ”index.js” file and add the following code: 

const Moralis = require("moralis").default;
const { EvmChain } = require("@moralisweb3/common-evm-utils");

const runApp = async () => {
  await Moralis.start({
    apiKey: "YOUR_API_KEY",
    // ...and any other configuration
  });

  const address = "0x26fcbd3afebbe28d0a8684f790c48368d21665b5";

  const chain = EvmChain.ETHEREUM;

  const response = await Moralis.EvmApi.transaction.getWalletTransactions({
    address,
    chain,
  });

  console.log(response.toJSON());
};

runApp();

From here, you need to make a few configurations to the code. First, add the API key you previously copied by replacing YOUR_API_KEY. Next, configure the address and chain variables to fit your query. Lastly, we then pass along both address and chain as parameters when calling the getWalletTransactions() endpoint: 

chain, address, api key, and getwallettransactions endpoint

And that’s it for the script! All that remains from here is running the code! 

Step 3: Run the Code 

For the final step, open a new terminal, cd into the project’s root folder and run the following command to execute the script:

node index.js

In return for running the command above, you’ll get an array of the specified wallet’s native transactions ordered by block number in descending order. Here’s an example of what it might look like: 

{
  "cursor": "eyJhb//...",
  "page_size": 100,
  "page": 0,
  "result": [
    {
      "hash": "0xa08afa21814b3773352e804c30ba3344723dfa8e7c0d3c7633f12e4a3695f9fd",
      "nonce": "405399",
      "transaction_index": "184",
      "from_address": "0x1f9090aae28b8a3dceadf281b0f12828e676c326",
      "from_address_label": "rsync-builder",
      "to_address": "0x388c818ca8b9251b393131c08a736a67ccb19297",
      "to_address_label": "Lido: Execution Layer Rewards Vault",
      "value": "141256553219993206",
      "gas": "22111",
      "gas_price": "51002290341",
      "input": "0x",
      "receipt_cumulative_gas_used": "20542947",
      "receipt_gas_used": "22111",
      "receipt_contract_address": null,
      "receipt_root": null,
      "receipt_status": "1",
      "block_timestamp": "2023-12-05T11:38:47.000Z",
      "block_number": "18719898",
      "block_hash": "0x41e33fbd0b59a2894c12d2613ae3cd1c8fa36d01925765b34975cf903f3e0fc8",
      "transfer_index": [
        18719898,
        184
      ]
    },
    //...
 ]

That’s it; this is how easy it is to query on-chain data with Moralis’ Wallet API! 

From here, you can now follow the same steps to call any other endpoint and integrate even more detailed data during your crypto wallet development endeavors. All it requires are some minor configurations to the code during the second step. If you’d like to explore all available endpoints, check out the official Wallet API documentation page. 

Also, if you want a complete Web3 wallet development tutorial, check out the clip at the top of the article, where we show you how to build a crypto wallet from scratch! 

Summary: What is Crypto Wallet Development? 

In today’s article, we introduced you to crypto wallet development. In doing so, we learned that it is the process of building Web3 wallets. Furthermore, this process can typically be divided into seven steps: 

  1. Market Research
  2. Developing a Plan
  3. Smart Contract Development
  4. Frontend and Backend Development
  5. Testing
  6. Deployment
  7. Maintenance

In addition to exploring crypto wallet development, we also introduced you to the best company providing the ultimate services for building Web3 wallets: Moralis! 

Moralis is an industry-leading Web3 API provider, and in our suite of interfaces, you’ll find the Wallet API. The Wallet API makes Web3 wallet development significantly more accessible, as you can leverage our infrastructure to communicate efficiently with the various blockchain networks. As such, with only single lines of code, you can seamlessly get wallet balances, transactions, activity, and much more! 

Graphical art illustration - Moralis logo and title - Moralis Crypto Wallet Development

If you liked this crypto wallet tutorial, make sure to check out additional Moralis development content. For instance, learn how many blockchains there are or explore the best NFT data analytics tool. Also, if you want to explore other Web3 wallet tools and projects, tune in to Moralis’ dapp store: Web3 Wiki. The Web3 Wiki is the best place to explore new and exciting blockchain-based projects and tools across all major chains. 

Lastly, if you want to leverage the Wallet API yourself and other services in your crypto wallet development endeavors, don’t forget to sign up with the industry’s leading company, Moralis!

Market Data API
Build amazing trading and portfolio dapps with this Market Data API. Keep users engaged with up-to-date data!
Market Data API
Related Articles
November 14, 2022

How to Get All NFTs from a Collection in 3 Steps

October 6, 2022

​​BNB Chain Boilerplate – How to Build BNB Chain Dapps

November 6, 2023

Base Faucet – How to Get Free BASE Crypto Testnet Funds 

February 11, 2023

Exploring the #1 Ethereum Price API to Get Token Prices

January 7, 2023

Mint NFT from Contract – How to Mint an NFT from a Contract

October 10, 2022

The Easiest Way to Build Dapps – 3-Step Tutorial for Developers

December 26, 2023

ETH Gas Tracker – Full Ethereum Gas Tracker Guide

October 31, 2022

How to Program Smart Contracts and Implement Them on Solana