Every time I see a new Blockchain project, I always wonder:
- is it worth my time?
- Or should I just stick to Ethereum?
Algorand is an up-and-coming Blockchain that has $1B available for various grant programs. This is really impressive, and I have never seen a Blockchain spending so much on developers. In this article, we will see:
- what is Algorand?
- How it works?
- And how can you get paid to learn and build on Algorand?
## Consensus algorithm
We are going to start our exploration of Algorand with the consensus Algorithm of Algorand. Algorand is a new type of Proof of staked consensus algorithm called Pure Proof Of Stake. Thanks to its new Proof of Staked algorithm, Algorand is able to solve the Blockchain trilemma by being both decentralized, scalable and secure. For each new block, the network randomly chooses:
- an address to act as the block proposer
- a set of addresses to act a committee of validators
The Block proposer proposes a block with transactions, and an updated state . And the the committee of validators validate the block .
Because The block proposer and the validator committee are chosen randomly, it’s very difficult for a group of nodes to collude and hack Algorand. This approach also maintains decentralization, since any validator node can be chosen by the algorithm. Because the validator committee is a sub-set of all potential validators, it’s easier to coordinate the validator committee, which leads to a faster block time (4.5s) and more scalability.
Algorand is able to process 1000 tps. Soon this will be increased to 3000 tps, and long-term the objective is to reach 45000 tps, by using a shard architecture similar to Ethereum 2.0 with so-called cochairs .
Transaction fees are very cheap on Algorand. For example, recently an NFT project was able to mint millions of NFTs for a few thousand dollars, whereas on Ethereum to mint each NFT it would have costed between 50 to 100 USD.
Another important feature of the Algorand Blockchain is instant transaction finality. This means there is not fork possible, no need to wait for confirmations and any transactions added to the Algorand Blockchain is final. That’s it for the consensus mechanism of Algorand, next we will see the main features of Algorand layer 1, including smart contracts.
Algorand Layer 1
Algorand layer 1 is the main chain of Algorand. To interact with algorand layer 1, you need to send a transaction.
Contrary to Ethereum, there are several transaction types. In each transaction, the type of transaction is specified in a field. And The fields contained in each transaction depends on the type of transaction.
On Algorand, when you want to have a token, you don’t need to deploy your own smart contract. Instead, you can rely on Algorand Standard Assets, or just ASA, which is a mechanism to create and manage tokens, directly embedded in the Algorand Blockchain itself. It covers:
- fungible tokens – called ERC20 on Ethereum
- non-fungible tokens – called ERC721 on Ethereum
- and security tokens, which are tokens that represents a real-world asset, like a stock or real estate.
To create and manage Algorand Standard assets, you use transactions. It’s possible to configure an asset manager that has some special powers, like revoking and freezing some accounts. Before you transfer an asset an algorand, the recipient has to first opt-in to receive the asset. This is different from Ethereum where everybody can send any asset to your address, which can result in a lot of spam transactions.
On Algorand, you can also use smart contracts. Smart contracts run on the Algorand Virtual Machine, or just AVM. This is not a fork of the EVM of Ethereum, this is a custom implementation.
Smart contract can manipulate:
- the state the local state of user account
- or the global state of the Algorand Blockchain.
The language used for smart contracts is called TEAL, which maps almost directly to the elementary instructions used in the AVM, also called opcodes. TEAL is quite low-level, and most people don’t use TEAL directly to write their smart contracts.
Instead most people write their Algorand smart contracts using a higher-level language called PyTeal. PyTeal is a Python library. A lot of people are familiar the Python syntax, so it should make it easier to onboard new developers.
Another option for writing smart contract is a Tealang, a C-like language created by the Algorand community.
Smart signatures are another kind of smart contract. They are similar to smart contracts but are used to delegate signature authority. It’s similar to bill pay where you give some institution limited authority to withdraw a monthly bill from your account. The logic in the signature determines when and how this withdrawal can take place. It can be written the same way smart contracts are written.
Another cool feature of Algorand is atomic Transfers. It’s possible to send several transactions at the same time. You can send up to 16 transactions in an atomic transfers. They either all succeed or all fail. It can be used to combine various layer1 features of Algorand. For example, you could have a smart contract call combined with a payment transaction. If the smart contract call fails it will also prevent the payment transaction. And you don’t need any smart contract for atomic transfers, it’s al built-in feature of Algorand .
That’s for the main features of Algorand layer 1, next we are going to see some important tools that you need to know as an Algorand developer.
Algorand developer tools
In addition to running an Algorand node, it’s also possible to run an indexer. An indexer provides an easy to use API to quick get some Blockchain data. The indexer works by connecting to an Algorand node, storing data in a database and building an index for fast retrieval. Technically, you can get all the Blockchain data directly from an Algorand node, but for some kind of data it requires more effort. With an indexer, it can really simplify building an application on Algorand.
Another very important tool for building Algorand Dapps is the Algorand SDK. The Algorand SDK allow you to easily interact with an Algorand node. T hink of it like Web3 but for Algorand. Algorand maintains 4 sdks:
- in go
- in Java
- in Python
There are also other SDKs maintained by the community:
- in Rust
- in .NET
- in Swift, and more.
Another useful tool is the API of Randlabs. Think of the Randlabs API as Infura for Algorand It allows you to develop and interact with Algorand smart contract. And its API is completely free, without API key required.
An alternative to Randlabs is PureStake API, which offers some free endpoints, and some paid extra options.
Then you have Algoexporer, the blockchain explorer for Algorand, which was built by Randlabs that I just mentioned before.
Algorand also has a public testnet, with a faucet to get some testnet.
When it comes to wallets, the equivalent of Metamask for ALgorand is called Algosigner, and it’s available as a chrome extension.
And there is also the official wallet of Algorand, simply called Algorandwallet. This is a mobile wallet available for IOS and Android. Even though this is a mobile app it can also be used in web applications by using the Wallet Connect API.
Enough for development tools on Algorand, next we are going to talk of how you can get money an Algorand as a developer .
There is more than $1B available to support the Algorand ecosystem. Most of these funds are for developers and builders, but not only. The sheer amount of money, $1B itself is very impressive. I have never seen other Blockchains offering so much to support their ecosystem.
There are 3 grants coming from the Algorand foundation :
- First, there is the $2M Trailblazer Bounty Program . This money will be given to developers over 2 years, in exchange for completing bounties. There are community, marketing and tech bounties, like doing some code contributions or creating documentation. & There is also the $250M ALGO Grants Program which is to support a wide scope of projects on Algorand like infrastructure, tools, research, education and Application development.
- And then there is the $300M ALGO Viridis Fund, to support DeFi projects on Algorand.
And in addition to these grants from the Algorand foundations, there is also a lot of funding to support Algorand-based initiatives: * $250M SkyBridge Algorand Fund * $100M Arrington Algorand Growth Fund * $400M fund from Borderless Capital * $25M Borderless.Miami Growth Fund * $10M aNFT.Fund
No matter what you want to do on Algorand, from learning to helping the community to building your own Algorand Dapp, there is money available to support you.
So now, you have a high-level of Algorand, it’s time to start building. And for this, you can get started with the official documentation of Algorand. They have some code examples using [https://repl.it](repl.it], an easy to use in-browser IDE, as well as getting started guides for quickly deploying your first Algorand dApps. A
nother interesting resource is this list of developer tools. You will learn about Wallets, SDKs, API services, and utilities useful for building on Algorand *
And finally there is an active developer community on the Algorand Discord. That’s it for this introduction on Algorand, keep learning, keep building, and see you next time.