What We Learned Building a Custom L1 Blockchain From Scratch
Nitish Beejawat
Founder, Tantrija Enterprises
Contents
- 1Why a custom L1 was needed
- 2Consensus mechanism design decisions
- 3The dual VM challenge
- 4Cross-chain architecture decisions
- 5What was hardest
- 6What we would do differently
- 7What this taught us about blockchain infrastructure at the protocol layer
In 2023, I joined BlocksOne as a core contributor on the Layer One X (L1X) protocol — a custom Layer 1 blockchain built from scratch. By April 2024 I was leading the development team. This is a personal account of what that experience taught me, what we got right, what we would do differently, and why building at the protocol layer changes how you think about blockchain engineering.
Why a custom L1 was needed
The question every team should ask before starting a custom L1 is whether an existing chain actually cannot solve the problem. In L1X's case, the answer was genuinely yes — but the reasoning is worth understanding.
L1X was designed with a specific cross-chain thesis: that the future of blockchain is not one chain winning but many chains coexisting, and that the infrastructure for moving assets and data between them was fundamentally broken. Existing bridges were (and remain) the most exploited attack surface in blockchain — hundreds of millions of dollars stolen from Ronin, Wormhole, Nomad, and others.
The thesis was that you needed a chain purpose-built for cross-chain interoperability — where cross-chain communication was a first-class primitive in the protocol design, not an afterthought bolted on with a bridge contract. That required a custom L1.
If your rationale for a custom L1 is "we want better performance" or "we want lower fees" — please reconsider. Those problems have solutions. A custom L1 is only justified when the combination of requirements genuinely cannot be met by an existing chain.
Consensus mechanism design decisions
L1X uses a Delegated Proof of Stake (DPoS) consensus mechanism. This was a deliberate choice and one I stand behind, but it came with real trade-offs we did not fully appreciate at the start.
DPoS gives you fast finality. Transaction finality in seconds rather than the probabilistic finality of Proof of Work or the multi-epoch finality of standard PoS. For an interoperability-focused chain, fast finality matters — you cannot build a reliable cross-chain bridge on a chain where finality takes minutes.
What we underestimated was the governance complexity. DPoS means a relatively small set of elected validators. Those validators need economic incentives to behave honestly, slashing conditions that are calibrated correctly (too harsh and nobody will run validators, too lenient and there is no deterrent), and a delegation mechanism that distributes stake appropriately without centralizing it.
We spent more engineering time on tokenomics and staking mechanics than I expected. The code was the easy part. The game theory of the incentive design was harder.
If I were starting again, I would engage an economist or game theorist earlier in the process. Consensus mechanism incentive design is a field unto itself.
The dual VM challenge
One of L1X's defining architectural decisions was supporting both native L1X smart contracts and EVM-compatible contracts. The motivation was clear: there is an enormous ecosystem of Solidity developers and existing contracts. Ignoring EVM compatibility means ignoring that ecosystem.
Supporting two virtual machines in a single chain is harder than it sounds.
The first challenge is state model consistency. The EVM's account-based state model and our native VM's state model had different assumptions. Reconciling them — ensuring that EVM contracts could interact correctly with native state and vice versa — required careful abstraction at the protocol layer.
The second challenge is gas accounting. EVM has its own gas model. Native contracts have a different cost model. Making these coherent — so users are not confused by why the same operation costs different amounts depending on which VM handles it — required protocol-level unification.
The third challenge, which we discovered in production testing, was the interaction between EVM opcode semantics and our consensus finality model. Some EVM opcodes make assumptions about block structure that do not hold in a DPoS chain with different finality properties than Ethereum. We had to implement EVM opcode patches — a deeply uncomfortable position to be in.
If I were designing this again, I would be more explicit about which layer owns what. The boundaries between the EVM compatibility layer and the native execution environment need to be cleaner than we initially made them.
Cross-chain architecture decisions
The cross-chain infrastructure was the reason for L1X's existence, and it was also the most architecturally novel part of the system.
The approach we took was to embed cross-chain state verification into the consensus mechanism itself. Rather than relying on a smart contract bridge (the model that has been exploited repeatedly), L1X validators run light clients for supported chains as part of their validator duties. They collectively attest to the state of external chains, and those attestations become part of L1X's own state.
This is fundamentally more secure than bridge contracts because the trust assumptions are different. A bridge contract's security depends on the bridge operator's private keys. L1X's cross-chain verification depends on the validator set's collective agreement — the same security model as the chain itself.
The implementation was difficult. Running light clients for multiple chains, maintaining them as those chains upgrade, handling the cryptographic verification of external state — this is complex, latency-sensitive work. We had to build custom implementations for Bitcoin, Ethereum, and BNB Chain state verification.
The lesson here is that if cross-chain functionality is your primary value proposition, design the architecture with that assumption from the beginning. Do not try to retrofit cross-chain onto a standard L1 architecture.
What was hardest
Technically, the hardest parts were the EVM compatibility patches and the cross-chain state synchronization. But honestly, neither of those was the hardest challenge overall.
The hardest challenge was coordination at scale.
When you are building a custom L1, you are not just writing code. You are coordinating: the consensus mechanism design with the network topology, the VM implementation with the gas model, the cross-chain architecture with the finality model, the SDK design with the application layer assumptions, the node software with the operational requirements of whoever will run validators.
Every change to one component had downstream effects on everything else. The architecture review process — ensuring that changes to the consensus layer did not break assumptions in the cross-chain layer, or that VM changes did not affect the state model — consumed a significant fraction of our engineering time.
Build an explicit architecture review process early. Informal communication between engineers is not sufficient when the system has this many coupled components.
What we would do differently
A few things I wish we had done differently:
Specify interfaces before implementation. We often built components and then defined the interfaces between them based on what was convenient for the implementation. This created coupling that was painful to refactor. Define the interfaces first — even informally — and let implementations conform to them.
Invest in the testnet earlier. We ran extended internal testing before launching a public testnet. In retrospect, getting external validators and application developers onto a public testnet earlier would have caught assumptions we did not know we were making. Other people's use of your system finds failure modes your own team will not discover.
Document architectural decisions as you make them. We made hundreds of decisions about why the system was designed the way it was — trade-offs, considered and rejected alternatives, constraints that forced specific choices. Most of this knowledge existed only in people's heads. When engineers left or context was lost, recovering that reasoning was difficult. An ADR (Architecture Decision Record) process would have been worth the overhead.
Be more conservative with the feature set. The cross-chain functionality, dual VM support, and DPoS consensus were all necessary for the vision. But we also added features during development that seemed important at the time and turned out to be distractions. Every feature added to the protocol surface area increases complexity and attack surface. Cut more ruthlessly.
What this taught us about blockchain infrastructure at the protocol layer
Building at the protocol layer — not just writing smart contracts on existing chains, but building the chain itself — changes your mental model of blockchain permanently.
You stop thinking of blockchains as magic infrastructure that handles things for you. You understand exactly where the security assumptions come from and where they can fail. You know that "the blockchain" is a specific combination of cryptographic assumptions, economic incentives, network topology, and software implementation — and any of those layers can have exploitable weaknesses.
This is why Tantrija approaches every project differently from a typical smart contract shop. When we review a DeFi protocol, we are not just checking for Solidity vulnerabilities. We are asking about the assumptions the system makes about the underlying chain's behavior — and whether those assumptions hold under adversarial conditions.
When we design a cross-chain system, we are not thinking about which bridge contract to use. We are thinking about the trust model at each layer — validator sets, light clients, economic security — and whether the architecture can survive specific attack scenarios.
Protocol-level experience is rare in this industry. Most blockchain developers have never had to think about consensus safety under network partition, or what happens to finality guarantees when 34% of validators go offline. Having built those systems makes us better engineers on every subsequent project — even the ones that never touch the protocol layer.
If you are building something serious, work with engineers who understand what happens below the smart contract layer.
Nitish Beejawat
Founder, Tantrija Enterprises
Nitish Beejawat is the founder of Tantrija Enterprises and led core L1 protocol development on Layer One X — a custom Layer 1 blockchain built from scratch. He has 6+ years of production blockchain engineering experience across DeFi, enterprise blockchain, and custom chain development.
linkedin.com/in/nitish-beejawatBuilding infrastructure that requires protocol-level thinking?
We have been at the protocol layer. That experience changes how we approach every project, regardless of the stack.
No sales pitch. Just an honest technical conversation.