diff --git a/neon/build.sh b/neon/build.sh
new file mode 100755
index 0000000000000000000000000000000000000000..f12cd426d7233172a27bfb8fc08d7da5a4c61893
--- /dev/null
+++ b/neon/build.sh
@@ -0,0 +1,12 @@
+#!/bin/bash
+
+cd neon
+
+if  [ "${NODE_ENV}" = "production" ]
+then
+	neon build --release
+else
+    neon build
+fi
+
+cd ..
\ No newline at end of file
diff --git a/neon/lib/crypto.d.ts b/neon/lib/crypto.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..d1a18ea9a056c46bd740376d3647861599e518ad
--- /dev/null
+++ b/neon/lib/crypto.d.ts
@@ -0,0 +1,22 @@
+/* tslint:disable */
+
+export class KeyPairBuilder {
+
+    static fromSeed(seed: Buffer): Ed25519Signator;
+
+    static fromSecretKey(secretKey: string): Ed25519Signator;
+
+    static random(): Ed25519Signator;
+}
+
+export class Ed25519Signator {
+
+    getPublicKey(): string;
+
+    sign(message: Buffer | string): string;
+}
+
+export function generateRandomSeed(): Buffer;
+export function seedToSecretKey(seed: Buffer): string;
+export function sha256(data: string): string;
+export function verify(message: Buffer | string, sig: string, pubkey: string): boolean;
diff --git a/neon/lib/index.d.ts b/neon/lib/index.d.ts
index 7a5ef5ad420af12593e60df59a7aefb88cdf924b..227ff4931a5d81a4f916fd6f5a1161db5e414b57 100644
--- a/neon/lib/index.d.ts
+++ b/neon/lib/index.d.ts
@@ -1,91 +1,14 @@
 /* tslint:disable */
 
-export class KeyPairBuilder {
-
-    static fromSeed(seed: Buffer): Ed25519Signator;
-
-    static fromSecretKey(secretKey: string): Ed25519Signator;
-
-    static random(): Ed25519Signator;
-}
-
-export class Ed25519Signator {
-
-    getPublicKey(): string;
-
-    sign(message: Buffer | string): string;
-}
-
-export function generateRandomSeed(): Buffer;
-export function seedToSecretKey(seed: Buffer): string;
-export function sha256(data: string): string;
-export function verify(message: Buffer | string, sig: string, pubkey: string): boolean;
-
-export class DetailedDistance {
-    nbSentries: number;
-    nbSuccess: number;
-    nbSuccessAtBorder: number;
-    nbReached: number;
-    nbReachedAtBorder: number;
-    isOutdistanced: number;
-}
-
-export class WotBuilder {
-    static fromWot(wot: Wot): Wot;
-
-    static fromFile(filePath: string): Wot;
-}
-
-export class Wot {
-    constructor(maxCert: number);
-
-    clear(): void;
-
-    getMaxCert(): number;
-
-    setMaxCert(maxCert: number): void;
-
-    addNode(): number;
-
-    removeNode(): number;
-
-    getWoTSize(): number;
-
-    isEnabled(node_id: number): boolean;
-
-    getEnabled(): number[];
-
-    setEnabled(enabled: boolean, node_id: number): boolean;
-
-    getDisabled(): number[];
-
-    getSentries(sentry_requirement: number): number[];
-
-    getNonSentries(sentry_requirement: number): number[];
-
-    addLink(source: number, target: number): number;
-
-    existsLink(source: number, target: number): boolean;
-
-    removeLink(source: number, target: number): number;
-
-    isOutdistanced(
-        node_id: number,
-        sentry_requirement: number,
-        step_max: number,
-        x_percent: number
-    ): boolean;
-
-    detailedDistance(
-        nde_id: number,
-        sentry_requirement: number,
-        step_max: number,
-        x_percent: number
-    ): DetailedDistance;
-
-    getPaths(source: number, target: number, step_max: number): number[][];
-
-    writeInFile(file_path: string): boolean;
-
-    dump(): string;
-}
+import * as _crypto from './crypto';
+import * as _wot from './wot';
+
+export import KeyPairBuilder = _crypto.KeyPairBuilder;
+export import Ed25519Signator = _crypto.Ed25519Signator;
+export import generateRandomSeed = _crypto.generateRandomSeed;
+export import seedToSecretKey = _crypto.seedToSecretKey;
+export import sha256 = _crypto.sha256;
+export import verify = _crypto.verify;
+
+export import Wot = _wot.Wot;
+export import WotBuilder = _wot.WotBuilder;
diff --git a/neon/lib/wot.d.ts b/neon/lib/wot.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..86ebf1264b24ea85c294cfd6224c0145157ef5ee
--- /dev/null
+++ b/neon/lib/wot.d.ts
@@ -0,0 +1,70 @@
+/* tslint:disable */
+
+export class DetailedDistance {
+    nbSentries: number;
+    nbSuccess: number;
+    nbSuccessAtBorder: number;
+    nbReached: number;
+    nbReachedAtBorder: number;
+    isOutdistanced: number;
+}
+
+export class WotBuilder {
+    static fromWot(wot: Wot): Wot;
+
+    static fromFile(filePath: string): Wot;
+}
+
+export class Wot {
+    constructor(maxCert: number);
+
+    clear(): void;
+
+    getMaxCert(): number;
+
+    setMaxCert(maxCert: number): void;
+
+    addNode(): number;
+
+    removeNode(): number;
+
+    getWoTSize(): number;
+
+    isEnabled(node_id: number): boolean;
+
+    getEnabled(): number[];
+
+    setEnabled(enabled: boolean, node_id: number): boolean;
+
+    getDisabled(): number[];
+
+    getSentries(sentry_requirement: number): number[];
+
+    getNonSentries(sentry_requirement: number): number[];
+
+    addLink(source: number, target: number): number;
+
+    existsLink(source: number, target: number): boolean;
+
+    removeLink(source: number, target: number): number;
+
+    isOutdistanced(
+        node_id: number,
+        sentry_requirement: number,
+        step_max: number,
+        x_percent: number
+    ): boolean;
+
+    detailedDistance(
+        nde_id: number,
+        sentry_requirement: number,
+        step_max: number,
+        x_percent: number
+    ): DetailedDistance;
+
+    getPaths(source: number, target: number, step_max: number): number[][];
+
+    writeInFile(file_path: string): boolean;
+
+    dump(): string;
+}
diff --git a/neon/native/artifacts.json b/neon/native/artifacts.json
index 3f346e098060aa63ab49162d2e1b63335e8b2b02..837b6fb098085aa2c03e9f16f2d3012e99586b67 100644
--- a/neon/native/artifacts.json
+++ b/neon/native/artifacts.json
@@ -1 +1 @@
-{"active":"release","targets":{"debug":{"rustc":"","env":{"npm_config_target":null,"npm_config_arch":null,"npm_config_target_arch":null,"npm_config_disturl":null,"npm_config_runtime":null,"npm_config_build_from_source":null,"npm_config_devdir":null}},"release":{"rustc":"","env":{"npm_config_target":null,"npm_config_arch":null,"npm_config_target_arch":null,"npm_config_disturl":null,"npm_config_runtime":null,"npm_config_build_from_source":null,"npm_config_devdir":null}}}}
\ No newline at end of file
+{"active":"debug","targets":{"debug":{"rustc":"","env":{"npm_config_target":null,"npm_config_arch":null,"npm_config_target_arch":null,"npm_config_disturl":null,"npm_config_runtime":null,"npm_config_build_from_source":null,"npm_config_devdir":null}},"release":{"rustc":"","env":{"npm_config_target":null,"npm_config_arch":null,"npm_config_target_arch":null,"npm_config_disturl":null,"npm_config_runtime":null,"npm_config_build_from_source":null,"npm_config_devdir":null}}}}
\ No newline at end of file
diff --git a/package.json b/package.json
index b73e9bf37b6ae57dfbda53fb5ae4ecce08fff04d..bb61389a3fe0445949d1cb5d7563c191643771b9 100644
--- a/package.json
+++ b/package.json
@@ -29,8 +29,8 @@
     "doc": "typedoc --out typedoc/ index.ts app/ --mode file --readme README.md --includeDeclarations --sourcefile-url-prefix \"https://git.duniter.org/nodes/typescript/duniter/blob/loki/\"",
     "test": "nyc --reporter html mocha",
     "start": "node bin/duniter start",
-    "build": "cd neon && neon build --release && cd.. && tsc && cd \"../node_modules/duniter-ui\" && npm install && npm run build",
-    "install": "cd neon && neon build --release",
+    "build": "./neon/build.sh && cd.. && tsc && cd \"../node_modules/duniter-ui\" && npm install && npm run build",
+    "install": "./neon/build.sh",
     "lint": "lint-staged",
     "prettier": "prettier --write app/**/*/*.ts",
     "reformat": "eslint --cache --fix app/**/*/*.ts",