diff --git a/Assets/README.md b/Assets/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..fa95ade29544b50b2424d6e7be71486b9c6136f4
--- /dev/null
+++ b/Assets/README.md
@@ -0,0 +1,5 @@
+# Blockchain for the Internet of Vehicle ![](https://img.shields.io/badge/-Live-brightgreen)
+![](https://img.shields.io/badge/Batch-17CYS-green) ![](https://img.shields.io/badge/Domain-Blockchain-blue) ![](https://img.shields.io/badge/M.Tech--Thesis-Completed-darkgreen) ![](https://img.shields.io/badge/Focus-IoV-yellow) <br/>
+![](https://img.shields.io/badge/Blockchain-BigChainDB-blue) 
+
+## 
diff --git a/Assets/images/113_New_Vehicle.png b/Assets/images/113_New_Vehicle.png
new file mode 100644
index 0000000000000000000000000000000000000000..4d0d52c6cb231d701a1a91f2606c71b775512a4f
Binary files /dev/null and b/Assets/images/113_New_Vehicle.png differ
diff --git a/Assets/images/113_User.png b/Assets/images/113_User.png
new file mode 100644
index 0000000000000000000000000000000000000000..a70de859c97cb1d1bf0b3ce6f65fe2d0304d36bd
Binary files /dev/null and b/Assets/images/113_User.png differ
diff --git a/Assets/images/113_User_Reg.png b/Assets/images/113_User_Reg.png
new file mode 100644
index 0000000000000000000000000000000000000000..e52caca970d44bc0946cdad1e045dde06081ccb8
Binary files /dev/null and b/Assets/images/113_User_Reg.png differ
diff --git a/Assets/images/113_Vehicle_Reg.png b/Assets/images/113_Vehicle_Reg.png
new file mode 100644
index 0000000000000000000000000000000000000000..ddb1e9fbd6455940d755da498041089662f9da6d
Binary files /dev/null and b/Assets/images/113_Vehicle_Reg.png differ
diff --git a/Assets/images/Admin.png b/Assets/images/Admin.png
new file mode 100644
index 0000000000000000000000000000000000000000..800f99e93b823a380f3bebbf785ed303be4ca6d6
Binary files /dev/null and b/Assets/images/Admin.png differ
diff --git a/Assets/images/Admin_1.png b/Assets/images/Admin_1.png
new file mode 100644
index 0000000000000000000000000000000000000000..d4ec58cb4617ab993bb6a45e1f1f94f9b9a77dbf
Binary files /dev/null and b/Assets/images/Admin_1.png differ
diff --git a/Assets/images/Admin_Group_ID.png b/Assets/images/Admin_Group_ID.png
new file mode 100644
index 0000000000000000000000000000000000000000..6d29e02f28b5f579d2fcd72d94a3d2f0941ececb
Binary files /dev/null and b/Assets/images/Admin_Group_ID.png differ
diff --git a/Assets/images/Admin_Group_ID_1.png b/Assets/images/Admin_Group_ID_1.png
new file mode 100644
index 0000000000000000000000000000000000000000..7cdf5adc8965a63bb711e84d028bb95411e502a2
Binary files /dev/null and b/Assets/images/Admin_Group_ID_1.png differ
diff --git a/Assets/images/App.png b/Assets/images/App.png
new file mode 100644
index 0000000000000000000000000000000000000000..480afdbae54b9803b227472ce995bf2bd8407d46
Binary files /dev/null and b/Assets/images/App.png differ
diff --git a/Assets/images/App_1.png b/Assets/images/App_1.png
new file mode 100644
index 0000000000000000000000000000000000000000..07b03c76f530f83bc128fd116d11fe3944165c98
Binary files /dev/null and b/Assets/images/App_1.png differ
diff --git a/Assets/images/Architecture.png b/Assets/images/Architecture.png
new file mode 100644
index 0000000000000000000000000000000000000000..b1a945274550a999c11e13579d8a8cb3ab2ae74b
Binary files /dev/null and b/Assets/images/Architecture.png differ
diff --git a/Assets/images/Bootstrap.png b/Assets/images/Bootstrap.png
new file mode 100644
index 0000000000000000000000000000000000000000..e54586e01b5b0513e57d6c2ac7f66da3860087fd
Binary files /dev/null and b/Assets/images/Bootstrap.png differ
diff --git a/Assets/images/IoT.png b/Assets/images/IoT.png
new file mode 100644
index 0000000000000000000000000000000000000000..cda69490b375c01184186821c3b1c2bd1d000516
Binary files /dev/null and b/Assets/images/IoT.png differ
diff --git a/Assets/images/IoT_1.png b/Assets/images/IoT_1.png
new file mode 100644
index 0000000000000000000000000000000000000000..878b13c21a6728b0645a42f670a6edc4db7cfcb5
Binary files /dev/null and b/Assets/images/IoT_1.png differ
diff --git a/Assets/images/Naanayam.png b/Assets/images/Naanayam.png
new file mode 100644
index 0000000000000000000000000000000000000000..57b44ed13ac07025461381756daa23563eddf36d
Binary files /dev/null and b/Assets/images/Naanayam.png differ
diff --git a/Assets/images/Naanayam_1.png b/Assets/images/Naanayam_1.png
new file mode 100644
index 0000000000000000000000000000000000000000..2c57db2610b0d88fdbc62602dea0185a24508015
Binary files /dev/null and b/Assets/images/Naanayam_1.png differ
diff --git a/Assets/images/RTO.png b/Assets/images/RTO.png
new file mode 100644
index 0000000000000000000000000000000000000000..23467c9287c5ba54d51e58d47dd301705fc5664f
Binary files /dev/null and b/Assets/images/RTO.png differ
diff --git a/Assets/images/RTO_1.png b/Assets/images/RTO_1.png
new file mode 100644
index 0000000000000000000000000000000000000000..4d49e1702f0df23f943ca594f35d7c8e9bda1340
Binary files /dev/null and b/Assets/images/RTO_1.png differ
diff --git a/Assets/images/RTO_MAA.png b/Assets/images/RTO_MAA.png
new file mode 100644
index 0000000000000000000000000000000000000000..050eacfd347465af828cfeea80d76a62e32dda8f
Binary files /dev/null and b/Assets/images/RTO_MAA.png differ
diff --git a/Assets/images/RTO_MAA_1.png b/Assets/images/RTO_MAA_1.png
new file mode 100644
index 0000000000000000000000000000000000000000..17b664b47ddb56dafa87adc428dcdf3008907fb7
Binary files /dev/null and b/Assets/images/RTO_MAA_1.png differ
diff --git a/Assets/images/RTO_MTP.png b/Assets/images/RTO_MTP.png
new file mode 100644
index 0000000000000000000000000000000000000000..1634fe5cbb7abc1b68be1de3eef928b2ff96f4b2
Binary files /dev/null and b/Assets/images/RTO_MTP.png differ
diff --git a/Assets/images/RTO_MTP_1.png b/Assets/images/RTO_MTP_1.png
new file mode 100644
index 0000000000000000000000000000000000000000..50ecdd3fc9076f83d44be17f063918c79267821c
Binary files /dev/null and b/Assets/images/RTO_MTP_1.png differ
diff --git a/Assets/images/Reg_Flow.png b/Assets/images/Reg_Flow.png
new file mode 100644
index 0000000000000000000000000000000000000000..1ab4367cb3aff88948421c691db7e065684508bd
Binary files /dev/null and b/Assets/images/Reg_Flow.png differ
diff --git a/Assets/images/Search.png b/Assets/images/Search.png
new file mode 100644
index 0000000000000000000000000000000000000000..4e3fa5db52dc821d52f869f746bccf33ea72f550
Binary files /dev/null and b/Assets/images/Search.png differ
diff --git a/Assets/images/Search_1.png b/Assets/images/Search_1.png
new file mode 100644
index 0000000000000000000000000000000000000000..fdb98d5eec46a4865e028ef448028996707591ec
Binary files /dev/null and b/Assets/images/Search_1.png differ
diff --git a/Assets/images/Search_2.png b/Assets/images/Search_2.png
new file mode 100644
index 0000000000000000000000000000000000000000..a93afe826783a650b187e3c13aea350e1acd582b
Binary files /dev/null and b/Assets/images/Search_2.png differ
diff --git a/Assets/images/Tokens_Created.png b/Assets/images/Tokens_Created.png
new file mode 100644
index 0000000000000000000000000000000000000000..296bdaea7d930b432e2a86e97c7550fd6ea4f97f
Binary files /dev/null and b/Assets/images/Tokens_Created.png differ
diff --git a/Assets/images/Tranaction.png b/Assets/images/Tranaction.png
new file mode 100644
index 0000000000000000000000000000000000000000..96a319986f8d2dc5ce85eb4ddef496e9de19451b
Binary files /dev/null and b/Assets/images/Tranaction.png differ
diff --git a/Assets/images/Trans_Flow.png b/Assets/images/Trans_Flow.png
new file mode 100644
index 0000000000000000000000000000000000000000..8d42828546a109f1a26b54cfcc10adb9e76f28a5
Binary files /dev/null and b/Assets/images/Trans_Flow.png differ
diff --git a/Assets/images/Transaction.png b/Assets/images/Transaction.png
new file mode 100644
index 0000000000000000000000000000000000000000..96a319986f8d2dc5ce85eb4ddef496e9de19451b
Binary files /dev/null and b/Assets/images/Transaction.png differ
diff --git a/Assets/images/Transaction_Log.png b/Assets/images/Transaction_Log.png
new file mode 100644
index 0000000000000000000000000000000000000000..cc51f1ace6ae7b741f6cfc0939b7e2d53f05286f
Binary files /dev/null and b/Assets/images/Transaction_Log.png differ
diff --git a/Assets/images/UI.png b/Assets/images/UI.png
new file mode 100644
index 0000000000000000000000000000000000000000..cb4c71f194deb3384060ece1f48b585a500f835f
Binary files /dev/null and b/Assets/images/UI.png differ
diff --git a/Assets/images/User.png b/Assets/images/User.png
new file mode 100644
index 0000000000000000000000000000000000000000..96de83794ebbde1c08f2b045939e609b5e39f0f6
Binary files /dev/null and b/Assets/images/User.png differ
diff --git a/Assets/images/User_1.png b/Assets/images/User_1.png
new file mode 100644
index 0000000000000000000000000000000000000000..a5c069f5e79f9dcf17f4cd40f775f61984345515
Binary files /dev/null and b/Assets/images/User_1.png differ
diff --git a/Assets/images/VSP.png b/Assets/images/VSP.png
new file mode 100644
index 0000000000000000000000000000000000000000..9242a4560dcf51466d052686db8ce797931f5fc6
Binary files /dev/null and b/Assets/images/VSP.png differ
diff --git a/Assets/images/VSP_1.png b/Assets/images/VSP_1.png
new file mode 100644
index 0000000000000000000000000000000000000000..faf21a44ece179388e3d76b37617ba99f28cb615
Binary files /dev/null and b/Assets/images/VSP_1.png differ
diff --git a/Assets/images/Vehicle.png b/Assets/images/Vehicle.png
new file mode 100644
index 0000000000000000000000000000000000000000..01fc26f183275a1c845a3aa94c9489d53742d583
Binary files /dev/null and b/Assets/images/Vehicle.png differ
diff --git a/Assets/images/Vehicle_1.png b/Assets/images/Vehicle_1.png
new file mode 100644
index 0000000000000000000000000000000000000000..37e56c2794732dfa682a236148ad9f88bee10b26
Binary files /dev/null and b/Assets/images/Vehicle_1.png differ
diff --git a/Assets/images/demo.png b/Assets/images/demo.png
new file mode 100644
index 0000000000000000000000000000000000000000..5e6b0f88b068b6a3e5f1532e20ad47875fb6c594
Binary files /dev/null and b/Assets/images/demo.png differ
diff --git a/Assets/images/import.png b/Assets/images/import.png
new file mode 100644
index 0000000000000000000000000000000000000000..9cfcfcf69fd1cc6d7ef5ea37b531eead7d42e2cf
Binary files /dev/null and b/Assets/images/import.png differ
diff --git a/Assets/images/init.png b/Assets/images/init.png
new file mode 100644
index 0000000000000000000000000000000000000000..92ecb84b864bc7cbda7da0c3b0d85ea170700704
Binary files /dev/null and b/Assets/images/init.png differ
diff --git a/Assets/images/ipfs_add.png b/Assets/images/ipfs_add.png
new file mode 100644
index 0000000000000000000000000000000000000000..b95c98f3442cbf7720877173add805781c1c18b7
Binary files /dev/null and b/Assets/images/ipfs_add.png differ
diff --git a/Assets/images/ipfs_daemon.png b/Assets/images/ipfs_daemon.png
new file mode 100644
index 0000000000000000000000000000000000000000..0b3b0248d9872ef2675b249e003f4ed5418be98b
Binary files /dev/null and b/Assets/images/ipfs_daemon.png differ
diff --git a/Assets/images/ipfs_swarm.png b/Assets/images/ipfs_swarm.png
new file mode 100644
index 0000000000000000000000000000000000000000..f3e4630becac53984ebf5b3392c14704c13c072a
Binary files /dev/null and b/Assets/images/ipfs_swarm.png differ
diff --git a/Assets/images/json.png b/Assets/images/json.png
new file mode 100644
index 0000000000000000000000000000000000000000..9ff2eab4e5c1f98dc47e5b6660a80d782543f980
Binary files /dev/null and b/Assets/images/json.png differ
diff --git a/Assets/images/json_d.png b/Assets/images/json_d.png
new file mode 100644
index 0000000000000000000000000000000000000000..890c7711c10f597ac23d8b987759f4f375fca0b4
Binary files /dev/null and b/Assets/images/json_d.png differ
diff --git a/Assets/images/publish.png b/Assets/images/publish.png
new file mode 100644
index 0000000000000000000000000000000000000000..d83458148736cbdcdab48807cd65bfc5310ca34f
Binary files /dev/null and b/Assets/images/publish.png differ
diff --git a/Assets/images/registration_flow.png b/Assets/images/registration_flow.png
new file mode 100644
index 0000000000000000000000000000000000000000..d96844f6395f3bcfdc9b3f9b15c42a7e1c9f40be
Binary files /dev/null and b/Assets/images/registration_flow.png differ
diff --git a/Assets/images/swarmkey.png b/Assets/images/swarmkey.png
new file mode 100644
index 0000000000000000000000000000000000000000..344800ae83b654956671816edbf9004313fb8e3a
Binary files /dev/null and b/Assets/images/swarmkey.png differ
diff --git a/Assets/images/trans.png b/Assets/images/trans.png
new file mode 100644
index 0000000000000000000000000000000000000000..2af1d64154d62c97da18cc9e8cf808bf1e39917b
Binary files /dev/null and b/Assets/images/trans.png differ
diff --git a/src/README.md b/src/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..3c26da3d9405eec65c58cb26ed99b82042212850
--- /dev/null
+++ b/src/README.md
@@ -0,0 +1,464 @@
+# Blockchain for the Internet of Vehicle ![](https://img.shields.io/badge/-Live-brightgreen)
+![](https://img.shields.io/badge/Batch-17CYS-green) ![](https://img.shields.io/badge/Domain-Blockchain-blue) ![](https://img.shields.io/badge/M.Tech--Thesis-Completed-darkgreen) ![](https://img.shields.io/badge/Focus-IoV-yellow) <br/>
+![](https://img.shields.io/badge/Blockchain-BigChainDB-blue) 
+
+### Generation of Keypair for a user
+
+```
+  /**
+     * Generate a keypair based on the supplied seed string.
+     * @param {string} keySeed - The seed that should be used to generate the keypair.
+     * @returns {*} The generated keypair.
+     */
+    generateKeypair(keySeed) {
+        if (typeof keySeed == "undefined" || keySeed == "") return new driver.Ed25519Keypair();
+        return new driver.Ed25519Keypair(bip39.mnemonicToSeed(keySeed).slice(0, 32));
+    }
+```
+
+### Creation of different Assets and App
+
+```
+/**
+     * Creation of various users and devices as assets on the blockchain and establishes a parent-child relationship
+     */
+createAPPdetails(){
+		
+			document.getElementById('update').value = "NameSpace set to : " + nameSpace
+			
+			// create admin user type - this is the asset representing the group of admins
+			const adminGroupAsset = {
+				ns: `${nameSpace}.admin`,
+				name: 'admin'
+			}
+			const adminGroupMetadata = {
+				can_link: [this.vaahanam.appadmin.publicKey]
+			}
+			
+			
+			const adminGroupId = (this.createNewAsset(this.vaahanam.appadmin, adminGroupAsset, adminGroupMetadata)).id
+			console.log('AdminGroup: ' + adminGroupId)
+			
+			// create admin user instance - this is a single user with admin role represented by an asset
+			const adminUserMetadata = {
+				event: 'User Assigned',
+				date: new Date(),
+				timestamp: Date.now(),
+				publicKey: this.vaahanam.appadmin.publicKey,
+				eventData: {
+					userType: 'admin'
+				}
+			}	
+			
+			// create app - the umbrella asset for representing the app
+			const appAsset = {
+				ns: nameSpace,
+				name: nameSpace
+			}
+
+			const appMetadata = {
+				can_link: adminGroupId
+			}
+
+			const appId = (this.createNewAsset(this.vaahanam.appadmin, appAsset, appMetadata)).id
+			console.log('App: ' + appId)
+			
+			const adminUserId = (this.createUser(this.vaahanam.appadmin, adminGroupId, 'admin', this.vaahanam.appadminPublicKey, adminUserMetadata)).id
+			console.log('AdminUser1: ' + adminUserId)
+			
+			//Create types
+			const rtoId = (this.createType('rto', appId, adminGroupId)).id
+			console.log('RTO : ' + rtoId)
+
+			const vspId = (this.createType('vehicleserviceprovider', appId, adminGroupId)).id
+			console.log('Vehicle Service Provider : ' + vspId)
+			
+			const iotId = (this.createType('iotdevice', appId, adminGroupId)).id
+			console.log('IOT Device : ' + iotId)
+			
+			const userId = (this.createType('user', appId, rtoId)).id
+			console.log('User (Vehicle Owners) : ' + userId)
+				
+			const vehicleId = (this.createType('vehicle', appId, rtoId)).id
+			console.log('Vehicle : ' + vehicleId)
+			
+			const userMetadata = {
+				event: 'User Assigned',
+				date: new Date(),
+				timestamp: Date.now(),
+				publicKey: this.vaahanam.appadminPublicKey,
+				eventData: {
+					userType: 'RTO of Mettupalayam'
+				}
+			}
+
+			const rtoassetId_mtp = (this.createUser(this.vaahanam.appadmin, rtoId, 'rto' , this.vaahanam.raPublicKey, userMetadata)).id
+			console.log('RTO of Mettupalayam : ' + rtoassetId_mtp)
+
+			const user2Metadata = {
+				event: 'User Assigned',
+				date: new Date(),
+				timestamp: Date.now(),
+				publicKey: this.vaahanam.appadminPublicKey,
+				eventData: {
+					userType: 'RTO of Chennai South'
+				}
+			}
+
+			// user 2 added to tribe 2
+			const rtoassetId_maa = (this.createUser(this.vaahanam.appadmin, rtoId, 'rto', this.vaahanam.ra1PublicKey, user2Metadata)).id
+			console.log('RTO of Chennai South : ' + rtoassetId_maa)
+			
+
+		},
+		
+		createTypeInstance(keypair, asset, metadata) {
+			
+
+		return this.createNewAsset(keypair, asset, metadata)
+		},
+		createUser(adminKeyPair, userTypeId, userTypeName, userPublicKey, userMetadata) {
+			const asset = {
+				ns: `${nameSpace}.${userTypeName}`,
+				link: userTypeId,
+				createdBy: adminKeyPair.publicKey,
+				type: userTypeName,
+				keyword: 'UserAsset'
+			}
+
+			const metadata = {
+				event: 'User Added',
+				date: new Date(),
+				timestamp: Date.now(),
+				publicKey: userPublicKey,
+				eventData: {
+					userType: userTypeName
+				}
+			}
+
+			const instanceTx = this.createNewAsset(adminKeyPair, asset, metadata)
+			this.transferAsset(instanceTx, adminKeyPair, userPublicKey, userMetadata)
+			return instanceTx
+		},
+		createType(typeName, appId, canLinkAssetId) {
+			const asset = {
+				ns: `${nameSpace}.${typeName}`,
+				link: appId,
+				name: typeName
+			}
+	
+			const metadata = {
+				can_link: canLinkAssetId
+			}
+
+			return this.createNewAsset(this.vaahanam.appadmin, asset, metadata)
+		},
+		createNewAsset(keypair, asset, metadata) {
+			console.log('Creating new asset : ',asset)
+			
+			//document.getElementById('update').value += '\nCreating new asset : ' + asset
+			
+			const API_PATH = 'https://test.bigchaindb.com/api/v1/'
+			let conn = new BigchainDB.Connection(API_PATH)
+
+			let condition = BigchainDB.Transaction.makeEd25519Condition(keypair.publicKey, true)
+
+			let output = BigchainDB.Transaction.makeOutput(condition)
+			output.public_keys = [keypair.publicKey]
+
+			const transaction = BigchainDB.Transaction.makeCreateTransaction(
+				asset,
+				metadata,
+				[ BigchainDB.Transaction.makeOutput(
+					   BigchainDB.Transaction.makeEd25519Condition(keypair.publicKey))
+			   ],
+				keypair.publicKey
+			)
+
+			const txSigned = BigchainDB.Transaction.signTransaction(transaction, keypair.privateKey) 
+			
+			console.log('New Asset Creation with Transaction Signed ',txSigned)
+			
+			conn.postTransactionCommit(txSigned)
+			
+			return txSigned
+		},
+		
+		transferAsset(tx, fromKeyPair, toPublicKey, metadata) {
+			
+			const API_PATH = 'https://test.bigchaindb.com/api/v1/'
+			let conn = new BigchainDB.Connection(API_PATH)
+
+			let condition = BigchainDB.Transaction.makeEd25519Condition(toPublicKey)
+
+			let output = BigchainDB.Transaction.makeOutput(condition)
+			output.public_keys = [toPublicKey]
+
+			const txTransfer = BigchainDB.Transaction.makeTransferTransaction(
+				[{tx: tx,output_index:0}],
+				[output],
+				metadata
+			)
+
+			const txSigned = BigchainDB.Transaction.signTransaction(txTransfer, fromKeyPair.privateKey)
+			return conn.postTransactionCommit(txSigned)
+		}
+ ```
+    
+### Crytptotoken Creation
+
+```
+/**
+     * Creates Naanayam Tokens for the Vaahan-namchain
+     * @param {int} nTokens - Number of tokens to be created [Value is defined as 44 Million].
+     * @returns {*} The transaction ID.
+     */
+createTokens(nTokens) {
+		console.log('Request to create Tokens '+nTokens)
+	
+    	const API_PATH = 'https://test.bigchaindb.com/api/v1/'
+    
+    	console.log('Public key of Token Creator : ', this.tokenCreatorP)
+    
+    	let conn = new BigchainDB.Connection(API_PATH)
+    	
+    	// Construct a transaction payload
+    	const tx = BigchainDB.Transaction.makeCreateTransaction({
+    			token: 'Naanayam',
+    			link: '2a89589da371d3593d7e1a9fed0c888c794a546f933c6a30aaed2adc5f6511dc',
+    			number_tokens: nTokens
+    		},
+    		// Metadata field, contains information about the transaction itself
+    		// (can be `null` if not needed)
+    		{
+    			can_link: '688f4fec05cf6d01624b3a33a7a2206479be8c5a1a1ef50131418b5b6de91d04',
+    			datetime: new Date().toString()
+    		},
+    		// Output: Divisible asset, include nTokens as parameter
+    		[BigchainDB.Transaction.makeOutput(BigchainDB.Transaction.makeEd25519Condition(this.tokenCreatorP), nTokens.toString())],
+    		this.tokenCreatorP
+    	)
+    	
+    	console.log(tx)
+    
+    	// Sign the transaction with the private key of the token creator
+    	const txSigned = BigchainDB.Transaction
+    	  .signTransaction(tx, this.tokenCreatorpr)
+    	  
+    	console.log(txSigned)
+    	
+        // Send the transaction off to BigchainDB
+    	conn.postTransactionCommit(txSigned)
+    		.then(res => {
+    			//document.getElementById("transid").innerHTML = txSigned.id
+    			const elem = document.getElementById('transid')
+                elem.href = API_PATH + 'transactions/' + txSigned.id
+                elem.innerHTML = txSigned.id
+    			})	
+    
+    	return txSigned.id;
+	}
+```
+
+### Transfer of tokens
+
+```
+  /**
+         * Transfer tokens between two users
+         * @param {int} amountToSend - number of tokens to be transferred
+         * @param {string} receiveraddr - public address of the receiver
+         * @returns {*} The transaction ID.
+         */
+        transfer(amountToSend, receiveraddr) {
+                    
+                    const API_PATH = 'https://test.bigchaindb.com/api/v1/'
+    
+    				let conn = new BigchainDB.Connection(API_PATH)
+    				
+                    conn.getTransaction(UserPublickey, false)
+    				.then((txOutputs) => { 		
+    					console.log(txOutputs)
+    					
+    					let tokens = parseInt(txOutputs['outputs'][0]['amount'])
+    					
+    					console.log('Remaining Tokens',tokens)
+    					
+    					// Create transfer transaction
+    					const transferTrans = BigchainDB.Transaction.makeTransferTransaction(
+    							[{
+    								tx: txOutputs,
+    								output_index: 0
+    							}],
+    							// Transaction output: Two outputs, because the whole input
+    							// must be spent
+    							[BigchainDB.Transaction.makeOutput(BigchainDB.Transaction.makeEd25519Condition('AbLkgEyeUL2xC2QmnEs21cqHjGJuPcPMXA562996QnCw'),(tokens - amountToSend).toString()),
+    							 BigchainDB.Transaction.makeOutput(BigchainDB.Transaction.makeEd25519Condition('5dzYagqoqjqr9dWa44XYUpTcfvRrH6tFT9Bw4EvTiHC4'),amountToSend.toString())
+    							],
+    							// Metadata (optional)
+    							{
+    								transfered_to: '5dzYagqoqjqr9dWa44XYUpTcfvRrH6tFT9Bw4EvTiHC4',
+    								amountreceived: amountToSend
+    							}
+    						)
+    						
+    					// Sign the transaction with the tokenCreator key
+    					const signedTransfer = BigchainDB.Transaction.signTransaction(transferTrans, Userprivatekey)
+    					
+    					return conn.postTransactionCommit(signedTransfer) 
+    					})
+    				.then((tx) =>{
+    					console.log('Response from BDB server:', tx)
+    					console.log('Is Ramaguru the owner?', tx['outputs'][1]['public_keys'][0] == '5dzYagqoqjqr9dWa44XYUpTcfvRrH6tFT9Bw4EvTiHC4')
+    					const elem = document.getElementById('lastTransaction')
+                        elem.href = API_PATH + 'transactions/' + tx.id
+                        elem.innerText = txSigned.id
+                        console.log('Transaction ID : ', tx.id, ' is accepted')				})
+                        
+            return tx.id
+    		}
+```
+
+### User and Vehicle Registration
+
+```
+/**
+     * Registers the vehicle, the vehicle owner and creates a relationship between these two assets
+     * @param {string} pub - public key of the vehicle owner
+     * @param {string} aadhar - aadhar number of the vehicle owner
+     * @param {string} engno - Engine number of the vehicle
+     * @param {string} chasisno - Chasis number of the vehicle
+     * @param {string} vmodel - Vehicle Model
+     * @param {string} vservice - Vehicle Service Provider
+     * @param {string} vtype - Vehicle Type
+     * @param {string} regno - Registration Number
+     */
+registervehicle1(pub,rto,aadhar,engno,chasisno,vmodel,vservice,vtype,regno){
+			
+			typeName = 'vehicle'
+			typeId = '66b8a260073a94a2bb9b3e6a419e0f36b6967dcaa492640a8893652af6c713aa'
+			
+			const asset = {
+			ns: `${nameSpace}.${typeName}`,
+			link: typeId,
+			Regional_Transport_Office : rto,
+			Engine_number: engno,
+			Chasis_number: chasisno,
+			Vehicle_model: vmodel,
+			Vehicle_type: vtype,
+			Vehicle_service: vservice,
+			Registration_number: regno,
+			Time_of_Registration: new Date().toString(),
+			}
+			
+			const userMetadata = {
+				event: 'User Assigned',
+				date: new Date(),
+				timestamp: Date.now(),
+				publicKey: this.vaahanam.raPublicKey,
+				eventData: {
+					userType: aadhar
+				}
+			}
+			
+			const userid = (this.createUser(this.vaahanam.ra, '6bfa6e454a81f6fbc189fe7edc4e79102c791e128fd2fc643d82a18cde4425be', 'user' , pub, userMetadata)).id
+			const tx = (this.createTypeInstance(this.vaahanam.ra, asset, { event: 'Vehicle Created', owner: userid })).id;
+			
+			console.log(tx)
+			document.getElementById('transid').value = tx;
+		}
+```
+
+### Retrieve Vehicle Information through Transaction ID
+
+```
+/**
+     * Querying blockchain to get the vehicle details based on transaction ID
+     * @param {string} tid - Transaction ID
+     */
+getvehicleTID(tid){
+			const API_PATH = 'https://test.bigchaindb.com/api/v1/'
+			let conn = new BigchainDB.Connection(API_PATH)
+			
+			conn.getTransaction(tid)
+			.then((res) => {
+			console.log('Found Transaction with TID ', tid, ' and content ', res);
+			console.log(res['asset']['data']['Regional_Transport_Office']);
+			console.log(res['asset']['data']['Engine_number']);
+			console.log(res['asset']['data']['Chasis_number']);
+			console.log(res['asset']['data']['Vehicle_model']);
+			console.log(res['asset']['data']['Vehicle_type']);
+			console.log(res['asset']['data']['Vehicle_service']);
+			console.log(res['asset']['data']['Time_of_Registration']);
+			document.getElementById("rtodet").innerHTML = res['asset']['data']['Regional_Transport_Office'];
+			document.getElementById("engnodet").innerHTML = res['asset']['data']['Engine_number'];
+			document.getElementById("cnodet").innerHTML = res['asset']['data']['Chasis_number'];
+			document.getElementById("vmoddet").innerHTML = res['asset']['data']['Vehicle_model'];
+			document.getElementById("vtypedet").innerHTML = res['asset']['data']['Vehicle_type'];
+			document.getElementById("vssdet").innerHTML = res['asset']['data']['Vehicle_service'];
+			document.getElementById("timedet").innerHTML = res['asset']['data']['Time_of_Registration'];
+			})
+		}
+```
+
+### Sending DTC transaction to the blockchain
+
+```
+/**
+     * Invoked by smartcontract to send the critical DTC and corresponding log hash to blockchain
+     * @param {string} assetid - Vehicle assetid
+     * @param {string} ipfshash - IPFS hash of the log file stored
+     * @param {string} smartcontract - IPFS hash of the smartcontract that invoked this
+     * @param {string} dtc - Diagnostic trouble code set in the vehicle
+     */
+senddtc(assetid, ipfshash, smartcontract, dtc){
+			//Invoked by  Smart Contracts
+			console.log('invoked smart contract for assetid ', assetid, 'ipfshash ', ipfshash,' with dtc set to ', dtc)
+			
+			const API_PATH = 'https://test.bigchaindb.com/api/v1/'
+			let conn = new BigchainDB.Connection(API_PATH)
+			
+			conn.getTransaction(assetid)
+			.then((res) => {
+				console.log(res);
+				assetidofuser = res['metadata']['owner'];
+				console.log(assetidofuser);
+				
+				conn.getTransaction(assetidofuser)
+				.then((txuser) => {
+					
+					pub = txuser['metadata']['publicKey'];
+					
+					console.log('Public key of Token Creator : ', pub)
+		
+					// Construct a transaction payload
+					const tx = BigchainDB.Transaction.makeCreateTransaction({
+							vehicle: assetid,
+							dtc : dtc
+							log_hash: ipfshash,
+							smartcontract_hash: smartcontract
+						},
+						// Metadata field, contains information about the transaction itself
+						// (can be `null` if not needed)
+						{
+							datetime: new Date().toString()
+						},
+						// Output: Divisible asset, include nTokens as parameter
+						[BigchainDB.Transaction.makeOutput(BigchainDB.Transaction.makeEd25519Condition(pub))],
+						pub
+					)
+					
+					console.log(tx)
+
+					// Sign the transaction with the private key of the token creator
+					const txSigned = BigchainDB.Transaction.signTransaction(tx, pub)
+					
+					console.log(txSigned)
+					
+					conn.postTransactionCommit(txSigned)
+					  
+					console.log(txSigned.id)
+				})
+			})
+		}
+```    
+    
diff --git a/src/vaahanamchain.js b/src/vaahanamchain.js
new file mode 100644
index 0000000000000000000000000000000000000000..2ab552f2e63669cdfc934117bcd193ab5651548b
--- /dev/null
+++ b/src/vaahanamchain.js
@@ -0,0 +1,431 @@
+ /**
+     * Generate a keypair based on the supplied seed string.
+     * @param {string} keySeed - The seed that should be used to generate the keypair.
+     * @returns {*} The generated keypair.
+     */
+    generateKeypair(keySeed) {
+        if (typeof keySeed == "undefined" || keySeed == "") return new driver.Ed25519Keypair();
+        return new driver.Ed25519Keypair(bip39.mnemonicToSeed(keySeed).slice(0, 32));
+    }
+	
+ /**
+     * Creation of various users and devices as assets on the blockchain and establishes a parent-child relationship
+     */
+createAPPdetails(){
+		
+			document.getElementById('update').value = "NameSpace set to : " + nameSpace
+			
+			// create admin user type - this is the asset representing the group of admins
+			const adminGroupAsset = {
+				ns: `${nameSpace}.admin`,
+				name: 'admin'
+			}
+			const adminGroupMetadata = {
+				can_link: [this.vaahanam.appadmin.publicKey]
+			}
+			
+			
+			const adminGroupId = (this.createNewAsset(this.vaahanam.appadmin, adminGroupAsset, adminGroupMetadata)).id
+			console.log('AdminGroup: ' + adminGroupId)
+			
+			// create admin user instance - this is a single user with admin role represented by an asset
+			const adminUserMetadata = {
+				event: 'User Assigned',
+				date: new Date(),
+				timestamp: Date.now(),
+				publicKey: this.vaahanam.appadmin.publicKey,
+				eventData: {
+					userType: 'admin'
+				}
+			}	
+			
+			// create app - the umbrella asset for representing the app
+			const appAsset = {
+				ns: nameSpace,
+				name: nameSpace
+			}
+
+			const appMetadata = {
+				can_link: adminGroupId
+			}
+
+			const appId = (this.createNewAsset(this.vaahanam.appadmin, appAsset, appMetadata)).id
+			console.log('App: ' + appId)
+			
+			const adminUserId = (this.createUser(this.vaahanam.appadmin, adminGroupId, 'admin', this.vaahanam.appadminPublicKey, adminUserMetadata)).id
+			console.log('AdminUser1: ' + adminUserId)
+			
+			//Create types
+			const rtoId = (this.createType('rto', appId, adminGroupId)).id
+			console.log('RTO : ' + rtoId)
+
+			const vspId = (this.createType('vehicleserviceprovider', appId, adminGroupId)).id
+			console.log('Vehicle Service Provider : ' + vspId)
+			
+			const iotId = (this.createType('iotdevice', appId, adminGroupId)).id
+			console.log('IOT Device : ' + iotId)
+			
+			const userId = (this.createType('user', appId, rtoId)).id
+			console.log('User (Vehicle Owners) : ' + userId)
+				
+			const vehicleId = (this.createType('vehicle', appId, rtoId)).id
+			console.log('Vehicle : ' + vehicleId)
+			
+			const userMetadata = {
+				event: 'User Assigned',
+				date: new Date(),
+				timestamp: Date.now(),
+				publicKey: this.vaahanam.appadminPublicKey,
+				eventData: {
+					userType: 'RTO of Mettupalayam'
+				}
+			}
+
+			const rtoassetId_mtp = (this.createUser(this.vaahanam.appadmin, rtoId, 'rto' , this.vaahanam.raPublicKey, userMetadata)).id
+			console.log('RTO of Mettupalayam : ' + rtoassetId_mtp)
+
+			const user2Metadata = {
+				event: 'User Assigned',
+				date: new Date(),
+				timestamp: Date.now(),
+				publicKey: this.vaahanam.appadminPublicKey,
+				eventData: {
+					userType: 'RTO of Chennai South'
+				}
+			}
+
+			// user 2 added to tribe 2
+			const rtoassetId_maa = (this.createUser(this.vaahanam.appadmin, rtoId, 'rto', this.vaahanam.ra1PublicKey, user2Metadata)).id
+			console.log('RTO of Chennai South : ' + rtoassetId_maa)
+			
+
+		},
+		
+		createTypeInstance(keypair, asset, metadata) {
+			
+
+		return this.createNewAsset(keypair, asset, metadata)
+		},
+		createUser(adminKeyPair, userTypeId, userTypeName, userPublicKey, userMetadata) {
+			const asset = {
+				ns: `${nameSpace}.${userTypeName}`,
+				link: userTypeId,
+				createdBy: adminKeyPair.publicKey,
+				type: userTypeName,
+				keyword: 'UserAsset'
+			}
+
+			const metadata = {
+				event: 'User Added',
+				date: new Date(),
+				timestamp: Date.now(),
+				publicKey: userPublicKey,
+				eventData: {
+					userType: userTypeName
+				}
+			}
+
+			const instanceTx = this.createNewAsset(adminKeyPair, asset, metadata)
+			this.transferAsset(instanceTx, adminKeyPair, userPublicKey, userMetadata)
+			return instanceTx
+		},
+		createType(typeName, appId, canLinkAssetId) {
+			const asset = {
+				ns: `${nameSpace}.${typeName}`,
+				link: appId,
+				name: typeName
+			}
+	
+			const metadata = {
+				can_link: canLinkAssetId
+			}
+
+			return this.createNewAsset(this.vaahanam.appadmin, asset, metadata)
+		},
+		createNewAsset(keypair, asset, metadata) {
+			console.log('Creating new asset : ',asset)
+			
+			//document.getElementById('update').value += '\nCreating new asset : ' + asset
+			
+			const API_PATH = 'https://test.bigchaindb.com/api/v1/'
+			let conn = new BigchainDB.Connection(API_PATH)
+
+			let condition = BigchainDB.Transaction.makeEd25519Condition(keypair.publicKey, true)
+
+			let output = BigchainDB.Transaction.makeOutput(condition)
+			output.public_keys = [keypair.publicKey]
+
+			const transaction = BigchainDB.Transaction.makeCreateTransaction(
+				asset,
+				metadata,
+				[ BigchainDB.Transaction.makeOutput(
+					   BigchainDB.Transaction.makeEd25519Condition(keypair.publicKey))
+			   ],
+				keypair.publicKey
+			)
+
+			const txSigned = BigchainDB.Transaction.signTransaction(transaction, keypair.privateKey) 
+			
+			console.log('New Asset Creation with Transaction Signed ',txSigned)
+			
+			conn.postTransactionCommit(txSigned)
+			
+			return txSigned
+		},
+		
+		transferAsset(tx, fromKeyPair, toPublicKey, metadata) {
+			
+			const API_PATH = 'https://test.bigchaindb.com/api/v1/'
+			let conn = new BigchainDB.Connection(API_PATH)
+
+			let condition = BigchainDB.Transaction.makeEd25519Condition(toPublicKey)
+
+			let output = BigchainDB.Transaction.makeOutput(condition)
+			output.public_keys = [toPublicKey]
+
+			const txTransfer = BigchainDB.Transaction.makeTransferTransaction(
+				[{tx: tx,output_index:0}],
+				[output],
+				metadata
+			)
+
+			const txSigned = BigchainDB.Transaction.signTransaction(txTransfer, fromKeyPair.privateKey)
+			return conn.postTransactionCommit(txSigned)
+		}
+
+/**
+     * Creates Naanayam Tokens for the Vaahan-namchain
+     * @param {int} nTokens - Number of tokens to be created [Value is defined as 44 Million].
+     * @returns {*} The transaction ID.
+     */
+createTokens(nTokens) {
+		console.log('Request to create Tokens '+nTokens)
+	
+    	const API_PATH = 'https://test.bigchaindb.com/api/v1/'
+    
+    	console.log('Public key of Token Creator : ', this.tokenCreatorP)
+    
+    	let conn = new BigchainDB.Connection(API_PATH)
+    	
+    	// Construct a transaction payload
+    	const tx = BigchainDB.Transaction.makeCreateTransaction({
+    			token: 'Naanayam',
+    			link: '2a89589da371d3593d7e1a9fed0c888c794a546f933c6a30aaed2adc5f6511dc',
+    			number_tokens: nTokens
+    		},
+    		// Metadata field, contains information about the transaction itself
+    		// (can be `null` if not needed)
+    		{
+    			can_link: '688f4fec05cf6d01624b3a33a7a2206479be8c5a1a1ef50131418b5b6de91d04',
+    			datetime: new Date().toString()
+    		},
+    		// Output: Divisible asset, include nTokens as parameter
+    		[BigchainDB.Transaction.makeOutput(BigchainDB.Transaction.makeEd25519Condition(this.tokenCreatorP), nTokens.toString())],
+    		this.tokenCreatorP
+    	)
+    	
+    	console.log(tx)
+    
+    	// Sign the transaction with the private key of the token creator
+    	const txSigned = BigchainDB.Transaction
+    	  .signTransaction(tx, this.tokenCreatorpr)
+    	  
+    	console.log(txSigned)
+    	
+        // Send the transaction off to BigchainDB
+    	conn.postTransactionCommit(txSigned)
+    		.then(res => {
+    			//document.getElementById("transid").innerHTML = txSigned.id
+    			const elem = document.getElementById('transid')
+                elem.href = API_PATH + 'transactions/' + txSigned.id
+                elem.innerHTML = txSigned.id
+    			})	
+    
+    	return txSigned.id;
+	}
+
+/**
+     * Transfer tokens between two users
+     * @param {int} amountToSend - number of tokens to be transferred
+     * @param {string} receiveraddr - public address of the receiver
+     * @returns {*} The transaction ID.
+     */
+    transfer(amountToSend, receiveraddr) {
+                
+                const API_PATH = 'https://test.bigchaindb.com/api/v1/'
+
+				let conn = new BigchainDB.Connection(API_PATH)
+				
+                conn.getTransaction(UserPublickey, false)
+				.then((txOutputs) => { 		
+					console.log(txOutputs)
+					
+					let tokens = parseInt(txOutputs['outputs'][0]['amount'])
+					
+					console.log('Remaining Tokens',tokens)
+					
+					// Create transfer transaction
+					const transferTrans = BigchainDB.Transaction.makeTransferTransaction(
+							[{
+								tx: txOutputs,
+								output_index: 0
+							}],
+							// Transaction output: Two outputs, because the whole input
+							// must be spent
+							[BigchainDB.Transaction.makeOutput(BigchainDB.Transaction.makeEd25519Condition('AbLkgEyeUL2xC2QmnEs21cqHjGJuPcPMXA562996QnCw'),(tokens - amountToSend).toString()),
+							 BigchainDB.Transaction.makeOutput(BigchainDB.Transaction.makeEd25519Condition('5dzYagqoqjqr9dWa44XYUpTcfvRrH6tFT9Bw4EvTiHC4'),amountToSend.toString())
+							],
+							// Metadata (optional)
+							{
+								transfered_to: '5dzYagqoqjqr9dWa44XYUpTcfvRrH6tFT9Bw4EvTiHC4',
+								amountreceived: amountToSend
+							}
+						)
+						
+					// Sign the transaction with the tokenCreator key
+					const signedTransfer = BigchainDB.Transaction.signTransaction(transferTrans, Userprivatekey)
+					
+					return conn.postTransactionCommit(signedTransfer) 
+					})
+				.then((tx) =>{
+					console.log('Response from BDB server:', tx)
+					console.log('Is Ramaguru the owner?', tx['outputs'][1]['public_keys'][0] == '5dzYagqoqjqr9dWa44XYUpTcfvRrH6tFT9Bw4EvTiHC4')
+					const elem = document.getElementById('lastTransaction')
+                    elem.href = API_PATH + 'transactions/' + tx.id
+                    elem.innerText = txSigned.id
+                    console.log('Transaction ID : ', tx.id, ' is accepted')				})
+                    
+        return tx.id
+		}
+
+ /**
+     * Registers the vehicle, the vehicle owner and creates a relationship between these two assets
+     * @param {string} pub - public key of the vehicle owner
+     * @param {string} aadhar - aadhar number of the vehicle owner
+     * @param {string} engno - Engine number of the vehicle
+     * @param {string} chasisno - Chasis number of the vehicle
+     * @param {string} vmodel - Vehicle Model
+     * @param {string} vservice - Vehicle Service Provider
+     * @param {string} vtype - Vehicle Type
+     * @param {string} regno - Registration Number
+     */
+registervehicle1(pub,rto,aadhar,engno,chasisno,vmodel,vservice,vtype,regno){
+			
+			typeName = 'vehicle'
+			typeId = '66b8a260073a94a2bb9b3e6a419e0f36b6967dcaa492640a8893652af6c713aa'
+			
+			const asset = {
+			ns: `${nameSpace}.${typeName}`,
+			link: typeId,
+			Regional_Transport_Office : rto,
+			Engine_number: engno,
+			Chasis_number: chasisno,
+			Vehicle_model: vmodel,
+			Vehicle_type: vtype,
+			Vehicle_service: vservice,
+			Registration_number: regno,
+			Time_of_Registration: new Date().toString(),
+			}
+			
+			const userMetadata = {
+				event: 'User Assigned',
+				date: new Date(),
+				timestamp: Date.now(),
+				publicKey: this.vaahanam.raPublicKey,
+				eventData: {
+					userType: aadhar
+				}
+			}
+			
+			const userid = (this.createUser(this.vaahanam.ra, '6bfa6e454a81f6fbc189fe7edc4e79102c791e128fd2fc643d82a18cde4425be', 'user' , pub, userMetadata)).id
+			const tx = (this.createTypeInstance(this.vaahanam.ra, asset, { event: 'Vehicle Created', owner: userid })).id;
+			
+			console.log(tx)
+			document.getElementById('transid').value = tx;
+		}
+
+ /**
+     * Querying blockchain to get the vehicle details based on transaction ID
+     * @param {string} tid - Transaction ID
+     */
+getvehicleTID(tid){
+			const API_PATH = 'https://test.bigchaindb.com/api/v1/'
+			let conn = new BigchainDB.Connection(API_PATH)
+			
+			conn.getTransaction(tid)
+			.then((res) => {
+			console.log('Found Transaction with TID ', tid, ' and content ', res);
+			console.log(res['asset']['data']['Regional_Transport_Office']);
+			console.log(res['asset']['data']['Engine_number']);
+			console.log(res['asset']['data']['Chasis_number']);
+			console.log(res['asset']['data']['Vehicle_model']);
+			console.log(res['asset']['data']['Vehicle_type']);
+			console.log(res['asset']['data']['Vehicle_service']);
+			console.log(res['asset']['data']['Time_of_Registration']);
+			document.getElementById("rtodet").innerHTML = res['asset']['data']['Regional_Transport_Office'];
+			document.getElementById("engnodet").innerHTML = res['asset']['data']['Engine_number'];
+			document.getElementById("cnodet").innerHTML = res['asset']['data']['Chasis_number'];
+			document.getElementById("vmoddet").innerHTML = res['asset']['data']['Vehicle_model'];
+			document.getElementById("vtypedet").innerHTML = res['asset']['data']['Vehicle_type'];
+			document.getElementById("vssdet").innerHTML = res['asset']['data']['Vehicle_service'];
+			document.getElementById("timedet").innerHTML = res['asset']['data']['Time_of_Registration'];
+			})
+		}
+
+ /**
+     * Invoked by smartcontract to send the critical DTC and corresponding log hash to blockchain
+     * @param {string} assetid - Vehicle assetid
+     * @param {string} ipfshash - IPFS hash of the log file stored
+     * @param {string} smartcontract - IPFS hash of the smartcontract that invoked this
+     * @param {string} dtc - Diagnostic trouble code set in the vehicle
+     */
+senddtc(assetid, ipfshash, smartcontract, dtc){
+			//Invoked by  Smart Contracts
+			console.log('invoked smart contract for assetid ', assetid, 'ipfshash ', ipfshash,' with dtc set to ', dtc)
+			
+			const API_PATH = 'https://test.bigchaindb.com/api/v1/'
+			let conn = new BigchainDB.Connection(API_PATH)
+			
+			conn.getTransaction(assetid)
+			.then((res) => {
+				console.log(res);
+				assetidofuser = res['metadata']['owner'];
+				console.log(assetidofuser);
+				
+				conn.getTransaction(assetidofuser)
+				.then((txuser) => {
+					
+					pub = txuser['metadata']['publicKey'];
+					
+					console.log('Public key of Token Creator : ', pub)
+		
+					// Construct a transaction payload
+					const tx = BigchainDB.Transaction.makeCreateTransaction({
+							vehicle: assetid,
+							dtc : dtc
+							log_hash: ipfshash,
+							smartcontract_hash: smartcontract
+						},
+						// Metadata field, contains information about the transaction itself
+						// (can be `null` if not needed)
+						{
+							datetime: new Date().toString()
+						},
+						// Output: Divisible asset, include nTokens as parameter
+						[BigchainDB.Transaction.makeOutput(BigchainDB.Transaction.makeEd25519Condition(pub))],
+						pub
+					)
+					
+					console.log(tx)
+
+					// Sign the transaction with the private key of the token creator
+					const txSigned = BigchainDB.Transaction.signTransaction(tx, pub)
+					
+					console.log(txSigned)
+					
+					conn.postTransactionCommit(txSigned)
+					  
+					console.log(txSigned.id)
+				})
+			})
+		}