How statistics are calculated
We count how many offers each candidate received and for what salary. For example, if a NFT developer with Solidity with a salary of $4,500 received 10 offers, then we would count him 10 times. If there were no offers, then he would not get into the statistics either.
The graph column is the total number of offers. This is not the number of vacancies, but an indicator of the level of demand. The more offers there are, the more companies try to hire such a specialist. 5k+ includes candidates with salaries >= $5,000 and < $5,500.
Median Salary Expectation – the weighted average of the market offer in the selected specialization, that is, the most frequent job offers for the selected specialization received by candidates. We do not count accepted or rejected offers.
Trending NFT tech & tools in 2024
NFT
NFT in crypto
An NFT (Non-Fungible Token) is a unique asset on a blockchain that signifies ownership of a digital piece of art, audio or video file. In contrast to mass-produced cryptocurrencies such as Bitcoin which can be traded interchangeably, NFTs represent unique units that cannot be passed off as identical products; you cannot exchange your Eminem NFT for another: it is non-fungible and unique. NFTs can act as registration certificates that create a digital chain of ownership, although proof of ownership alone does not equate to actual ownership.
As NFTs have sprung up and blossomed lately, they’ve started to radically shift the paradigm of what it means to own digital goods and the inherent value they carry. This has also given rise to hundreds of NFT marketplaces – essentially, websites that serve as digital storefronts to exhibit, trade, or buy NFTs. The technology behind them seems to have found a niche, and it’s got wide-ranging applications.
What are NFT marketplaces?
These are where NFTs can be stored, displayed, traded, and often even minted (ie, created). NFT marketplaces are to NFTs what Amazon or eBay are to goods.
To access and use these types of marketplaces, you will want to set up the following:
- A crypto wallet: you’ll need this to hold your crypto tokens, essentially your digital wallet, which must be compatible with a network on which the NFTs you want to buy/sell are held (below). For example, if you’re planning on buying, selling, or minting NFTs that are based on the blockchain network called Ethereum, then you will need to get a compatible Ethereum wallet such as MetaMask.
- How many coins are in your virtual wallet? If you want to purchase, publish, or mint an NFT, you’re going to have to put some money into your crypto wallet. Once again, it depends on what marketplace you’re planning to use – you’ll need to find out which cryptocurrencies they support.
- A user account: You need to create an account on the chosen market where NFTs are being bought and sold.
However, creating and listing an NFT on a marketplace generally means paying a blockchain network fee. The cost depends on the blockchain-native system you’re using. Ethereum enables the largest ecosystem of NFT dapps (decentralized applications) but has the highest fees.
NFT blockchain options
Note how the leader here is Ethereum: it is by far the most used system for purchasing selling and creating unique items that are solely held digitally. There are, however, other competitors on the market too: note the following:
- Binance Smart Chain
- Flow (by Dapper Labs)
- Tron
- EOS
- Solana
- Polkadot
- Tezos
- Algorand
- Cosmos
- WAX
How do these marketplaces work?
Signing up
Joining an NFT marketplace will look slightly different from site to site, but in general, you just need to create an account (or ‘sign in’ using one that you already have) or you might be able to just use a wallet that the NFT marketplace supports (or a new one you created for the purpose). You’ll be directed to a page where you Connect your wallet. Once your wallet is connected, you’ll be prompted to enter your wallet password (if it’s not auto-filled) to complete the process.
Buying an NFT
NFTs are bought outright for a certain price, through an auction, or (in some cases) presented to a specific owner and another bidder may make a bid in an attempt to acquire the asset at a lower price.
Selling an NFT
Selling is more technically complicated, especially for someone selling an NFT they’ve created themselves (an artwork, a soundtrack, a tweet, etc).
It means that you have to upload this individual digital asset to the platform and add a fixed price on it, or let the buyer bid for it during an auction.
Then the asset will be verified by the platform and can be listed for sale.
When the seller agrees with a bid, the marketplace executes the transfer from the buyer to the seller.
Minting an NFT
A potential first step toward minting an NFT might be Ethereum, which remains the most prominent system on which such tokens are used. You need an Ethereum wallet with native support of ERC-721 (the Ethereum token standard underpinning NFTs). One such wallet is MetaMask or also Trust Wallet or Coinbase Wallet. You also need to stash about $50-$100 of ethers in your wallet to cover transaction costs (the higher the network congestion, the steeper the fees).
After doing so, you can then begin using OpenSea, Rarible, or any other such platform. Usually, to open the dashboard where you can start minting, you’ll press a button in the top-right corner that reads ‘Create’ or similar.
Types of NFT marketplaces
Within this ecosystem, there are different types of marketplaces: the universal types, like OpenSea, are the most general, the art-focused ones are specialized, and then there are niche ones that list specific traits of non-fungible assets, such as in-game items, digital collectible cards, or virtual real estate.
Here are some popular universal and digital art-oriented NFT marketplaces currently available:
- OpenSea: The most established universal NFT marketplace is here at OpenSea, where you’ll find non-fungible tokens representing ownership of things as diverse as art, sporting collectibles, virtual worlds, trading cards, and domain names.
- Rarible: purchasing it enables replicated purchasing by others below it on the chain It’s an NFT marketplace where you or anyone else can make an NFT on one of three different blockchains, either Ethereum, Tezos, or Flow.
- SuperRare: A similar market is online at SuperRare, which specializes in digital art and works only with a handful of concept artists. Each work on sale is a unique one-of-one NFT.
- Nifty Gateway: Nifty is one of the biggest marketplaces for NFT objects. There you will find artwork from prominent artists, including the owner of the record for the most expensive NFT sold at $69 million – Beeple, and the electronic music producers Steve Aoki and deadmau5.
These are all things that could be swept up in the definition of an NFT. Still, for niche digital goods such as virtual world avatars or digital trading cards for games like fantasy football, there is a distinctly growing number of platforms vying for the attention of each digital market there – but the majority of retail NFT sales are still conducted on five platforms:
- NBA Top Shot: an NFT marketplace on Flow for buying and selling digital collectible cards of videos of memorable NBA ‘moments’.
- Axie Infinity: These are based around a digital game called Axie Infinity, in which people breed, battle, and trade cartoon pets called ‘Axies’, and in which some play professionally for a living.
- Sorare: tokens representing football players you can use in the fantasy football game Sorare.
- Decentraland features an in-house marketplace where players can buy and sell virtual land, in-game items such as wearables, and other digital experiences.
- Treasures: A website that lets users tokenize a tweet and then sell it as an NFT. For example, Twitter CEO Jack Dorsey sold his first tweet for $2.9 million.
Where is Solidity used?
Creating Un-crackable Piggy Banks
- Imagine piggy banks that say "Nope!" to burglars. Solidity crafts smart contracts for DeFi, turning blockchains into Fort Knox for your digital coins!
NFTs: Digital Bragging Rights
- Folks use Solidity to whip up NFTs, letting you own digital art like it's the Mona Lisa hanging in your cyber-lounge. Show off pixels that others can only screenshot.
Decentralized Auction Houses
- Solidity slings code for decentralized eBay clones. Bid on vintage digital sneakers without some middleman swiping your snack money.
Vote Without Fear of Hangry Politicians
- It helps in creating tamper-proof voting systems where even the craftiest of ballot-munchers can’t fudge your precious vote.
Solidity Alternatives
Vyper
Vyper is a Python-like language for Ethereum smart contract development aiming for simplicity and security. Utilized for building transparent contracts without decorative elements.
# Sample Vyper contract for a simple storage:
@public
def store(value: uint256):
self.stored_data = value
- Easier for Python developers to learn
- Focuses on security by limiting features
- Contracts are generally more readable
- Not as widely adopted as Solidity
- Limited resources and tooling
- Poor support for complex contract structures
Daml
Daml is a smart contract language designed for distributed ledgers, focusing on correctness and privacy. Ideal for creating multi-party workflows across different platforms.
-- Sample Daml contract for asset issuance:
template Asset
with
issuer: Party
owner: Party
assetId: Text
where
signatory issuer
- Strong privacy features and correctness guarantees
- Allows for cross-platform deployments
- Suitable for enterprise-level applications
- Smaller developer community
- Lesser focus on decentralized applications
- Platform-dependent design
Rust with Parity’s ink!
Rust with ink! framework is used for writing Wasm smart contracts for blockchains like Polkadot. Combines Rust's performance and safety with blockchain interoperability.
// Sample ink! contract with a simple increment function:
#[ink(storage)]
pub struct Incrementer {
value: i32,
}
impl Incrementer {
#[ink(constructor)]
pub fn new(init_value: i32) -> Self {
Self { value: init_value }
}
#[ink(message)]
pub fn increment(&mut self) {
self.value += 1;
}
}
- Provides high performance and safety of Rust
- Interoperable with multiple blockchains
- Good for complex contract logic
- Higher learning curve for non-Rust developers
- Young ecosystem with evolving tooling
- Less mature than Solidity in the blockchain space
Quick Facts about Solidity
There's No "I" in Team, But There's Solidity in Ethereum
Picture it: Ethereum blockchain, 2014. A digital playground is missing its favourite toy. Enter Solidity, crafted by Dr. Gavin Wood. It's the coding sorcery you need to create your very own smart contracts—think tamagotchis that can hold your crypto! It's a brainchild so smart, it could solve a Rubik's Cube blindfolded.
Time Traveling Code—Solidity's Version Saga
Like fine wine and that cheese hiding in the back of your fridge, Solidity only gets funkier with age. From humble 0.1.1 (2015) to the glow-up 0.8.x in recent years, it's had more facelifts than Hollywood and more breakouts than a teenager's skin. Each version is like a new season of your favourite show, with more twists than a pretzel factory.
Code-Slinging and Bug-Dodging: Solidity's Cutting-Edge Antics
Ever seen a dev dodge bugs like they're in The Matrix? That's a Solidity pro for you. With its cutting-edge, statically-typed powers, it turns Ethereum's EVM into a stage and devs into rockstars—guitar-smashing optional. And for a bit of interactive playtime, here's a code snippet that's as delightful as finding cash in old jeans:
contract SweetSurprise {
function surprise() public pure returns (string memory) {
return "You've found some Ether!";
}
}
What is the difference between Junior, Middle, Senior and Expert Solidity developer?
Seniority Name | Years of Experience | Average Salary (USD/year) | Responsibilities & Activities |
---|---|---|---|
Junior | 0-2 | $50,000 - $90,000 |
|
Middle | 2-5 | $90,000 - $120,000 |
|
Senior | 5+ | $120,000 - $150,000 |
|
Expert / Team Lead | 8+ | $150,000 - $200,000+ |
|
Top 10 Solidity Related Tech
Ethereum
Let's kick things off with Ethereum - the granddaddy of platforms for our beloved Solidity. It’s like the main stage at a rock concert, where Solidity gets to strut its stuff. Ethereum is the blockchain of choice for most Solidity developers, boasting smart contracts that can be as complex as a Rube Goldberg machine. It’s where your digital ledger dreams come to life!
// Sample Solidity smart contract on Ethereum
pragma solidity ^0.8.0;
contract HelloWorld {
function sayHi() public pure returns (string memory) {
return "Hello, Ethereum universe!";
}
}
Truffle Suite
Next, we’ve got the Truffle Suite, the Swiss Army knife for Ethereum devs. It’s not made of chocolate, but it’s just as sweet for developers, giving you the tools to bake your dApps to perfection - from baking (compiling) to tasting (testing)! Emerge from the development rabbit hole with this box of goodies at your fingertips.
// Initialize a Truffle project
truffle init
// Compile your smart contracts
truffle compile
// Deploy to the blockchain
truffle migrate
// Interact with your deployed smart contracts
truffle console
Hardhat
Put on your construction hat because we’re diving into Hardhat territory, where Ethereum developers toil and trouble their smart contracts. Hardhat is like a virtual sandbox on steroids, complete with tools that let you debug with the finesse of a surgeon and deploy with the precision of a sniper.
// Sample Hardhat task
task("accounts", "Prints the list of accounts", async () => {
const accounts = await hre.ethers.getSigners();
for (const account of accounts) {
console.log(account.address);
}
});
module.exports = {
solidity: "0.8.4",
};
OpenZeppelin
OpenZeppelin is the superhero toolkit for Solidity security. Imagine a medieval armory, but instead of swords and shields, you’ve got vetted smart contract templates. It’s like having a horde of battle-tested knights ready to protect your castle from the fiery dragons of bugs and exploits!
// Using an OpenZeppelin ERC-20 token contract
pragma solidity ^0.8.0;
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
contract MyToken is ERC20 {
constructor(uint256 initialSupply) ERC20("MyToken", "MTK") {
_mint(msg.sender, initialSupply);
}
}
MetaMask
Ah, MetaMask, the digital wallet that’s the virtual pocket for all your blockchain goodies. It’s like a magical pouch where you store your digital gold, and with a fox as its mascot, it’s the clever companion every Ethereum explorer needs to interact with the blockchain jungle.
Remix IDE
Remix IDE is the jamming studio for Solidity musicians, where smart contract symphonies are composed. With its sleek interface and browser-based convenience, it’s like having a Google Docs for your Solidity scripts - collaboration and compilation in one shiny package!
// Writing Solidity in Remix is as simple as:
pragma solidity ^0.8.0;
contract SimpleStorage {
uint storedData;
function set(uint x) public {
storedData = x;
}
function get() public view returns (uint) {
return storedData;
}
}
IPFS
Whisper it softly, IPFS, or the InterPlanetary File System, is the galactic express for storing and sharing files across the blockchain cosmos. Like an alien technology, it’s decentralized and peer-to-peer, meaning your files are scattered like stardust, resistant to going supernova from a single point of failure.
Infura
Navigating the Ethereum network without Infura is like sailing the seven seas without a compass. This suite of APIs is your trusty first mate, ensuring you can whisper sweet nothings to the Ethereum blockchain without managing your own node - shiver me smart contracts!
Ganache
Ganache is your personal Ethereum blockchain to tinker and toy with. It’s like playing Minecraft, but for crypto geeks - you get to build and destroy as you please with none of the real-world mess. And, with your very own blockchain playground, testing is a piece of cake - a blockchain cake, that is.
// Launching Ganache for a personal blockchain
ganache-cli
Web3.js/ethers.js
Last but not least, we have the dynamic duo: Web3.js and ethers.js, the twin bridges connecting the chasm between your dApps and the Ethereum blockchain. They’re like the digital Rosetta Stones, deciphering blockchain babble into something your apps can understand - turning smart contracts into smart companions for your user interfaces.
// Sample Web3.js code to interact with a smart contract
web3.eth.Contract(abi, contractAddress);
// Sample ethers.js code snippet for contract interaction
const provider = new ethers.providers.Web3Provider(window.ethereum);
const signer = provider.getSigner();
const contract = new ethers.Contract(contractAddress, abi, signer);