Districts project - 3DCoin | 3D Explorer | Virtual reality
Virtual reality and Blockchain should be seen as a new delivery presentation channel, a
channel through which users can deploy applications in a secure space. Not only does this
capability to address varying presentation styles’ interaction, it also offers significant
business advantages in cost, time and the ability to reach broadly dispersed audiences
efficiently and effectively. Districts is a space where the creative possibilities of
decentralized applications of shops, services, and management are unlimited; every user is
free to opt for a project of interest to him. It is a self-regulating platform based on cryptocurrency
and ensures more attractive, impressive and efficient presentations for user’s
projects. It is an opportunity for small business owners who cannot afford the expenditures
of advertisement and have difficulties in attracting customers from the neighboring or far
communities. The platform assists their activities by enabling them to better present their
shops, services, and business. Our mission is to help new users to be part of the cryptocurrency
community by promoting the existing blockchain based project using 3D virtual
What is Districts?
Bringing everyone in a single continuous city ,with a total freedom of action, and displayed
in high quality graphics yet very well optimized, Districts will be the place where your
dreams come true, with all kinds of decentralized application running alongside, people
will be immersed in a living world where cars, houses, shops, playfields, or any imaginable
activity are of their own making, the user remains totally merged with reality, as services
can be provided both in and out of Districts, thus giving a maximal exposure for the lowest
cost to businesses.
It is designed as an assembly of platforms in the shape of concentric rings atop of water,
the center holds all the starter facilities providing tutorials and examples of applications,
next to them, the first ring serves as a showcase featuring inaugural pre-made buildings
which are going to kick start the Districts’ life, it is divided into specialized districts,
gaming, business, and private. The subsequent growth involves a gradual creation of
platforms triggered by the saturation of old ones.
Movement options are multiple both in standard and VR mode, targeted fluid relocation
for short or long displacements, movements through devices like hover boards, or vehicles of
all sorts, which can be customized. Unlimited movement on foot for VR is not possible with
the actual technology yet, its’ implementation will be done in the future.
The realism brought by the VR must also be followed by realism in communication;
this is why vocal proximity chat is implemented, but traditional modes are also available,
such as Voice on IP for smartphone simulation, or encrypted text messaging and mailing.
For business, the immersion brought by virtual reality enhances every possible
interaction: real estate developers, car, or even clothing dealerships; will be able to present
their products and their possible customizations in a realistic lively manner. These are
shown in the city space or even in instances accessible from street or mall stores.
Customer acquisition will be simpler and cheaper due to the constantly available and
renewed circulation incentives, which are induced to them by the presence of interesting
activities in every corner of Districts. People are going to be constantly transiting; this is
due to the great freedom allowing the community to express all its creativity.
The ability to remotely visit a house or a motel room and inspect every corner of it, try
furniture in a virtual model of your house and see what fits it best, view and experiment a
car in varying environments, will improve customers decision making leading to a better
Outside of Districts, creators efforts are heavily taxed in varied ways, in Districts, none
of that. All revenues will go fully to their rightful owners.
Gaming in VR shatters every former experience, as it gives players the chance to live
the action instead of simply and distantly triggering functions. But things are slowly taking
off because game development requires complex skills, especially coding. In Districts, we
believe that the possibility for everyone to bring their ideas to life, by the use of the
Districts’ visual Studio, will induce a boom in the field.
Education: Online learning shows a high dropping out rates, less than five percent of
enrolled students finish the curriculums, and the obvious reason is that usual methods fail
to maintain students’ motivation on the subject, they get bored and become disengaged,
virtual classes solve this problem, imagine a physics class where students are transported
in front of a besieged city to learn about ballistics through the use of a catapult, or a coding
class giving each student the opportunity to code his own personalized robot and see him
getting more and more lively as the coding skills of the learner grow. Learning will just stop
being boring when it is done in epic sceneries and with all kind of interactive setups.
Mental health can greatly profit from VR, because feeling the presence of a caring
person has a better effect that any other online interaction like text dialogue or even video
conferencing. Virtual anonymous gatherings for psychological support, one on one therapy,
personalized phobia treatment with customized environment helping patient to gradually
confront their fears, live ASMR sessions where the asmrtist can move around their
audience and give them the most intense and realistic attention, these are a few of the
many possibilities that can emerge.
Private housing offers for users the possibility to create a personal customizable space
that could have many purposes such as friend gathering spot, watch to movie together, play
arcade or card games, it could even be a display gallery. The host must be online in order
for other to access the private space.
Decentralization being a key element in our project, there is no central authority, meaning,
that all content control is in the hands of the community, through a voting system, all data,
except user specific data, will be stored in the 3DCoin blockchain which doesn’t only
serve for the crypto-currency.
what is 3DCoin ?
Project Districts 3D Modeling Phase 1
A glimpse inside the Districts world
The 3DCoin blockchain
3DCoin is the new cryptocurrency that we have developed; the protocol was created using
Bitcoin and Dash source code as a basis to inherit their safety and power, with
implementations making it fully compatible with Districts, besides new features.
The blockchain is a system where storage and authentication of data and operations are
performed in a conjoint and transparent way by every computer running the protocol,
giving all users a total awareness and collective control over the process, rendering forgery
impossible. Updates cannot be performed without consensus, unlike usual systems, it does
not rely on a central entity, as mathematical functions do all the work, these functions or
any aspect of the protocol are publicly available because of its open-source nature. For
currency, the blockchain can be considered as a public ledger, for applications, it can be
considered as a decentralized server.
Identity is based on public-key cryptography, it uses a pair of keys, a Private one that
must be kept secret by the user, linked through an elliptic curve function to a Public-key,
which can be used as an address to receive money. When the owner wants to spend his
3DCions, he broadcasts a request message with a signature attached to it; the network then
can verify that the message comes from the owner to confirm the transaction.
The 3DCoin system enables the use of many public-key cryptography methods,
improving safety, and allowing the use of preexisting keys from other crypto-currencies, or
any other system, for example, if you use a PGP key for your emails, you will also be able to
use it to receive 3DCoins.
A Hash is a series of characters generated by a one way function from another series, an
input gives a unique output that change drastically at the slightest change in the input,
this is why hashing is the backbone of authentication.
A Merkle tree is a fast and secure method used to verify the content of large data
structures; it is made of a branch sequence of hashes that ends with a single hash, the
Merkle root, in the blockchain, the merkle tree is based on transactions.
Blocks: Data of all kind, be it transactions history or buildings references, are recorded
in the blockchain, which is made of 8 megabits blocks that are linked to form a simple
chain, where every block refers to the hash of the previous one, in each, transactions are
saved in a particular order forming the base of a Merkle tree, of the 8 megabits, 1 will be
dedicated to feeless small transactions.
To each block, a number of Data Capsules can be attached; these hold the scripts of
Decentralized applications, their size has a maximum of one megabits.
Transactions and balance:
Transactions are the inalterable units from which the balance is calculated, they hold the
amount of transferred 3DCoins, the public-key of the sender and the receiver. A transaction
comprises a micro fee paid by the sender that goes to miners; it can grow with the size of
the transaction, as transactions can have scripts attached to them, these are used to
program transactions, or to define ownership of land parcels and decentralized
applications in districts.
Unlike a normal ledger, balance in the blockchain is not noted as a particular amount, it
is defined by the inalterable transactions history saved periodically on the blocks. To his
key, the user owns incoming transactions; the wallet application will browse all the
blockchain looking for the unspent transactions and calculate the balance from them.
When the user wants to send money, the wallet application will broadcast a message
containing the incoming transactions he wants to use, an output transaction directed
toward the public-key he wants to transfer money to. Verifications of both ownership and
sufficiency of inputs are performed by peers, until the final addition in a block, at the base
of the merkle tree.
Transactions that define ownership of land and decentralized applications have no
3DCoin amount in them; they refer the data Capsule that holds the application script, the
owner, and the parcel coordinates.
3DCoin uses a scripting system for transactions; the Script is stack-based, and processed
from left to right. It is Forth-like, purposefully not Turing-complete, with no loops.
A script is essentially a list of instructions recorded with each transaction that describe
how the next person wanting to spend the 3DCoin being transferred can gain access to
them. The script for a typical 3DCoin transfer to destination 3DCoin address D (an address
is the hash of a public key) simply encumbers future spending of the 3DCoin with two
things: the spender must provide:
A public key that, when hashed, yields destination address D embedded in the
A signature to show evidence of the private key corresponding to the public key
Scripting provides the flexibility to change the parameters of what's needed to spend
transferred 3DCoins. For example, the scripting system could be used to require two
private keys, or a combination of several, or even no keys at all. 
A stack is a data structure based on the principle of <LIFO>: last in first out, meaning
that the last added element is the first to be removed. Stored data behaves like a pile, with
two main operations, Push: adds an element on the top of the pile, Pop: removes the last
element added to the pile.
3DCoins script specificities
To improve the programing possibilities, many standard operations where enhanced into
taking arguments, the direct effects are a better script readability, and a massive decrease
in the complexity of code planning, instead of having a limited set operations that interact
with specific stack items only, the programmer will be able to employ the stack in all its
depth with extremely short commands. The OP prefix was removed because the limitation
it was set to get around became irrelevant (function names cannot begin with a number),
there are no more multiple variants of a function, variants are unified into one function
that accept arguments previously pushed in the stack.
Bitcoin has three duplication operations (OP_1DUP, OP_2DUP, OP_3DUP), the first
duplicates to top stack item, the second duplicates the top two stack items, and the third
The duplication is now done with a single function, DUP (without op), to duplicate an item,
a number <x> must be pushed before the execution of DUP, <x> represent the place in the
stack. If the argument is made of many numbers separated by commas <x,y,z>, it means
that multiple items are duplicated, the DUP operation will read the item, pop it, and will
do its work according to the argument, if the argument is made of two numbers separated
by a dash, it will be considered as a range, <x-y>, all the items from x to y are duplicated.
The same improvement is brought to many other functions.
Smart script optimization is automatically performed by reducing unnecessary steps that
might be made, resulting in shorter but equally functional scripts, saving allot of space in
blocks and data capsules.
Script verification module adds a safety layer by checking all possible operation sequences,
and argument, allowing only bug free and always spendable transactions, and decentralized
application to be accepted in the network, this is done by all peers.
The script is written with specific words representing functions, and is executed from left
to right , a basic script as an example:
→<numberA><numberB> <1,2> EQUAL, from left to right:
<numberA> pushes the numberA in the stack
<numberB> pushes the numberB in the stack
<1,2>Argument for the EQUAL function is pushed in the stack.
EQUAL pops the argument, checks the equality between the two top stack items
(<1,2>Top and Second stack items) and pops them, pushes 1 in the stack if
correct, and 0 if not.
Here is the script for a standard transaction; it is a combination of two scripts:
scriptSig (<sig> <pubKey>), found in the output transaction. scriptPubKey, found in the
input transaction (<1> DUP <160>HASH <pubKeyHash> <1,2><EQUALVERIFY
→ <sig> <pubKey> <1>DUP <160>HASH <pubKeyHash> <1,2>EQUALVERIFY <1,2> CHECKSIG
This script begins first by verifying that the public key displayed by the spender is the same
as the public key of the input, and then verifies the signature. (Reminder: Operations always
pop the arguments)
1- <sig> pushes the signature to the stack; <pubKey> pushes the public key to the stack.
2- <1> Argument for DUP operation.
3- DUP duplicates the top stack item (pubKey), and then pushes the copy in the stack.
4- <160> Argument for HASH operation.
5- HASH, the top stack item (pubKey) is popped, hashed, then the hash in pushed in the
6- <pubKeyHash> pushes the inputs’ public key hash to the stack.
7- <1,2> Argument for EQUALVERIFY operation.
8- EQUALVERIFY pops the argument, checks equality between the two top stack
items then pops them, pushes True in the stack if equals, then pops it, invalidated
the transactions if unequal.
9- <1,2> Argument for CHECKSIG operation
10- CHECKSIG, Checks the signature with the two top stack items (sig and pubKey),
then pops them, returns True when correct, meaning that the transaction is
confirmed, invalidates the transaction if not.
To summarize: All transactions contain both an output script, and an input script, every
time a user wants to spend an existing transaction, he must deliver a correct output
script that when combined with the input script of the input, true is returned, he must also
provide a new input script in the newly created output transaction to define the future
spending conditions. Scripts are generated automatically by the wallet application, but they
can also be manually written.
These are peers that must hold an entire copy of the blockchain, their job is to collect,
verify, and assemble transactions in a particular order to prepare the creation of blocks, but
only one block can be added to the chain at a time, this is why the Mining mechanism is
Mining is about delivering a proof of work; the goal is to lower the probability of the
creation of two blocks at the same time, and it is done by running a set of block unique data
through The NIST5 hashing algorithm, which is a combination of the 5 finalists in the
NIST hash function competition (BLAKE, Grøstl, JH, Keccak, Skein), when the resulting
series of numbers meets a certain criteria, the block is considered to be mined, and is
broadcasted to the network to be added to the blockchain after taking the said series of
numbers as its hash. (Mining can be done with GPU-CPU, any hardware)
Once a block is mined, a block reward that consists of newly generated 3DCoins is
distributes among Miners (50%), Super node operators (45%), and a Development
reserve (5%). This is the unique 3DCoin generation method.
In very rare occasions, more than one block are mined at the same time, presenting a
situation where peers have a different last block added to their blockchain, in this case,
they simply synchronize to the majority best chain.
When the computing power increases in the network (hash rate), either by the growth of
the miners’ number or their hardware performance, a compensation must be made by
raising the mining difficulty, thus keeping a healthy block production rate, and
maintaining the consensus over a single chain.
The owner of a node can upgrade it to a Super node by staking 1.000 3DCoins that he can
recover at any time; this allows him to contribute to diverse functions, and be rewarded
for that, with such a stake, Super node operators are incentivized to make the best
decisions possible, as they will directly benefit from the effects, the functions are:
Casting his vote for content control.
Participating in the Instant transaction service.
Hosting Coin blending sessions.
5% of the block reward will be allocated to a reserve fund; it will pay for projects that
benefit 3DCoin at the end of each month. Funding from the reserve will be used to pay
developers and other contributors, as well as integrations with major exchanges and API
The super node operator receives one vote, which he can cast in favor of the proposal he
wants to support, proposals and votes will be held in a proper site.
Some uses of the public-key disclose the identity of the owner, like a physical order where
the key and the delivery address can be linked, or a key placement in a forum signature for
donations. To regain the anonymity of funds, the Coin blending service is offered.
The Blending request starts from the wallet application, where the user selects the
transaction he wants to anonymize, the wallet will break it down into standard
denominations (10, 1, 0.1, and 0.01) to facilitate the operation which will be managed by a
super node; then checks the list of present super nodes and randomly selects one of them
using the hash of a block, for a maximal randomness.
The transaction is placed in a Blending queue, when three matches for a standard
denomination are found; the super node casts a readiness alert to the three wallet
applications, the Blending session starts at their confirmation.
Each of the three wallets sends both the input to be mixed, and a newly generated
public key that will receive the anonymized funds, from them, the super node creates a
triple transaction containing the three inputs, and the three receiving public keys. The
triple transaction is sent to the three wallets, they verify the exactitude of the inputs and
the public-keys, sign the transaction, and send it back to the super node. At this point, the
super node has a triple transaction with three signatures, after a last verification, this
transaction is broadcasted like any other one to be added in a mined block, and finally into
For more Details Read White Paper:
Dapps are ones that use the blockchain technology. The visual side is held in the unreal
engine library that will be part of the Districts’ client, but the script, which is generated by
the Districts Visual Studio, lies in the blockchain, in a Data capsule, cutting hosting
costs and getting rid of downtime, for example: When a 3D model is used, its position and
other properties, which are very light on memory, will go in the blockchain, but the model
file itself or the texture are loaded from the user’s PC where the client is installed. Dapps
can range from games to educational platforms, or stores and showrooms, selling real
(clothes, houses, food) or virtual products (programs, in game items, hosting services);
there is literally no limit on what dapps can be.
The ownership of the Dapp is defined in a scripted transaction, one that doesn’t hold any
3DCoin amount, but refers the Data Capsules where the Dapps script is saved.
A Dapp can be freely or conditionally used, but only the owner can modify its script.
Scripts will be encoded to have a very small size, while being client specific, meaning that
they can run only with Districts’ client, ensuring a maximal safety, as the possible
functions that a script can use are well defined and generated only by the DVS.
Any modification or update will be done through an update scripted transaction,
broadcasted then verified by the network (identity, and safe script verification). If a script
holds non-recognized functions, the update is rejected.
To attain our goal of making App creation accessible to everyone, Districts Visual Script
Districts visual Studio
The DVS enables anyone to create any program without coding; it presents a rich and
expandable library of functions, textures, sounds, and 3D models, with an intuitive
interface simplifying the creation of Applications. Users have a virtual reality edition mode
that gives them the ability to build their Dapp in its final form, also, ready to use
customizable templates are available for many Dapp types (examples of dapps types).
Tutorials that teach every aspect of DVS development can be found in the starting area
of Districts in the form of interactive bots, as well as videos, or a dedicated forum section
where community mutual aid will take place.
Pick drag drop and connect is the item placement method (3d models, buttons,
lighting…), texture assignment, animation allocation, or even visual scripting, as most of
the creation will be done by the mouse or VR controllers. Terrain modeling has a specific
tool allowing the creation of varied landscapes (terrain noise, relief, ramps, erosion). Item
properties menu can be opened with a click. Interactions and triggers are set in the
interactions map, where processes are created as trees of conditions and results, the user
draws his map, and the DVS turns it into an application.
Visual scripting map example: Color change on collision
Body armor damage reduction
HP reduction function:
When the Bullet collides with the Body; a new value is given to the Hit points’ value, by
subtracting the Damage value from the actual HP value-Bullet
In Dapps, ownership of sold products or access to services is defined by a scripted
transaction, for example, when the right to use a service or a product is purchased, the
Ownership function creates a payment transaction that contains a specific code, the
Dapps check for the presence of such a transaction in the blockchain each time a person
tries to use it. Creating a sale in a Dapp menu is as simple as any other function:
When the “Purchase” button is clicked, a confirmation is asked from the user, when he clicks on “Yes”, the Ownership function automatically creates and broadcasts an ownership transaction. Before the release, the user can test his Dapp in an offline mode, once tested and checked; an encoded script is generated by the DVS and hosted in a Data Capsules, besides, if new models or textures are included, they will be submitted as additions to the districts’ library. Criminal or inappropriate content can be reported by any user to be visually restricted after a vote. Only the people running super nodes can vote, they’ll make the most rational choice because of their direct investment in the system and its success. A portion of the block mining reward will be distributed among them as an incentivisation into participating in regulation.
Once the decentralized application is completed, a land parcel must be acquired to receive
the building hosting it, defined by a Land token.
These define the ownership over a parcel that will be created to receive users’ made or
procedurally generated buildings or any structure, parcels are linked to decentralized apps
which they host, both can be freely traded. Ownership of land will be set and saved in the
same scripted transaction as the Dapp.
The user will have to select his parcel either in the pre-partitioned and pre-categorized
Districts, or in a sandbox District where he can freely choose the size and spot.
The first 25 land tokens, that represent in the first ring of platforms, will belong to top
investors, who can use them or trade them as they please; every other parcel is to be
purchased with 3DCoins, either from the system, in which case the 3DCoins will be added
to the block reward, or from other users.
The 3DCoin blockchain Test net is a success, and on this track, we are excited to launch the ICO which is going to give a great boost to the projects progress, by recruiting more developers, moving to a bigger office, acquiring all the needed hardware, launching a big advertising campaign, paying legal fees and program licenses.
With the starting date at the 1st of November, the ICO duration will be of one month, but it can end sooner if it the hard-cap is reached before December.
The coinbase will depend on the ICO and it has a maximum of 200 million 3DC, the ICO minimum is 30 million 3DC, and it is the first step that will fund the 3DCoin blockchain development, the soft-cap is 100 million 3DC, at this point the project will be fully funded, and the hard-cap is 150 million. if the minimum is not reached all contributions will be fully refunded.
Coin value and Distribution:
The coin value follows this pattern:
ICO begins Min cap is reached Soft cap is reached 0.25$ + 40% Bonus 0.25$ + 20% Bonus 0.25$ + 0% Bonus
ICO: 75% (150 million 3DC max) exchangeable at the end of the ICO.
Bounty: 1% (2 million 3DC max) Locked until the 1st January 2018.
Advisers: 4% (8 million 3DC max) Locked for one year.
Early investors: 10% (20 million 3DC max) Locked for one year.
Development: 10% (20 million 3DC max) Locked for five years.
If the reserved 3DCoins for the ICO are not entirely purchased,the remaining coins will be burned, and the other portions will be readjusted accordingly to keep perfect proportions, for example:
Contributions can be made here: https://districts.io/ico
with the following currencies:
Bitcoin, Ethereum, Dash, Litecoin.
- 06-2015 - Research and conceptualisation
The first step was about studying the blockchain technology and the code-source of bitcoin, with the analysis of the multiple available game engines of which unreal 4 was selected, while defining the projects frame and the long term vision.
- 11-2016 - Whitepaper
The written presentation of the projects features and our long term vision that will make the success of the project.
- 12-2016 - First bounty campaign
districts was brought to publics knowledge through varied channels, social networks (facebook, twitter, google+, instagram), the bitcointalk forum, youtube, and linkedin.
- 02-2017 - Team building
A first group of five passionate members was assembled.
- 04-2017 - Blockchain development
Starting from the source code of Bitcoin, many functions had to be modified, and others to be added, the blockchain system was customized to enable many Districts functions.
- 10-2017 - Second bounty campaign
Introducing the latest advancement of the project and announcing the ICO.
- 12-2017 - Main net
The final version of the blockchain and the wallet software gets released.
- Q1 2018 - Exchange - payment API
3DCOIN is now a complete crypto-currency that can be spent or exchanged in the market.
- Q2 2018 - Districts Alpha release
An early version giving a preview of what Districts will become.
- Q4 2018 - Districts Beta release
Districts is in its final shape, the major part of functionalities is implemented, this phase is for bug fixing, varied improvements and optimizations.
- 10-2016 - B.T LLC is funded
BCT.LLC is the partnership legal entity that drives the project, founded in Dubai, UAE.
- 11-2016 - Bictointalk announcement
The project is presented to the cryptocurrency community, and got the support and positive feedback that was needed to be further pushed into realization.
- 01-2017 - Angel investors
The project caught the attention of many investors who effectively supported it, ensuring the initial funding.
- 03-2017 - Districts Design
Designing the evolutionary plan of the Districts by professional architects, conceptualization of the Districts visual studio.
- 09-2017 - Public test net
The first field test of the 3dcoin blockchain is the occasion to check that all functionalities are working exactly as expected, to find and fix bugs, in real conditions.
- 11-2017 - ICO
After all the tests, and once the blockchain system has been proved to fulfill its promises, investors will be invited to join and fuel the project.
- Q1 2018 - Expansion
The greatest part of the project begins as all the resources necessary for the long term and permanent development are acquired.
- Q1 2018 - 3DCoin Mobile wallet release
Available for IOS, Android, and Windows Phone.
- Q3 2018 - Districts Visual Studio
The intuitive decentralized application development tool that enable people with no coding knowledge to build dapps.
- Q3 2019 - Districts 1.0.0 release
The project is accomplished, everyone can dive in the city, learn and experience all what it has to offer, raise buildings make apps, present products, or play games.