diff --git a/src/ecpair.js b/src/ecpair.js
index 809987e..91fe3a9 100644
--- a/src/ecpair.js
+++ b/src/ecpair.js
@@ -16,6 +16,7 @@ class ECPair {
   constructor(__D, __Q, options) {
     this.__D = __D;
     this.__Q = __Q;
+    this.lowR = false;
     if (options === undefined) options = {};
     this.compressed =
       options.compressed === undefined ? true : options.compressed;
@@ -33,8 +34,9 @@ class ECPair {
     if (!this.__D) throw new Error('Missing private key');
     return wif.encode(this.network.wif, this.__D, this.compressed);
   }
-  sign(hash, lowR = false) {
+  sign(hash, lowR) {
     if (!this.__D) throw new Error('Missing private key');
+    if (lowR === undefined) lowR = this.lowR;
     if (lowR === false) {
       return ecc.sign(hash, this.__D);
     } else {
diff --git a/ts_src/ecpair.ts b/ts_src/ecpair.ts
index c951f76..9052866 100644
--- a/ts_src/ecpair.ts
+++ b/ts_src/ecpair.ts
@@ -36,6 +36,7 @@ export interface SignerAsync {
 export interface ECPairInterface extends Signer {
   compressed: boolean;
   network: Network;
+  lowR: boolean;
   privateKey?: Buffer;
   toWIF(): string;
   verify(hash: Buffer, signature: Buffer): boolean;
@@ -44,12 +45,14 @@ export interface ECPairInterface extends Signer {
 class ECPair implements ECPairInterface {
   compressed: boolean;
   network: Network;
+  lowR: boolean;
 
   constructor(
     private __D?: Buffer,
     private __Q?: Buffer,
     options?: ECPairOptions,
   ) {
+    this.lowR = false;
     if (options === undefined) options = {};
     this.compressed =
       options.compressed === undefined ? true : options.compressed;
@@ -73,8 +76,9 @@ class ECPair implements ECPairInterface {
     return wif.encode(this.network.wif, this.__D, this.compressed);
   }
 
-  sign(hash: Buffer, lowR: boolean = false): Buffer {
+  sign(hash: Buffer, lowR?: boolean): Buffer {
     if (!this.__D) throw new Error('Missing private key');
+    if (lowR === undefined) lowR = this.lowR;
     if (lowR === false) {
       return ecc.sign(hash, this.__D);
     } else {
diff --git a/types/ecpair.d.ts b/types/ecpair.d.ts
index 8b7d193..07d71d4 100644
--- a/types/ecpair.d.ts
+++ b/types/ecpair.d.ts
@@ -20,6 +20,7 @@ export interface SignerAsync {
 export interface ECPairInterface extends Signer {
     compressed: boolean;
     network: Network;
+    lowR: boolean;
     privateKey?: Buffer;
     toWIF(): string;
     verify(hash: Buffer, signature: Buffer): boolean;
@@ -29,6 +30,7 @@ declare class ECPair implements ECPairInterface {
     private __Q?;
     compressed: boolean;
     network: Network;
+    lowR: boolean;
     constructor(__D?: Buffer | undefined, __Q?: Buffer | undefined, options?: ECPairOptions);
     readonly privateKey: Buffer | undefined;
     readonly publicKey: Buffer;