Toptal is a marketplace for top Ethereum developers, engineers, programmers, coders, architects, and consultants. Top companies and startups choose Toptal Ethereum freelancers for their mission-critical software projects.
I am a lead Solidity developer with five years of experience in development and four in Blockchain. I specialize in EVM protocols, decentralized finance, and NFTs. I have built several products within the space, such as a Crowdfunding Protocol, a 200MM Stablecoin Protocol, an automated on-chain trading engine, and several NFT apps on Ethereum. I am constantly learning about new projects, best practices, and design patterns in the EVM and blockchain protocol space.
Alexander is a senior software developer with eight years of experience who has built tools, apps, and systems for various industries, including medicine, cryptocurrency, and traffic management. Recently, Alexander's been focusing on the back end—optimizing data queries, handling migrations, and creating CI/CD pipelines. Alexander's areas of expertise include Python, JavaScript, Solidity, and various frameworks (Django and Flask) and libraries (React).
Ken is a software engineer specializing in distributed systems and Web3 technologies. He's launched multiple Ethereum Mainnet contracts, assisted with over 20 blockchain patent applications, created an NFT, and delivered MVPs. His experience includes Web2 back-end services, data analysis, and work on multimillion-dollar projects. Ken enjoys system design and is adept at creating technical solutions around business use cases.
John is an experienced Ethereum dApp developer. He has created NFT factories and marketplaces on Ethereum Mainnet and L2 chains like Polygon, Arbitrum, Optimism, and zkSync for five Toptal clients. He has designed and deployed 150 unique Solidity smart contracts (ERC-20, ERC-721, ERC-1155) integrated into various decentralized platforms and applications. As an AWS Certified Developer Associate, John has also developed and deployed serverless applications for Toptal and other freelance clients.
Logan is a developer with expertise in the blockchain space. He has built entire projects around blockchain. As an entrepreneur, he has conceptualized and delivered many of his own products. Logan has written and managed smart contract interactions on the Ethereum blockchain, written applications using the Substrate blockchain framework, built infrastructure, managed complex integrations, and managed security audits.
Belma has a master's degree in software engineering and has been a full-stack developer since 2015. As a big crypto enthusiast, she decided to fully focus on blockchain development. She already has big experience with dApps creation where most of them were built using Ethereum (public or private network). Belma is a great team player and takes time understanding projects and delivering them in the best way.
Denis is a blockchain analyst and a Solidity and Android developer. He has been in charge of everything blockchain-related in a hardware wallet company for over two years. He has integrated 10+ blockchains for a hardware wallet Android app in Kotlin and Java and developed a self-sovereign identity (SSI) POC app. Denis is experienced with smart contracts and NFTs and has a solid background as a system administrator and tech support.
Kaustav is a hands-on, goal-oriented, versatile technology professional with more than two decades of experience, primarily in open-source digital technologies, such as blockchain, IoT, microservices, cloud, distributed architecture, R&D, design, and development, with a proven track record delivering consistent business results. He loves to take on technical challenges, learn about new technology innovations, and deliver successful products worldwide.
Radek is a certified Toptal blockchain engineer particularly interested in Ethereum and smart contracts. In the fiat world, he is experienced in big data and machine learning projects. He is a triple winner in two different international IBM Apache Spark competitions, co-creator of PlayStation 4's back end, a successful hackathon competitor, and a speaker at conferences in Australia, Poland, and Serbia.
David is a senior full-stack blockchain engineer with 20 years of experience in software engineering. He has demonstrated vast knowledge and technical skills across various industries such as oil and gas, telecommunications, banking, and enterprise solutions, including developing a large-scale enterprise solution for the global company Royal Dutch Shell. David picked up the latest blockchain technology and skills and is a Certified Blockchain Solution Architect.
Sven has 20+ years of experience working on the most advanced and innovative technologies: IoT, data science, machine learning AI, and distributed systems. Since 2017 he has mainly focused on blockchain technology, working as a CTO and advisor, leading the technology and product definition. Sven developed smart contracts for blockchain-based decentralized finance platforms, token launch platforms, and real-world assets (RWA) tokenization with fractional ownership, securing over $100 million.
Ethereum's revolutionary distributed application (dapp, sometimes "ĐApp") paradigm is poised to disrupt the status quo when it comes to payments, communications, the IoT industry, and even community governance. The high-profile concept of "unstoppable applications" built on smart contract technology is making it ever more lucrative to leverage. But with its complexity and recency, it's difficult to know where to start when hiring an Ethereum developer.
... allows corporations to quickly assemble teams that have the right skills for specific projects.
Despite accelerating demand for coders, Toptal prides itself on almost Ivy League-level vetting.
Our clients
Creating an app for the game
Leading a digital transformation
Building a cross-platform app to be used worldwide
Drilling into real-time data creates an industry game changer
Testimonials
Tripcents wouldn't exist without Toptal. Toptal Projects enabled us to rapidly develop our foundation with a product manager, lead developer, and senior designer. In just over 60 days we went from concept to Alpha. The speed, knowledge, expertise, and flexibility is second to none. The Toptal team were as part of Tripcents as any in-house team member of Tripcents. They contributed and took ownership of the development just like everyone else. We will continue to use Toptal. As a startup, they are our secret weapon.
Brantley Pace
CEO & Co-Founder
I am more than pleased with our experience with Toptal. The professional I got to work with was on the phone with me within a couple of hours. I knew after discussing my project with him that he was the candidate I wanted. I hired him immediately and he wasted no time in getting to my project, even going the extra mile by adding some great design elements that enhanced our overall look.
Paul Fenley
Director
The developers I was paired with were incredible -- smart, driven, and responsive. It used to be hard to find quality engineers and consultants. Now it isn't.
Ryan Rockefeller
CEO
Toptal understood our project needs immediately. We were matched with an exceptional freelancer from Argentina who, from Day 1, immersed himself in our industry, blended seamlessly with our team, understood our vision, and produced top-notch results. Toptal makes connecting with superior developers and programmers very easy.
Jason Kulik
Co-founder
As a small company with limited resources we can't afford to make expensive mistakes. Toptal provided us with an experienced programmer who was able to hit the ground running and begin contributing immediately. It has been a great experience and one we'd repeat again in a heartbeat.
Stuart Pocknee
Principal
How to Hire Ethereum Developers Through Toptal
1
Talk to One of Our Client Advisors
A Toptal client advisor will work with you to understand your goals, technical needs, and team dynamics.
2
Work With Hand-selected Talent
Within days, we'll introduce you to the right Ethereum developer for your project. Average time to match is under 24 hours.
3
The Right Fit, Guaranteed
Work with your new Ethereum developer for a trial period (pay only if satisfied), ensuring they're the right fit before starting the engagement.
Find Experts With Related Skills
Access a vast pool of skilled developers in our talent network and hire the top 3% within just 48 hours.
Typically, you can hire an Ethereum developer with Toptal in about 48 hours. For larger teams of talent or Managed Delivery, timelines may vary. Our talent matchers are highly skilled in the same fields they’re matching in—they’re not recruiters or HR reps. They’ll work with you to understand your goals, technical needs, and team dynamics, and match you with ideal candidates from our vetted global talent network.
Once you select your Ethereum developer, you’ll have a no-risk trial period to ensure they’re the perfect fit. Our matching process has a 98% trial-to-hire rate, so you can rest assured that you’re getting the best fit every time.
How do I hire an Ethereum developer?
To hire the right Ethereum developer, it’s important to evaluate a candidate’s experience, technical skills, and communication skills. You’ll also want to consider the fit with your particular industry, company, and project. Toptal’s rigorous screening process ensures that every member of our network has excellent experience and skills, and our team will match you with the perfect Ethereum developers for your project.
How are Toptal Ethereum developers different?
At Toptal, we thoroughly screen our Ethereum developers to ensure we only match you with the highest caliber of talent. Of the more than 200,000 people who apply to join the Toptal network each year, fewer than 3% make the cut.
In addition to screening for industry-leading expertise, we also assess candidates’ language and interpersonal skills to ensure that you have a smooth working relationship.
When you hire with Toptal, you’ll always work with world-class, custom-matched Ethereum developers ready to help you achieve your goals.
Can you hire Ethereum developers on an hourly basis or for project-based tasks?
You can hire Ethereum developers on an hourly, part-time, or full-time basis. Toptal can also manage the entire project from end-to-end with our Managed Delivery offering. Whether you hire an expert for a full- or part-time position, you’ll have the control and flexibility to scale your team up or down as your needs evolve. Our Ethereum developers can fully integrate into your existing team for a seamless working experience.
What is the no-risk trial period for Toptal Ethereum developers?
We make sure that each engagement between you and your Ethereum developer begins with a trial period of up to two weeks. This means that you have time to confirm the engagement will be successful. If you’re completely satisfied with the results, we’ll bill you for the time and continue the engagement for as long as you’d like. If you’re not completely satisfied, you won’t be billed. From there, we can either part ways, or we can provide you with another expert who may be a better fit and with whom we will begin a second, no-risk trial.
Share
How to Hire a Great Ethereum Developer
The new paradigm of Ethereum development brings with it many moving parts. Smart contracts, distributed applications (or “dapps”, sometimes stylized “ĐApps”), the “ether” cryptocurrency, a world-wide virtual machine where work is measured in “gas”—all of this is in addition to the basic underlying blockchain technology.
Navigating this isn’t anywhere close to being second nature for most people, even from a user standpoint. That said, how can a non-expert make a reasonable assessment of a potential Ethereum developer candidate?
First, let’s get acquainted with some basic Ethereum background. After that, we’ll jump into questions and answers one might expect in an interview for an Ethereum-related position.
Who’s Driving Ethereum?
In 2013 Vitalik Buterin invented Ethereum, in 2014 it had ICO backing, and in 2015 it went live. The technology is still very young, but Ethereum development is an exciting frontier. At the time of writing, there are not too many blockchain engineers in general, and even fewer who are Ethereum developers.
Interactions between Ethereum experts are what drive the technology.
So early in the history of Ethereum, it may seem unreasonable in some cases to expect to be able to hire actual experts: Those who have run meetup groups, helped startups as advisors, successfully completed an ICO, etc.
That being the case, it’s important that contemporary Ethereum developers are committed to becoming true experts. It’s best that they’re connected to current Ethereum experts in meaningful ways. The engineer who knows people in their local blockchain community, or attends meetups or conferences, or who has a good reputation in online Ethereum communities—they will likely have a suitable passion for the subject and level of outside support to effectively develop Ethereum blockchain technology for your project.
Key Ethereum Concepts
With a technology so new and unfamiliar as Ethereum is, there’s a tendency to try to use it as a solution to the wrong set of problems. It may be wise to consult an experienced Ethereum developer in depth to figure this out, before deciding whether to try to hire a whole team. After all, Ethereum developer jobs are more plentiful than Ethereum developers at the moment.
But with a few key concepts in mind, you’ll find it a lot easier to have a sensible conversation about where and how Ethereum can be used in your project—and where it might ultimately be a bad fit.
The Ethereum Blockchain
Just like bitcoin and many other cryptocurrencies, the Ethereum project is an implementation of blockchain technology.
A blockchain is a distributed database. It consists of sets of data, called blocks, with each block containing a reference to the previous one, in addition to its actual data payload and timestamp. The references to the previous blocks are what link the blocks together, forming the chain. The true components of the blocks vary between implementations: Ethereum’s blocks don’t follow the exact same format as bitcoin’s, for example.
The key points are that by design, blockchains are unchangeable: With every new block linking to the permanent state of the previous block, its history can be traced all the way back to the first block. In addition, the balance of every account is publicly visible.
Adding transactions means there will temporarily be multiple copies of the blockchain within the network. The effect of synchronizing these copies is that, in the end, one longest chain emerges, and consensus is reached. Based on these attributes and the democratic mechanisms to achieve consensus, blockchains can guarantee the integrity of their assets.
It’s not really necessary for all Ethereum developers to have a thorough understanding of the contents of every block nor of the cryptography underlying the ether cryptocurrency. But when you’re looking to to implement new protocols or create tools for other developers, it will be very meaningful to hire Ethereum developers who have a background in cryptography and/or strong familiarity with the underlying distributed ledger technology.
In the end, if you’re looking for decentralized alternatives to working-but-centralized solutions, then your final product should be designed in line with the technology you leverage. You’ll want to hire an Ethereum developer who can explain to you, with clarity, even the most complex aspects of Ethereum architecture.
Proof of Consensus?
Since every real node on the blockchain network has a copy of the blockchain, and new transaction blocks need to be synchronised among nodes, a few problems arise:
How to prevent attackers from flooding the network with invalid blocks
How to maintain an integral transaction history such that the nodes in the network will treat it as the source of truth
How to minimize the risk of double-spending
Any Ethereum developer worth hiring will be able to comment on the above issues and how they are approached in the Ethereum model.
But that’s not the only issue. Ethereum currently uses a proof-of-work algorithm, called Dagger-Hashimoto, to achieve consensus. But why is that a problem?
It turns out that there’s a major flaw related to proof-of-work algorithms in blockchain technology: They are very costly and have a strong impact on the environment. As of February 2018, Ethereum power consumption was closing in on that of the Dominican Republic and outweighed that of around 150 other countres. In fact, it has grown by around 200 percent since June 2017, to almost 15 TWh.
Even though the numbers seem massive, it is less than half of what bitcoin is using. To be precise, Ethereum uses 34 percent of bitcoin’s current yearly energy consumption, which currently is 51 TWh. Those numbers are already comparable; meanwhile, side-effects like this are already a reality:
Data available on a coal-powered bitcoin mine in Mongolia indicates the mine is responsible for 8,000 to 13,000 kg of carbon dioxide emissions per bitcoin, and 24,000 to 40,000 kg per hour. Tweeter Matthias Bartosik noted similar estimates: the average European car emits 0.1191 kg of carbon dioxide per kilometer driven. For every hour, the bitcoin mine emits at least the carbon dioxide equivalent of more than 203,000 car kilometers traveled.
Lester Coleman, Bitcoin Price Surge Leads to Electricity Consumption Spike: Blog Questions Environmental Impact, November 2017
The massive energy use of blockchains using proof-of-work for reaching consensus was one of the motivators for the plan to move Ethereum towards another algorithm: proof-of-stake. While that resolution would be bright for the world’s ecology, the algorithm planned for the official release of Ethereum v1.0, called Ethash, is still an extension of its original proof-of-work algorithm. Proof-of-stake, on the other hand, is planned for Ethereum v1.1.
In the proof-of-stake method of achieving consensus, the next node to mine a block is chosen based on randomness and the size of a miner’s stake. In effect, the next miner could be any node in the system, but the ones holding more coins are more likely to win.
There are some modifications to that basic algorithm, like weighing in the age of the coin. But it’s been criticized as being less safe to the integrity of the network, because the nodes have less motivation to act honestly.
To answer this, Buterin (Ethereum’s inventor, you’ll recall) suggested a punitive version of the proof-of-stake algorithm, called Slasher. If that would be put into place, any dishonest nodes would actually lose coins.
Now, for the purposes of this hiring guide, we will provide a short example of a smart contract, outlining some common structures used in Ethereum applications. The example is based on a sketch used in the Blockchain-IoT open-source project.
The referenced smart contract is written in Solidity, the most popular language for smart contracts. It compiles to Ethereum Virtual Machine (EVM) bytecode. To compile the contract, you need a compiler like Solc-js—see the end of this article for other such tools and resources.
For the following contract, explain what each line of Solidity code does:
pragma solidity 0.4.18;
import "./Vehicle.sol";
contract VehicleOwner {
address public owner;
mapping(bytes32 => address) public vehicles;
event NewVehicleAdded(address indexed newVehicle, uint256 timestamp);
function VehicleOwner() public {
owner = msg.sender;
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
require(msg.sender == owner);
_;
}
function createNewVehicle(string model, string make, bytes32 vin) public onlyOwner {
address newVehicle = new Vehicle(model, make, vin);
vehicles[vin] = newVehicle;
NewVehicleAdded(newVehicle, now);
}
}
Let’s walk through the code, line by line.
pragma solidity 0.4.18;
That line only specifies the version of the compiler, in this case, 0.4.18.
import "./Vehicle.sol";
With that line, we import a smart contract used to represent new vehicles.
contract VehicleOwner {
That line opens the VehicleOwner contract definition, which is closed on the last line.
address public owner;
mapping(bytes32 => address) public vehicles;
Here, we define public variables, or the properties of the contract. The first one, called owner, represents the Ethereum address that created any given instance of the VehicleOwner contract. The second one, called vehicles, will be used to store a list of the vehicles owned by the owner, by assigning their contracts’ addresses to the provided vehicle identification numbers (VINs).
function VehicleOwner() public {
owner = msg.sender;
}
Note the particular naming of that single function. It’s the contract constructor, named exactly like the contract, written in upper camel case, or Pascal case—i.e., each compound word starts with an uppercase letter. The only thing that this constructor does is assign the address that called the function—i.e. the person who is creating the contract—as the contract owner.
That particular function modifier is used to limit access to only the owner of the contract. The underscore yields for the body of the function, to which the modifier is later applied. If the require condition passes, the function call is executed.
function createNewVehicle(string model, string make, bytes32 vin) public onlyOwner {
address newVehicle = new Vehicle(model, make, vin);
vehicles[vin] = newVehicle;
NewVehicleAdded(newVehicle, now);
}
That public function of the contract, with access limited to the contract owner’s address by the modifier, creates a new contract on the blockchain—a representation of a vehicle. The vehicle contract’s constructor receives three properties: model, make, and vin, the latter of which can be used to identify that particular vehicle.
Creating a new contract returns its newly assigned address. In the function, using the vehicles mapping, we bind the given vin to that address. Finally, the function broadcasts a new event, passing in the address and the current timestamp.
Now that you have an overview of the above script, you’re in a better position to ask the following questions about programming in Solidity before you hire an Ethereum developer:
How is the contract constructor defined?
The constructor is defined as a function, named exactly the same as the contract.
Where are events logged in Ethereum?
The events emitted by contracts are the logs. These terms are used interchangeably, based on the context. They are parts of their transactions’ receipts, and the results of LOG opcodes executed on the EVM. For optimization reasons, they are logged alongside the blockchain, but they are not stored in the blockchain itself.
What is the purpose of using events?
They can be used as means to communicate with front ends, or as cheap storage for data. Basically, the return values of transactions are only the transactions hashed, because it takes a bit of time for the blockchain to reach consensus and validate the transactions, by mining them into new blocks. By emitting events and having front ends listen (watch) for those events, efficient communication is achieved.
What is the purpose of modifiers?
Modifiers are similar to decorators: They modify the body of the functions that use them, in such a way that the conditions of the modifier must be met before the original function body is executed. If they are not met, the modifier throws an error.
Storing data in objects requires definition of a struct type (schema, interface). Storage processes are some of the most expensive operations, in terms of transaction costs.
Why are smaller smart contracts preferred?
Reasons for compact code structures are common in software engineering. Simple, well-structured code with low cyclomatic complexity is easier to understand, reuse, test, and maintain.
Creating large, monolithic contracts is not the best idea, because there are gas limits for blocks and transactions. Basically, blocks can only store a limited amount of data. That limit may simply block your contract from being migrated to the blockchain.
The client software used to make the transaction and deploy the contract should be able to prevent migrating any contract that exceeds the limits. It is not easy, however, to predict the exact final cost associated with a transaction. In the case that the supplied gas amount is not enough to cover the fees, the computations are stopped and the used gas is not returned.
This question is particularly tricky. The problem is that any updates to a contract result in a new smart contract with a new address. The old address and contract persist. Until now, there is no single best practice for dealing with this. However, there are many approaches.
One rather elegant solution was described by Aigang. They issued a contract register, which stored all the addresses to their contracts, but returned only the latest one. Then before making any calls to their contracts, they would obtain the most recent address from the registry.
There was another problem, though: The data is stored with the contract. The solution there was to keep the data in a separate contract. Obviously there are limitations to this approach, but it seems manageable, especially after the early stages of development.
But there’s a simpler approach. The main idea here is to simply use new contracts. Obviously there is again the problem of data storage. The final approach should be suited to the actual needs of one’s project.
Explain Ethereum libraries.
Libraries are used to separate concerns in smart contracts. In particular, they isolate integral pieces of logic. Libraries are not instantiated and they cannot store data. Their code is called using DELEGATECALL in the context of the calling contract.
It is as if the code in the library were a part of the smart contract that’s calling it. The main difference is that it is not actually part of it, and it can be reused by other contracts. Using libraries also helps with reducing contract complexity and gas cost. It pays off!
How do Ethereum smart contracts communicate with the outside world?
Smart contracts cannot communicate with the outside world, by definition, because all of the nodes need to be able to access all the processed data (or derived values) to validate the integrity of the blockchain. The data in the outside world is not immutable and certainly not predictable like that.
The workaround to that limitation is delivered by oracles. An oracle is a piece of software—sometimes embedded—that listens for specific blockchain events and responds by sending data from the outside world to smart contracts on the blockchain.
The problem remains that in order for the blockchain to validate such a transaction, trust must be placed in the oracle. A more elegant solution, much like the blockchain itself: Single oracles aren’t trusted, but a swarm of oracles facilitate consensus on the processed data.
What is integer division, and why is it important for smart contract development?
Integer division is the arithmetic operation in which the integer quotient is obtained from two operands. The fractions of the result are discarded and the result itself is “truncated towards zero”, i.e. rounded down to the nearest integer, compared to the result of floating point division. For example:
10 / 3 = 3
Consider its application to a real-world scenario:
Arithmetic operations in Solidity are done on the lowest denomination of ether, called wei.
1 ether = 1 wei * 10**18 // or 1e18 wei
Since by convention, we tend to trade in the ether cryptocurrency, the situation is the equivalent of ether having 18 decimal points. That magic number, 18, may be turning into a decimal standard for Ethereum tokens. Most clients look for the public variable decimals to represent the held integer value in ether. While not obligatory, ERC20 tokens often implement it:
uint8 public constant decimals = 18;
What are wei, szabo, finney?
These are ether denominations named after the cypherpunks, researchers, and developers of cryptocurrencies. wei, being the lowest denomination of ether, is also called the base unit of ether. In fact, ether is expressed as 1e18 (one quintillion) wei, or 1,000,000,000,000,000,000 wei.
Szabo and finney are similar-but-higher denominations: 1e12 (one trillion) and 1e15 (one quadrillion) wei, respectively. Note that there are also other denominations, named similarly, e.g., one shannon is 1e9 (one billion) wei, but you may also see it referred to as Gwei (giga-wei).
The particular trivia behind the main three denominations:
Wei Dai is the inventor of b-money, which was one of the inspirations for bitcoin.
Hal Finney is the first bitcoin user (apart from the author) and the first recipient of a bitcoin transaction.
Gas is the cost of Ethereum resource utilization, i.e., the cost of executing transactions on the EVM. Obviously, simple transfers will cost less than migrating a smart contract to the blockchain, but both of these transactions have their processing cost expressed in units of gas.
The price of executing transactions on Ethereum blockchain is meant to stay constant over time. The price for a gas unit is not bound to the value of ether, but it is expressed in ether. In other words, the cost of transactions should not rise together with ether.
When sending out a transaction, in addition to the value in ether, the sender specifies the maximum amount of gas to use for the transaction, as well as the gas price. The final cost is calculated by the simple formula transaction cost = gas × gas price. Transaction fees are paid out in ether to miners.
What’s Your Ethereum Stack?
We’re almost at the end of this compact guide about hiring Ethereum developers. You, the recruiter—and also the right candidate—should have a clear understanding of the mechanics of Ethereum’s blockchain. Most importantly, you should be aware of the distinction between designing software for traditional, centralised systems versus decentralized blockchains.
Consider how bitcoin and Ethereum were designed to allow for direct, trustless transactions between the networks’ participants. Due to leveraging proof-of-work, among other algorithms, for reaching consensus, the platforms strive to avoid reliance upon trusted third parties.
That has strong implications for the design of apps that are meant to be published on the blockchain. Thinking of Ethereum application architecture, keep in mind that blockchain takes over many of the responsibilities of traditional, centralized servers, but it also brings changes. If the services or products that you plan to offer via blockchain are somehow bound to your company, then you are still making centralized apps.
This presents two challenges. The first one is to develop a plan that will allow users to benefit from the smart contracts you provide, without having to refer to your company. A smart contract should allow two parties to make some form of transaction, involving cryptocurrency, stocks, bartering, etc. The second challenge is to find the business “in,” i.e. how to make money with your products!
A success story for this is EtherDelta, a truly decentralized trading platform. Their service stands in contrast to typical exchanges, which deal with cryptocurrency but in reality are centralized platforms with the trading happening off-chain. Placing orders on EtherDelta does not require an Ethereum transaction, but trading does, that way it actually leverages blockchain and is safer to use.
It is also transparent to the point where new types of coins are added via GitHub pull request. EtherDelta charges a 0.3% taker fee (for withdrawals). Therefore, it’s definitely possible for public, open, decentralized apps to be profitable.
On the other hand, for some businesses, it wouldn’t make sense to keep everything on a blockchain. In particular, sensitive data should be stored securely and kept secret—in many cases, this is even a legal requirement.
It is also very important to note that every transaction on Ethereum is rather expensive and slow. Even when transactions become validated, it is best to wait for a few more blocks to be mined. The reason is that very recent blocks can potentially become identified as not part of the canonical blockchain, and already-mined transactions then get reverted. That process is called chain reorganization, and it happens quite often.
Also, the code on a blockchain cannot communicate on its own with external services. For those reasons, keeping all business operations on a blockchain may just be too much for most businesses. While it’s crucial for smart contracts to be independent and built with openness in mind, there’s no wrong in making your SaaS and Ethereum ĐApps the very best interface for the contracts in question! This seems okay, as long as other interfaces can be built without having to rely on your business.
Be Smart about Smart Contract Developers
Smart contracts, including the one given as an example, are public on the blockchain. Business motivations drive the creation of new software, but the right Ethereum engineer will design smart contracts so that they are in line with the public, transparent nature of blockchains, lest they fail trying to transition centralized logic to a blockchain. There are also the limitations of smart contracts to be taken into account. In some cases, even, it’s still rather early for full blockchain adoption because more changes are underway.
In the end, you’ll want to hire an Ethereum blockchain developer who also has as good a mind for business as they do for programming. The world of Ethereum app development is a wild one—all the more reason to hire the most dependable and expert developers you can find.
Further Ethereum Resources to Explore
We recommend the following high-quality public resources, to study various Ethereum-related subjects in detail, and experiment with different tools:
Populus, a smart contract development framework for Python
Open Zeppelin library, a collection of secure, tested, and community-audited smart contracts, for use as building blocks, integrated with the Truffle framework
A great introduction to writing full-stack blockchain-connected software in three parts, from simple voting contracts using web3 on testrpc, to token sale ĐApps built with Truffle, deployed to public networks