Hiring guide · Custom Software

Hire Solidity Developers: Rates, Vetting and Red Flags

The short answer

Expect to pay roughly $45 to $150 per hour for a Solidity smart contract developer, with the low end covering competent offshore builders on standard token and staking work and the top end covering engineers who write invariant tests, survive audits and have shipped contracts holding real money. For almost every team below a full protocol org, the right move is an agency or staff augmentation engagement for the contracts plus the integration work, with an independent third party audit booked separately before mainnet. Solo freelancers are fine for a prototype or a testnet demo, and a poor bet the moment user funds are custodied on-chain.

What a Solidity developer owns, and where the hire goes wrong

A Solidity engineer writes the one part of your product that strangers can call directly, that holds money, and that you cannot quietly patch on a Tuesday afternoon. Everything else in a crypto product is normal software. The frontend is React. The indexer is a service reading logs. The API is an API. The contracts are different: they execute in public, they are immutable unless you deliberately made them upgradeable, and every mistake is a standing offer to whoever finds it first.

We get called in on the same story about twice a year. A team ships a staking vault on Base. Their developer built it in Hardhat, wrote a tidy test file, and reported 94 percent coverage. Deposits work, withdrawals work, the demo goes well. Three weeks after launch, once deposits cross a couple of million, a bot deposits one wei, transfers tokens straight to the vault address to inflate the share price, and the next real depositor's share calculation rounds down to zero. That is the ERC-4626 donation attack. It has been public knowledge for years. The coverage number stayed green the whole time because every test modeled an honest user.

That gap is the whole problem in this market. Writing Solidity that works is a weekend skill, and the language is small enough that a competent TypeScript developer can produce a functioning ERC-20 in an afternoon. Writing Solidity that holds when a well funded adversary is reading your verified source on Etherscan is a different job. The good ones think in invariants, not features. They can state the property that must never be false, something like total shares outstanding always match total assets within one wei of rounding, and then show you a fuzz campaign that tried a million random call sequences to break it. The expensive hires think in features, deliver on time, and hand you a live liability.

Engagement models: in-house, freelancer, agency, staff augmentation

In-house hire. Right when the contracts are the product and will keep changing: a lending protocol, a perps exchange, an L2 with a live upgrade roadmap. You need someone who owns the deployment keys, the upgrade process and the incident runbook, and who will still be there at 3am when a whitehat emails you. Wrong when you have one vault and a token. You will pay a senior salary for someone who finishes the contracts in eight weeks and then spends a year writing Next.js pages, which is when they start looking for another job.

Freelancer. Good for a bounded, well specified piece: an ERC-721 drop with a Merkle allowlist, a vesting contract, a Foundry test suite for code you already have. The trade-off is bus factor and accountability. When your proxy admin key ends up in a MetaMask on someone's personal laptop and they stop replying, there is no escalation path. Marketplace profiles also make verification hard, because a five star rating on a token deploy tells you nothing about whether they can reason about reentrancy across two external calls.

Agency. You are buying a team and a process rather than a person: contract engineer, integration engineer, review before merge, CI running forge test and Slither on every push. It costs more per hour and pays for itself the first time a second pair of eyes catches an unchecked return value from a USDT transfer. Be direct about who is writing the Solidity. Some agencies sell blockchain and staff it with a backend developer who read the docs last month.

Staff augmentation. Our most common shape for funded teams that already have engineers. You keep the product decisions and the repo, we drop in a Solidity engineer plus a full stack person who handles viem, wagmi and the indexer, and they work inside your sprints. It fits when you have a CTO who can hold the architecture but nobody who has shipped contracts to mainnet before.

What it costs

These are ranges from Digital Heroes delivery and from what we see when we bid against other shops. They are not survey data, and they move with region, seniority and how much money the contract is expected to hold.

Freelance Solidity engineers in Eastern Europe, Latin America and South Asia typically land between $45 and $80 per hour for solid, unglamorous work. US and Western Europe based freelancers with real protocol history usually start around $100 and go past $150. Agency and staff augmentation rates generally run $60 to $130 per hour depending on where the engineer sits and whether audit preparation is in scope. People with public contest results, a track record at a known protocol, or serious Yul and formal verification depth price themselves above all of this, and often refuse hourly work entirely.

For an in-house hire, the salary is not the number. Benefits, payroll tax, equipment, software and a share of overhead push base compensation up meaningfully, and we plan around 1.3x base as a working figure. Add recruiting, because the specialist recruiters we have worked with take a percentage of first year salary, and this is a thin talent pool where DIY sourcing burns weeks of your own time. Add ramp: even a strong hire needs four to eight weeks before they are shipping confidently in your repo, and Solidity hires need longer because they have to learn your economic model before they can reason about what an attacker gains.

Then there is the line most people forget. An independent audit is a separate budget item, not part of the developer's rate. For a moderately sized protocol, the quotes our clients come back with from reputable firms and competitive contest platforms sit in the five figures, and complex systems go well beyond that. If your development budget consumed everything, you have not budgeted the project. Book the audit slot early, because good firms are booked out and you will otherwise be tempted to launch without one.

How to vet a Solidity developer

Skip the trivia. Nobody needs to recite opcode gas costs from memory. Look for adversarial thinking, and make them prove it on real code.

Open the test suite before the contract. Ask for a Foundry repo and look for functions prefixed invariant_ and fuzz tests with vm.assume constraints, not just unit tests with hardcoded values. Ask which handler contracts they wrote to bound the fuzzer, what properties they asserted, and what the fuzzer found. A candidate who has never written an invariant test has never stress tested anything, and forge coverage will not tell you that.

Ask for verified mainnet addresses. Not a GitHub link, an address on a block explorer with verified source. Read it yourself. Then ask what the audit found and how they responded. "The audit came back clean" is almost always a lie or means the auditor was a logo on a website.

Questions that separate people fast. How do you handle a token that does not return a bool on transfer, and why does SafeERC20 exist? Walk me through the storage layout of your last UUPS or transparent proxy, what a storage gap is for, and what happens if you insert a variable in the middle. Why is calling _disableInitializers in the constructor of an implementation contract not optional? When you read latestRoundData from a Chainlink feed, what do you check before you trust the answer? Why is the spot price from a liquidity pool not a price oracle, and what would you use instead? Where in your last contract did you make an external call, how did you order state changes around it, and where did nonReentrant actually help versus where it was decoration? Good answers are fast, specific and slightly bored. Vague answers here are the whole interview result.

The take-home that works. Do not ask them to build an ERC-20. Hand them a deliberately broken contract, ninety minutes, and one instruction: find the bugs and write a Foundry test that exploits one of them. You learn more from watching someone write a proof of concept than from any amount of clean feature code. A strong variant is forking mainnet with vm.createSelectFork and asking them to reproduce a known historical exploit against the real deployed state. It is unambiguous, it cannot be faked with an LLM shortcut, and it tells you whether they can read someone else's code under pressure.

Check the boring operational things. Who holds the owner key, and is it a Safe multisig or one person's hot wallet? Is there a timelock on upgrades, and what is the delay? What is the pause story, who can trigger it, and what stays callable while paused? What is in their deploy script, and is it deterministic enough to re-run? An engineer who has run something in production has opinions here. One who has not will look at you blankly.

Red flags

"Tests pass, coverage is 98 percent." Coverage measures lines executed, not adversaries considered. Every drained vault in the last few years had passing tests. Ask instead: name three invariants of this system and show me the invariant test that tries to break each one.

Remix only, no repo, no CI. If the workflow is a browser IDE and a manual deploy, there is no reproducible build, no test history and no review gate. Ask instead: send me the repo and a link to a CI run with forge test and Slither in the pipeline.

Edited OpenZeppelin files in place. A vendored copy of the library with changes buried inside it means you can never take an upstream security patch. Ask instead: what did you change in OpenZeppelin, why, and how do you track their advisories?

Gas optimization theater. Assembly everywhere, obsessing over pre-increment and packing an unused uint8, while an external call sits before a state update. Micro-optimizing is what people do when they want to look expert without owning the security model. Ask instead: show me a forge snapshot before and after, and show me your checks-effects-interactions ordering.

"We will audit after launch." That is not a budget decision, it is a bet with your users' money. It also usually means there is no code freeze, which makes the audit worthless anyway because the code will keep moving. Ask instead: what is the freeze date, which firm is booked, and what is the remediation window?

When you do not need this hire, and how we staff it when you do

Plenty of people who search for Solidity developers do not need one. If you need payments, use a payment processor. If you need points, credits or an internal balance, a Postgres ledger with proper accounting is faster, cheaper and reversible when you get it wrong. If your product is a wallet connect flow, a dashboard and reading existing protocols, what you need is a frontend engineer who is fluent in viem and wagmi, and a backend engineer who can build an indexer with The Graph or Ponder. That is a different hire at a different rate, and hiring a contract specialist for it wastes both of you.

Hire a Solidity developer when value is custodied on-chain, when the rules have to be verifiable by people who do not trust you, or when composability with other protocols is the point. In a typical build, the contracts are a small share of the codebase and the overwhelming majority of the risk, and you should staff to that ratio rather than to line count.

Digital Heroes staffs this as a pair by default: one engineer who owns the contracts, the Foundry suite and the deployment scripts, and one full stack engineer on the integration, the indexer and the app. We work behind a code freeze, we hand the frozen code to an independent audit firm we do not control, and we handle remediation against their findings. We do not sign off on our own contract security, because marking your own homework is how the vault gets drained. Repos, keys and deployed addresses are yours from day one.

Research & sources

The evidence behind this guide

Independent findings on why this investment pays off. Every link goes to the primary source.

  1. The share of tasks performed mainly by humans is projected to fall from 47% to 33% by 2030 as human-machine collaboration expands, with 170 million jobs created and 92 million displaced (a net gain of 78 million). Source: World Economic Forum (2025) →
  2. McKinsey's Developer Velocity research finds best-in-class tools are the top contributor to software business success, yet only about 5% of executives ranked tools among their top-three software enablers, signaling underinvestment in developer tools (this finding originates in McKinsey's Developer Velocity study rather than the linked generative-AI article). Source: McKinsey & Company (2023) →
  3. Across ten outpatient clinics the mean no-show rate was 18.8%, and the marginal cost of no-shows reached $14.58 million per year for those clinics, at roughly $196 per missed appointment (2008 figures). Source: BMC Health Services Research / PubMed Central (Kheirkhah et al.) (2015) →
  4. In Gartner's 2025 AI in Finance Survey of 183 CFOs and senior finance leaders (fielded May-June 2025), 59% reported using AI in their finance function, with accounts payable process automation adopted by 37% of respondents (the second-highest single use case, behind knowledge management at 49%). Source: Gartner (2025) →
Rohan Malhotra · Enterprise Software Consultant

Rohan advises mid-market and enterprise teams on ERP, CRM and custom software, and has led delivery on dozens of business-software builds.

Writes for Digital Heroes, shipping business software for 2,000+ brands across 55+ countries since 2017.

FAQ

Frequently asked questions

How much does it cost to hire a Solidity smart contract developer?
Roughly $45 to $150 per hour, based on Digital Heroes delivery and market experience. Offshore freelancers on straightforward token, vesting or staking work sit at the low end, while US and Western Europe engineers with real protocol history start near $100 and go higher. Engineers with public audit contest results or formal verification depth price above that range and often will not work hourly at all. Budget a separate five figure sum for an independent audit before mainnet.
Should I hire a freelancer or an agency for Solidity development?
Use a freelancer for a bounded piece of work that does not custody real money, such as a testnet prototype, an NFT drop or a vesting contract. Use an agency or staff augmentation the moment user funds are involved, because you are buying a review gate, CI and a second pair of eyes rather than one person's judgment. The single biggest freelancer risk is bus factor: when the person holding your proxy admin key stops replying, there is no escalation path.
How do I test a Solidity developer before hiring them?
Give them a deliberately broken contract and ninety minutes to find the bugs and write a Foundry test that exploits one. That reveals adversarial thinking, which is the actual job, and it cannot be faked the way a clean ERC-20 build can. Also ask for verified mainnet addresses on a block explorer and read the code yourself, then ask what their audit found and how they fixed it.
How long does it take to hire a Solidity developer?
An in-house hire realistically takes eight to sixteen weeks from opening the role to productive output, because the pool is thin and you still owe four to eight weeks of ramp while they learn your economic model. An agency or staff augmentation engineer can usually start within one to two weeks. If you have an audit slot booked, work backwards from that date, since good audit firms are booked out well in advance.
What is the difference between onshore and offshore Solidity rates?
Onshore engineers in the US and Western Europe typically cost two to three times an equivalent offshore engineer in Eastern Europe, Latin America or South Asia. The quality gap is much smaller than the price gap, because Solidity talent grew up in a globally distributed, open source ecosystem where everyone read the same audit reports. The real differences are timezone overlap for incident response and contracting jurisdiction, not skill.
Who owns the code and the deployed contracts?
You should own everything from day one: the repository, the deployment scripts, the contract addresses and the admin keys. Put it in writing that work for hire assigns all IP to you, and never let a vendor hold the only copy of an owner or upgrade key. At Digital Heroes we hand over admin control to your Safe multisig at deployment and keep no privileged access.
Do I still need a security audit if my developer is good?
Yes, and a good developer will be the first person to tell you that. Nobody audits their own code effectively, because the same mental model that produced the bug will read straight past it. Book an independent firm, freeze the code before the audit starts, and budget a remediation window afterwards rather than assuming the report comes back empty.
How much does a smart contract audit cost?
For a moderately sized protocol, the quotes our clients bring back from reputable firms and competitive contest platforms sit in the five figures, and complex systems with novel math go well beyond that. Pricing tracks engineering days and code complexity, so cutting scope to the contracts that actually hold funds is the honest way to control it. Treat it as a separate line item from development, because it is.
Can one Solidity developer build my whole dapp?
Usually not well. The contracts are a small share of the codebase and most of the risk, while the frontend needs viem and wagmi fluency and the data layer needs an indexer such as The Graph or Ponder. Asking one contract specialist to also build your React app either produces a weak app or, worse, pulls their attention away from the part that can lose money.
What does a $50,000 custom software budget actually buy?
One core workflow done properly: 10 to 15 screens, two or three user roles, a couple of integrations, an admin panel, and automated tests, delivered in roughly 12 to 14 weeks. What it does not buy is that workflow plus a mobile app plus AI features plus five more integrations. The discipline of picking the one workflow that matters is what separates $50,000 projects that ship from $50,000 projects that stall at 70% complete.
We run everything on Airtable and spreadsheets. When is it time to go custom?
The switch usually makes sense when you hit one of two walls: Airtable's record caps (125,000 records per base on the Business plan) or logic the tool cannot express, like multi-step approvals with conditional pricing. There is also a simple cost signal: 25 people on Business at roughly $45 per seat per month is about $13,500 a year, forever, for a tool you are already fighting. Custom is worth it when the workflow is core to how you make money; for peripheral processes, staying on Airtable is the right call.
Is it cheaper to customize Salesforce than to build a custom CRM from scratch?
If you use less than a third of what Salesforce does, a custom CRM is often cheaper by year three. Salesforce Enterprise lists at $165 per user per month, so 25 seats cost about $49,500 a year before admin and consultant fees, while a focused custom CRM runs $60,000 to $100,000 once plus 15 to 20% a year in maintenance. If you genuinely need Salesforce's ecosystem, reporting, and app marketplace, customizing it beats rebuilding it; the mistake is paying enterprise prices to use it as a glorified contact list.
How do I calculate whether custom software will pay for itself?
Divide the build cost by the monthly benefit, where benefit is hours saved times loaded hourly cost, plus subscription fees replaced, plus any revenue the software unlocks. Three staff saving 10 hours a week each at a $40 loaded rate is about $62,000 a year, which pays back a $60,000 build in roughly 12 months. Across Digital Heroes internal-tool projects, 12 to 24 months is the normal payback range, and anything projecting under 6 months usually means the spreadsheet is hiding costs.
What is a discovery phase, and is it worth paying for separately?
Pay for it, and treat the output as yours. A discovery phase runs two to three weeks, typically 5 to 10% of the eventual build budget, and produces a written scope, wireframes, and a fixed quote you can take to any vendor, including a competitor of the agency that wrote it. Skipping it is how projects end up quoted from a two-paragraph email and delivered at twice the price.
Should I ask for a fixed price or pay the agency hourly?
Fixed price for the first version, hourly or retainer for what comes after launch. A fixed-scope, fixed-price V1 puts the estimation risk on the agency, which is exactly where you want it while trust is unproven; hourly billing on an unscoped greenfield build is a blank check. After launch, flip it, because maintenance and small features arrive unpredictably and fixed-pricing every ticket wastes everyone's time.
What does it cost to keep custom software running after launch?
Budget 15-20% of the original build cost per year, which on a $100,000 system means $15,000 to $20,000 for security patches, dependency updates, bug fixes, and small improvements as real usage reveals what the spec missed. Cloud hosting for a typical business application adds $50 to $300 a month on top. Skipping maintenance does not save the money; in Digital Heroes rescue work, unmaintained systems typically need a far more expensive rebuild within about three years.
Will an app built for 10 users survive growing to 500?
Yes, if it is built on standard cloud infrastructure with a sound data model, because moving from 10 to 500 users is a hosting configuration change, not a rebuild. The scaling decisions that actually hurt are made early and invisibly: how the database is structured, how accounts and permissions are modeled, and whether background work is queued properly. Ask your agency how the system would handle ten times the load; the right answer is boring and specific, and a promise to cross that bridge later means you will pay for the bridge twice.
Does it matter which tech stack the agency wants to use?
Yes, but not in the way most buyers expect: the goal is boring, popular technology such as React, Node.js or Python, and PostgreSQL, because any future team can maintain it and hiring a replacement developer takes days, not months. The red flag is an agency-proprietary framework or an unusual language, which welds you to that one vendor no matter what your contract says about code ownership. A useful test: could you find three freelancers fluent in this stack within a week? If not, push back.
How much should a small business expect to pay for custom software?
Across 2,000+ Digital Heroes projects, a small business system that replaces spreadsheets or one core workflow typically lands between $40,000 and $80,000, with more complex first versions running up to $150,000. The two levers that move the number most are integrations and user roles, not the team's hourly rate. Any quote under $15,000 for a full production system means the vendor has not understood your scope yet.
Keep reading
let's build

Build something worth launching.

A plan, a team, a timeline, within 24 hours. No decks, no discovery calls. Tell us what you're building and we'll come back with a real scope and a real number.

message us directly · we reply within one business day

mission briefing

Monthly dispatch

Playbooks, real build costs, and what we're shipping. One email a month. No fluff.

visit us

New York HQ

1140 Broadway, Suite 704 · New York, NY 10001

Get directions
Online now

Hey there 👋 How can we help you today?