diff --git a/ts_src/ecpair.ts b/ts_src/ecpair.ts
index 5c31e7f..18c0c9e 100644
--- a/ts_src/ecpair.ts
+++ b/ts_src/ecpair.ts
@@ -22,8 +22,8 @@ interface ECPairOptions {
 export interface ECPairInterface {
   compressed: boolean;
   network: Network;
+  publicKey: Buffer;
   privateKey?: Buffer;
-  publicKey?: Buffer;
   toWIF(): string;
   sign(hash: Buffer): Buffer;
   verify(hash: Buffer, signature: Buffer): boolean;
@@ -51,8 +51,9 @@ class ECPair implements ECPairInterface {
     return this.__D;
   }
 
-  get publicKey(): Buffer | undefined {
-    if (!this.__Q) this.__Q = ecc.pointFromScalar(this.__D, this.compressed);
+  get publicKey(): Buffer {
+    if (!this.__Q)
+      this.__Q = ecc.pointFromScalar(this.__D, this.compressed) as Buffer;
     return this.__Q;
   }
 
@@ -77,13 +78,13 @@ function fromPrivateKey(buffer: Buffer, options?: ECPairOptions): ECPair {
     throw new TypeError('Private key not in range [1, n)');
   typeforce(isOptions, options);
 
-  return new ECPair(buffer, undefined, options as ECPairOptions);
+  return new ECPair(buffer, undefined, options);
 }
 
 function fromPublicKey(buffer: Buffer, options?: ECPairOptions): ECPair {
   typeforce(ecc.isPoint, buffer);
   typeforce(isOptions, options);
-  return new ECPair(undefined, buffer, options as ECPairOptions);
+  return new ECPair(undefined, buffer, options);
 }
 
 function fromWIF(wifString: string, network?: Network | Network[]): ECPair {
diff --git a/types/ecpair.d.ts b/types/ecpair.d.ts
index 2cc2c27..896025b 100644
--- a/types/ecpair.d.ts
+++ b/types/ecpair.d.ts
@@ -8,8 +8,8 @@ interface ECPairOptions {
 export interface ECPairInterface {
     compressed: boolean;
     network: Network;
+    publicKey: Buffer;
     privateKey?: Buffer;
-    publicKey?: Buffer;
     toWIF(): string;
     sign(hash: Buffer): Buffer;
     verify(hash: Buffer, signature: Buffer): boolean;
@@ -22,7 +22,7 @@ declare class ECPair implements ECPairInterface {
     network: Network;
     constructor(__D?: Buffer | undefined, __Q?: Buffer | undefined, options?: ECPairOptions);
     readonly privateKey: Buffer | undefined;
-    readonly publicKey: Buffer | undefined;
+    readonly publicKey: Buffer;
     toWIF(): string;
     sign(hash: Buffer): Buffer;
     verify(hash: Buffer, signature: Buffer): boolean;