Development of a Virtual Land Parcel System (virtual land)

Parcels in virtual spaces get duplicated, lose owners, and fail to align with each other — user trust suffers. We develop a turnkey virtual land parcel system: from the rights registry to issuance and migration. Ownership disputes are reduced severalfold, and record-keeping becomes transparent for all parties.

Blockchain Development Services

Frequently Asked Questions

Latest works

  • Development of a web application for FEEDME
    Development of a web application for FEEDME
    1375
  • Development of an online store for the company FURNORO
    Development of an online store for the company FURNORO
    1349
  • B2B Advance company logo design
    B2B Advance company logo design
    794
  • Development of a web application for Enviok
    Development of a web application for Enviok
    1087
  • AIDER company logo development
    AIDER company logo development
    1032
  • CRM development for Chasseurs
    CRM development for Chasseurs
    1129

Virtual land: why parcels do not align and lose owners

Virtual land breaks not at the idea stage, but at the first mass influx of users.

A typical failure: two owners simultaneously claim the same parcel, because the virtual parcel system checks boundary intersections only when an object is created, but not when rights are transferred.

The second scenario is desynchronization: the buyer sees the parcel as their own, but in the land rights record it is still listed under the previous holder, and the dispute has to be resolved manually.

The third is transaction dropout under peak load: the confirmation queue grows, some operations are rejected by timeout, and the user does not understand whether they bought the parcel or not.

The cost of these failures is higher than it seems. A parcel boundary conflict triggers a wave of support requests, each disputed transaction requires manual review, and the platform's reputation drops faster than it can be fixed.

The load on the registry grows nonlinearly: the more parcels and transactions there are, the more expensive it is to check each intersection if it is done "head-on" across the entire map.

The root of the problem is that parcel geometry and rights to them live in different subsystems and are synchronized with a delay. Until boundary checking, parcel reservation, and rights recording become a single atomic operation, the system will lose owners at every peak.

We break down how this is solved: how to arrange intersection checking without a full scan, how to bring rights accounting and geometry into a single transaction, and how to survive peak load without operations dropping out.

Architecture of a virtual land registry: modes and trade-offs

A virtual land registry is not a "table with coordinates" but a system of rights accounting: who owns a plot, on what basis, what happens upon transfer, and how to prove the state at any point in time.

The architecture of plot accounting determines three things: the speed of operations under peak load, the cost of verifying rights for an external service, and the class of failures that the system physically cannot allow.

Where to store plot state

Fully on-chain storage provides maximum transparency, but every record of coordinates, owner, and transaction history goes into a block — during mass sales and minting, this hits the network's throughput limit.

A hybrid scheme moves heavy metadata (geometry, textures, descriptions) into distributed storage while keeping the hash and owner in the registry: proof of rights remains on-chain, and the volume of records drops by an order of magnitude.

A purely off-chain database with periodic anchoring to the chain is cheaper, but verifying a right requires trust in our server — for a marketplace, this is a bottleneck.

How to verify ownership

The right to a plot is a record in the contract plus the owner's signature. We separate roles: the registry contract stores the owner and transfer rules, a separate controller contract validates operations, and an indexer assembles state for fast API responses.

This separation eliminates the main class of failures — double-selling of the same plot: a transaction either transfers ownership atomically or reverts entirely.

Scaling transactions

Mass minting and waves of sell-offs mean thousands of operations in a short window. Batching combines records into a single transaction, and lazy metadata disclosure moves heavy data outside the blockchain. As a result, a sales peak does not block ordinary plot transfers between players.

Option When it fits Limitations
Fully on-chain Small world, auditing every operation Expensive mint, low throughput
Hybrid (hash on-chain, data off-chain) Marketplace, mass sales Requires a reliable storage layer
Off-chain database + anchor to chain Internal economy without external buyers Rights verification depends on the operator

Data integrity is ensured by the indexer, which rebuilds state from chain events and reconciles it with the registry — a discrepancy is visible immediately, not after a player complaint.

We build this loop on EVM-compatible networks: contracts are portable, and external wallets connect without modifications.

Stages of implementing a virtual land parcel system

Implementing a parcel system begins not with code, but with an inventory: which assets already exist, where rights are stored, how ownership history is tracked.

A registry audit shows what can be migrated as-is and what will have to be normalized — duplicate records, coordinate discrepancies, "dangling" rights without an owner.

The quality of this stage determines whether the data schema will have to be rewritten midway through the project.

From there, the work proceeds in iterations: each subsequent one builds on a verified previous layer rather than on assumptions.

  1. Audit of the registry and current state. We consolidate sources: existing databases, exports, external services. We record the volume, quality, and discrepancies of the data, and assess what is cleaned automatically and what requires a manual decision by the owner.
  2. Data schema design. We define the entities: parcel, owner, right, transaction, history. We establish the coordinate grid and adjacency rules so that parcels do not overlap and do not leave gaps.
  3. Setting up rights and roles. We delineate access: who issues parcels, who confirms a transfer, who only reads. Rights are checked at the level of operations, not the interface — otherwise a workaround can be found with a single query.
  4. Implementing parcel operations. Issuance, transfer, subdivision, consolidation, lease. Each operation goes through a transaction with precondition checks: you cannot transfer a parcel that does not exist, or sell the same one twice.
  5. Testing on real scenarios. We run through chains: mass issuance, a disputed transfer, rollback of an erroneous operation. We look at what happens to the history and how the system behaves under load.
  6. System handover. We deploy in the customer's environment, hand over documentation on the data schema and operations, and train the team. We separately record the recovery procedure and the order of actions during incidents.

The final check is not "the system launched," but "the system withstood the scenarios that broke previous solutions." If contradictions in rights surface during the audit stage, we resolve them before development begins: carrying a conflict over into a new system is cheaper than dealing with it in production.

How does a public registry differ from a closed loop?

A public registry is a deployment on an open network, where any participant can read the state of the registry, verify the transaction history, and independently confirm that the rules for issuing and transferring parcels have not been changed retroactively.

The access model here is built on roles in a smart contract: the administrator issues new parcels, the owner manages their own, and an outside observer only reads.

Data privacy in this case is limited by definition — everything that is recorded is visible to everyone, so only what should already be public is put into the open loop: the coordinates of the parcel, the fact of ownership, and the history of transfers.

A closed loop is a network with a limited set of nodes, where access is granted by invitation or corporate account. Here the access model is tailored to business logic: some operations are visible only to the platform operator, some to partners, and some to the users themselves.

Data privacy is higher: sensitive attributes (deal terms, personal linkages) remain outside the common view.

The price for this is that user trust rests not on independent verification but on the operator's reputation: a participant cannot independently confirm that the rules have not been rewritten — they have to believe.

The choice between the models is a choice of what trust will rest on.

If the value of the product lies in the fact that ownership of a parcel cannot be forged or taken away unilaterally, a public registry provides this without additional guarantees — verification is available to everyone.

If closed commercial terms and control over the composition of participants are critical, a closed loop is more convenient, but trust will have to be built organizationally: through audits, disclosure of rules, and transparent procedures for users.

In practice, the models do not exclude each other. Part of the state — rights to parcels and the history of transfers — is put into a public registry, while sensitive data and the platform's internal logic are kept in a closed loop, linking them with cryptographic proofs.

This preserves independent verification of ownership while also covering the data privacy that a public network cannot provide.

Case study: how a class of failures in land issuance was eliminated

The client came with a working virtual land marketplace: plots were selling, but roughly every eighth transaction got stuck.

The buyer sent payment, the transaction hung in the mempool, and meanwhile the plot managed to go to someone else — a classic conflict over the same token in the absence of atomicity between payment and transfer of ownership.

On top of that, disputes over boundaries piled up: two neighboring plots overlapped by several meters, and there was no way to prove who was right.

What was changed

Issuance was moved to a "reserve → payment → finalization" scheme: when a deal starts, the plot is marked as occupied for a limited window, and only confirmed payment lifts the reserve and transfers ownership.

If the window expires, the reserve is lifted automatically, the buyer does not lose funds, and the plot returns to sale. This eliminated the race for the same token.

Boundaries were fixed in the plot structure itself: coordinates and area are written into an immutable record at issuance, rather than stored separately from ownership.

Overlap is now cut off at the issuance stage — the system does not allow creating a plot that overlaps an existing one.

Metrics before and after

Indicator Before After
Share of successful issuances ~87% 99.6%
Transaction confirmation time minutes, with hangs stable seconds
Boundary disputes regular, manual review isolated, resolved automatically

Rollback was addressed separately: if finalization did not go through, the state returns to the reserve, not to a "half-completed deal." This is the class of failures that previously required manual review and undermined trust in the platform.

The reservation and boundary-checking logic was built on smart contracts with external payment confirmation — Chainlink for delivering verified payment data to the contract. Without a reliable oracle, the reserve would be lifted on an unreliable signal, and the race would return.

The outcome for the client: operations stopped getting stuck, disputed land situations left manual mode, and confirmation time became predictable — the platform withstood growth in the number of transactions without rebuilding its core.

Compatibility, migration, and rollback: technical concerns

A virtual land registry almost always lives on top of an existing product: accounts, payments, an object catalog, and user permissions are already in place, and the question is not "from scratch or not," but "how to integrate the parcel registry so that we don't have to rewrite half the system and still have a way back." Below is what is most often checked before launch.

What happens if we need to roll back a release after launch?

We deploy contracts through a proxy layer: the logic is updated separately from the storage, so a rollback is switching the pointer to the previous version rather than redeploying from scratch.

The registry state is not lost in the process: parcel data and the history of rights transfers reside in immutable storage and do not depend on the code.

Before every update, we take a state snapshot and run the migration on a copy — if the checks fail, the release does not go to production.

What if we have our own user database and payments? The parcel registry connects to your accounts through an access layer: rights to a parcel are tied to your user identifier, not to a separate wallet. Payments stay within your perimeter — the system only receives confirmation of the operation.

How are already-sold parcels transferred? The migration proceeds in batches with checksum verification: before the transfer we record the current state, and afterward we reconcile the count and owners. A discrepancy in even a single parcel halts the batch.

Who has access to management? Roles are separated: registry administrator, issuance operator, and auditor with read-only access. Every action is written to a log with the role and timestamp.

Upon handover, the client receives:

  • the parcel registry schema and the ownership rights model;
  • deployment and environment configurations (test, production);
  • the role policy and access matrix;
  • the data migration regulation and the release rollback procedure;
  • a description of the integrations with your accounts and payments;
  • instructions for maintaining and monitoring the registry;
  • a log of the checks and test scenarios performed.

Describe your current system and data volumes — we will come back with an estimate, a migration plan, and a rollback scheme tailored to your perimeter.