Blockchain Development: When It Is Justified and How We Build It

When a shared ledger is the right tool, when a normal database is better, and how we design, test, audit and integrate smart contracts with ordinary backends.

A shared ledger drawn as chained square blocks, the newest still dashed, with node circles for the parties keeping it.

You may be looking at blockchain development because a partner requires it, because you need to work with assets that already live on a public network, or because a shared ledger looks like the answer to a trust problem between organizations. In each case you want a system that’s secure, maintainable and clearly better than the alternative.

The first thing to settle is whether a blockchain is needed at all. If it is, the on-chain part should be as small as possible, tested and audited before it holds value, and connected to ordinary, well-run systems that handle everything else. If it isn’t, we’ll say so and build the simpler system instead.

When a blockchain is actually justified

A blockchain is a shared, append-only database that no single party controls. That property is valuable in a narrow set of situations and expensive everywhere else. It tends to pay off when several organizations need to write to the same records and don’t trust each other, or any single operator, to run that database fairly. It also makes sense when outsiders need to verify the history independently, or when you have to interoperate with assets and applications that already exist on a public network, such as stablecoins.

If one company controls the data, a conventional database is almost always the better answer. You don’t need a blockchain for tamper evidence either. Append-only tables, signed audit logs and Merkle-tree logs (the structure behind certificate transparency) give strong guarantees at a fraction of the complexity. If you want public proof on top, you can periodically anchor a single hash of your log on a public chain.

Requirement Conventional database Blockchain
One organization owns the data Best fit Adds cost without benefit
Several parties, no trusted operator Needs a neutral host everyone accepts Strong fit
Personal data that may need deleting Straightforward Keep it off-chain
High throughput, low latency Strong fit Limited and more expensive
Confidential business data Straightforward Public chains expose everything
Independent public verification Possible with signed, published logs Built in

What we build with blockchain development

When a chain is the right tool, the work usually falls into one of these categories:

  • Decentralized applications (dApps), meaning web applications and mobile front ends built on smart contracts, with wallet connection, clear transaction flows and indexed data so screens load fast.
  • Multi-party workflows, such as escrow, settlement or revenue-sharing rules that several companies can verify without trusting one operator.
  • Permissioned ledgers for consortiums. Supply-chain traceability between manufacturers, logistics partners and retailers is a typical case, usually on Hyperledger Fabric, where members are known and data can be shared selectively.
  • Document anchoring, which proves that a contract, record or dataset existed in a specific form at a specific time without publishing its content. It suits LegalTech and compliance work well.
  • Integrations with existing networks, like accepting stablecoin payments, pulling on-chain data into dashboards or connecting a product to wallets its users already have. Wallets, exchange features and payment products are covered in our cryptocurrency development article.

In consortium projects, governance is usually harder than the technology. Someone has to decide who runs nodes, who admits new members and how upgrades and disputes get settled. If the members can’t agree on those rules, a shared database hosted by a neutral party may serve them better.

Smart contracts: small, tested and audited

Smart contracts are unusual software. They’re public, they often hold value, and once deployed they’re hard or impossible to change. Any bug is visible to people with a financial incentive to exploit it, so we design with that in mind:

A small contract module clamped in a test rig with a meter, dial and magnifier, beside an emergency pause lever.
  • Contracts stay minimal. Only logic that really needs shared trust goes on-chain.
  • We build on audited libraries such as OpenZeppelin Contracts for tokens, access control and common patterns instead of rewriting them.
  • We apply the known defenses: the checks-effects-interactions pattern, reentrancy guards, explicit role-based access control, emergency pause mechanisms and limits on how much can move at once.
  • Price data is treated as an attack surface. A spot price read from a single exchange pool can be manipulated within one transaction, so we use manipulation-resistant oracle designs instead.
  • Admin keys get real protection. Privileged functions sit behind a multisig wallet such as Safe, ideally with a timelock so users can see changes coming.
  • Upgradeability is a deliberate choice. Proxy patterns allow fixes, but they add complexity and concentrate trust in whoever holds the upgrade key. Immutable contracts are simpler but need a migration plan.

Testing goes well beyond unit tests. We use fuzzing and invariant testing with tools such as Foundry, static analysis with tools such as Slither, and full rehearsals on testnets and on local forks of the main network. Our engineers and QA testers review everything internally. For any contract that will hold meaningful value, we plan an independent external audit before mainnet launch, followed by monitoring and ideally a bug bounty, because an audit lowers the risk without removing it.

Wallets, keys and transaction UX

Many blockchain products lose users at the wallet rather than in the contract. Who holds the keys is a product decision, with consequences for security, regulation and usability:

  • User-held wallets: users connect a wallet they already have through a browser extension or WalletConnect. They get maximum control, but newcomers face a steep learning curve.
  • Embedded wallets: a wallet created inside your app, often using multi-party computation, so users sign in with familiar methods and never handle a seed phrase.
  • Smart contract accounts: programmable accounts that allow sponsored fees, spending limits and social recovery.

Whichever model you choose, users should see what they’re signing in human-readable form, using typed structured data rather than opaque hex, with fees shown up front and a simulated outcome where possible. Pending, confirmed, failed and replaced transactions each need a designed state. Server-side keys, like the ones a relayer uses, belong in a hardware security module or a cloud KMS. They never go in environment files or source code.

Connecting on-chain logic to normal backends

In a well-designed product, the chain is the source of truth for a small set of facts. Everything else, from accounts and profiles to search, notifications and reporting, runs in ordinary services and databases. The engineering work is in keeping the two reliably in sync:

Chain events flowing through an indexer into a database that serves web and mobile, with a reconciliation loop back.
  • Indexers listen to contract events and write them to a database your app can query quickly. They wait for an appropriate number of confirmations on each network, handle reorganizations that undo recent blocks, process events idempotently and support backfills.
  • Transaction relayers submit transactions on behalf of the system. They manage nonces, fees, retries and the replacement of stuck transactions, and they record every submission before sending it.
  • Node access goes through more than one RPC provider, or through your own nodes, with failover, so that one provider’s outage doesn’t take your product down.
  • Reconciliation jobs compare on-chain state with your database on a schedule and raise an alert on any mismatch.

Personal data stays off-chain. Anyone can read a public blockchain, permanently, and under laws such as the GDPR even a hash of personal data can still count as personal data, because inputs like email addresses can be guessed and hashed. Our backend development practices apply here as they do anywhere else, from queues and observability to incident runbooks.

How a blockchain engagement works

We begin with a short feasibility phase. Our business analysts and engineers map the parties involved, the trust model and the data flows, and they work through the regulatory context with your legal counsel. What comes out is a recommendation. Sometimes that recommendation is a conventional database with signed logs, and we count that as a good result, since it spares you from building and operating infrastructure you don’t need.

If a chain is justified, we produce an architecture and a threat model, then a contract specification written before any code. Contracts, backend and front end are built together, with tests at every layer, and you see progress in regular demos on testnet. We coordinate the external audit and launch on mainnet with conservative limits that rise as confidence grows. After launch, monitoring and runbooks cover pausing contracts, rotating keys and responding to incidents.

A typical team has a business analyst, smart contract and backend engineers, a frontend or mobile engineer, a designer for wallet and transaction flows, and QA. You receive the source code and test suites, deployment scripts, architecture and threat-model documents, audit reports with the fixes applied, and operational runbooks.

Frequently asked questions

Do we need our own blockchain?

Almost never. A new public network needs validators with a reason to secure it, and a small one is cheap to attack. Most products do better on an established network, on a layer 2 rollup for lower fees, or on a permissioned ledger when the participants are known.

Can you build an ICO, token sale or crowdsale?

Writing the contract code is straightforward. The legal, economic and security questions are much harder, and token sales are regulated in many jurisdictions. We build token contracts only when the token has a clear function in a product and your counsel has signed off. We don’t run token-sale marketing.

Should we use a public or permissioned blockchain?

Public, when you need open participation, public verifiability or access to existing assets. Permissioned, when the participants are known organizations sharing data selectively. If one party would end up running every node anyway, use a database.

Can a smart contract be changed after deployment?

Only if it was designed to be. Upgradeable proxies allow changes but concentrate trust in whoever controls the upgrade key, which should therefore sit behind a multisig and a timelock. Immutable contracts can’t be patched. Fixing one means deploying a new version and migrating.

Is our data private on a blockchain?

Not on a public one. Every transaction and stored value is visible to anyone. Keep confidential and personal data off-chain, and put only what must be shared and verified on the ledger.

If you’re still deciding whether a blockchain belongs in your product, it’s worth raising the question early. Walk us through the trust problem you’re trying to solve and who’s involved, and we’ll give you a straight answer on whether a chain fits and how we’d build it safely if it does.