diff --git a/base-x/base-x-tests.ts b/base-x/base-x-tests.ts
new file mode 100644
index 000000000..3e082c45b
--- /dev/null
+++ b/base-x/base-x-tests.ts
@@ -0,0 +1,14 @@
+///
+
+import * as basex from 'base-x';
+
+let bs16: BaseX.BaseConverter = basex('0123456789ABCDEF');
+
+{
+ let encoded: string;
+
+ encoded = bs16.encode([255]);
+ encoded = bs16.encode({0: 255, length: 1});
+}
+
+let decoded: number[] = bs16.decode('FF');
diff --git a/base-x/base-x.d.ts b/base-x/base-x.d.ts
new file mode 100644
index 000000000..681a05806
--- /dev/null
+++ b/base-x/base-x.d.ts
@@ -0,0 +1,28 @@
+// Type definitions for base-x v1.0.1
+// Project: https://github.com/cryptocoinjs/base-x
+// Definitions by: Ilya Mochalov
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+declare namespace BaseX {
+ interface EncodeBuffer {
+ [index: number]: number;
+ length: number;
+ }
+
+ interface BaseConverter {
+ encode: (buffer: EncodeBuffer) => string;
+ decode: (string: string) => number[];
+ }
+
+ interface Base {
+ (ALPHABET: string): BaseX.BaseConverter
+ }
+}
+
+declare module "base-x" {
+ namespace base {}
+
+ let base: BaseX.Base;
+
+ export = base;
+}
diff --git a/bs58/bs58-tests.ts b/bs58/bs58-tests.ts
new file mode 100644
index 000000000..801646926
--- /dev/null
+++ b/bs58/bs58-tests.ts
@@ -0,0 +1,12 @@
+///
+
+import * as bs58 from 'bs58';
+
+{
+ let encoded: string;
+
+ encoded = bs58.encode([255]);
+ encoded = bs58.encode({0: 255, length: 1});
+}
+
+let decoded: number[] = bs58.decode('5Q');
diff --git a/bs58/bs58.d.ts b/bs58/bs58.d.ts
new file mode 100644
index 000000000..02b1cd318
--- /dev/null
+++ b/bs58/bs58.d.ts
@@ -0,0 +1,14 @@
+// Type definitions for bs58 3.0.0
+// Project: https://github.com/cryptocoinjs/bs58
+// Definitions by: Ilya Mochalov
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+///
+
+declare module "bs58" {
+ namespace base58 {}
+
+ let base58: BaseX.BaseConverter;
+
+ export = base58;
+}