As a software or web developer, you will work with different components, some of which you will use more often, like application programming interfaces (APIs) and software development kits (SDKs) mainly because developers are keen to improve the software development cycles. In modern-day software development, APIs and SDKs have become essential parts; because they have so much in common, they often get mixed up.
In my opinion, in the first half of 2022, we had an uptrend in Developer Experience (DX), while User Experience (UX) dominated the second half. APIs and SDKs play an essential part in improving both experiences. A well-known SDK is Google SDK for analytics which developers use to get data about user behaviours. We also have Facebook SDK for advertising, which makes it easier for developers to generate revenue in their applications. The most common use cases for APIs are map APIs for web or mobile and payment APIs for e-commerce.
Alchemy and thirdweb, as in Google and Facebook, contributed toward the community of Web3 through Alchemy API and thirdweb SDK. This article will explain the difference between these two and how we can use them together.
What is an API
An API is a set of instructions that allows two applications to interact. In the case of Web3, a developer can use it to build an application that interacts directly with the blockchain.
It's important to note that representational state transfer (REST) and remote procedure call (RPC) APIs provide the same features but differ in their implementation. With a REST API, you can make HTTP requests to the server. The server will then respond with data and instructions for the client application to perform an action. With an RPC API, your application sends commands directly to the blockchain via JSON-RPC calls.
The Alchemy API is a service that allows developers to access data from Ethereum and several Ethereum virtual machine (EVM) compatible blockchain networks. Examples are Polygon, Optimism, Arbitrum, Astar, and non-EVM chains like Solana. It provides an intuitive interface for interacting with your blockchain assets through HTTP calls or WebSocket connections.
Alchemy API lets you access the blockchain, query non-fungible tokens (NFTs), and get real-time notifications in your dApp. Alchemy powers many top crypto applications today like Coinbase, Binance, TokenTax, MyEtherWallet, 0x Protocol, and MakerDAO.
"As the de facto standard in blockchain, Alchemy already powers the most sophisticated teams," investor Paul Veradittakit of Pantera Capital said.
Alchemy aims at helping developers create new kinds of digital assets without having any prior knowledge about cryptocurrencies or blockchain technology. Alchemy API can help you track network usage in real-time and monitor every transaction on your contract. It also delivers actionable insights that help improve your product, make smarter decisions and save time.
Alchemy API has been used in NFT management by many of the top blockchain games today, including CryptoKitties, Fishbank, and Etherbots. The NFT API allows you to manage your ERC721 tokens on Ethereum and create new ones with a simple HTTP POST request.
What can the Alchemy API do?
Alchemy has seven enhanced APIs (or use cases for their API), and we will discuss two of them:
The Ethereum API allows apps to connect to an Ethereum node following JSON-RPC as the standard when interacting with Ethereum, which is stateless and lightweight. You can get started with this API as follows:
Create an Alchemy account for free
Choose a package manager (npm or yarn)
Set up your project repository
Install Alchemy including the API
Make your first request & run the script
The NFT API allows you to build your own digital collectibles or game items using the same tools as successful games like CryptoKitties, Fishbank, and Etherbots. It gives developers complete control over all aspects of managing their own NFTs, including minting new ones and selling them on an exchange (or directly). You can get started with this API as quickly as follows:
Choose a package manager
Set up your project repo
Choose a library
What is an SDK?
An SDK is a set of tools and libraries that allows developers to build applications. It can include anything from simple features enabling you to add in-app purchases to a full suite of APIs and documentation that allows developers to create apps from scratch. The critical point is that SDKs are specific to a particular platform or programming language.
thirdweb SDK is a decentralized application SDK for Ethereum and other chains we mention in the next section. It's focused on easing the development of smart contracts, allowing developers to build their decentralized applications (dApps) without learning to code in Solidity, Serpent, or Rust.
thirdweb's goal is to make blockchain technology accessible and understandable by providing tools that allow everyone from beginners to experts, to create their dApps.
thirdweb's focus is on providing developers with easy access to data from any blockchain network by providing an abstraction layer over multiple networks in one place. It lets you leverage multiple blockchains in your app with just one API call!
Easing the development of smart contracts
thirdweb supports Ethereum and other blockchains like Polygon, Avalanche, Fantom, Optimism, Arbitrum, and Binance Smart Chain. Integrating your dApp with other systems like payment providers or financial wallets makes it more accessible.
Their powerful SDKs are loaded by audited smart contracts, ensuring your dApps are secured. With plenty of developers' tools, you can rest assured your Web3 development experience is going to be simplified. Just with a single command as simple as:
They have a massive catalogue of contracts to explore and choose what suits you, or if you like, you can build your custom-made smart contract as follows:
npx thirdweb@latest create --contract //then you can deploy with npx thirdweb@latest deploy
It can't get easier than this to get started with your smart contract and build on the chain. I had an experience with thirdweb using their DAO set of tools as a solution. It went smoothly to create a community membership-gated, with an ERC-20 token and voting system via proposals on the chain. That was monitored from the thirdweb dashboard as well.
Some of the significant upsides of using thirdweb SDKs are the built-in tools—having your NFTs stored on the interplanetary file system (IPFS) and not worrying about pinning them to IPFS nodes (the process of making sure these NFTs are stored on some IPFS node). By minting your NFTs using thirdweb, they do that for you. Not to forget how easy it is to interact with your contracts directly from your thirdweb dashboard for testing and other uses.
As you can see, there are different ways to use Alchemy or thirdweb. Both are great products that provide data-driven solutions for developers who want to build EVM-compatible smart contracts quickly. Of course, both companies built each product with one goal: making it easier for developers to create great applications on the blockchain!
This is not an either-or solution; you can use both an SDK and an API like in many cases, as in the DAO case mentioned above; I did use thirdweb SDK along with interfacing with Alchemy API (as the ether provider) for the ultimate UX/DX.
The DAO mentioned in the article can be found at https://usp-dao-project-goerli.vercel.app/ for testing and practical use of both products on the same project. Kindly note, this has been deployed on Goerli test network.