diff --git a/core/types/transaction_signing.go b/core/types/transaction_signing.go
index e7eb7c5f0cca78018e8cb5d09bc5fc7ef39de28b..b4bab0aad7e8f0c8f500aeedb57b65ca169dbf75 100644
--- a/core/types/transaction_signing.go
+++ b/core/types/transaction_signing.go
@@ -112,6 +112,9 @@ type EIP155Signer struct {
 }
 
 func NewEIP155Signer(chainId *big.Int) EIP155Signer {
+	if chainId == nil {
+		chainId = new(big.Int)
+	}
 	return EIP155Signer{
 		chainId:    chainId,
 		chainIdMul: new(big.Int).Mul(chainId, big.NewInt(2)),