diff --git a/core/vm/eips.go b/core/vm/eips.go
index 89e76c0271fa48002e482716b096c0a5c2a01dea..6e7259d405443fdbe9ac0e957ea657eac63e9421 100644
--- a/core/vm/eips.go
+++ b/core/vm/eips.go
@@ -18,7 +18,7 @@ package vm
 
 import (
 	"fmt"
-	
+
 	"github.com/ethereum/go-ethereum/params"
 )
 
@@ -29,6 +29,8 @@ func EnableEIP(eipNum int, jt *JumpTable) error {
 	switch eipNum {
 	case 1884:
 		enable1884(jt)
+	case 1344:
+		enable1344(jt)
 	default:
 		return fmt.Errorf("undefined eip %d", eipNum)
 	}
@@ -61,3 +63,23 @@ func opSelfBalance(pc *uint64, interpreter *EVMInterpreter, contract *Contract,
 	stack.push(balance)
 	return nil, nil
 }
+
+// enable1344 applies EIP-1344 (ChainID Opcode)
+// - Adds an opcode that returns the current chain’s EIP-155 unique identifier
+func enable1344(jt *JumpTable) {
+	// New opcode
+	jt[CHAINID] = operation{
+		execute:     opChainID,
+		constantGas: GasQuickStep,
+		minStack:    minStack(0, 1),
+		maxStack:    maxStack(0, 1),
+		valid:       true,
+	}
+}
+
+// opChainID implements CHAINID opcode
+func opChainID(pc *uint64, interpreter *EVMInterpreter, contract *Contract, memory *Memory, stack *Stack) ([]byte, error) {
+	chainId := interpreter.intPool.get().Set(interpreter.evm.chainConfig.ChainID)
+	stack.push(chainId)
+	return nil, nil
+}
diff --git a/core/vm/opcodes.go b/core/vm/opcodes.go
index b385fd14adf1aa60c78a72658a549df3ab8d6b5d..ba0ba01b8f03f5e97b06495d328fb123538763f8 100644
--- a/core/vm/opcodes.go
+++ b/core/vm/opcodes.go
@@ -101,6 +101,7 @@ const (
 	NUMBER
 	DIFFICULTY
 	GASLIMIT
+	CHAINID     = 0x46
 	SELFBALANCE = 0x47
 )
 
@@ -278,6 +279,7 @@ var opCodeToString = map[OpCode]string{
 	NUMBER:      "NUMBER",
 	DIFFICULTY:  "DIFFICULTY",
 	GASLIMIT:    "GASLIMIT",
+	CHAINID:     "CHAINID",
 	SELFBALANCE: "SELFBALANCE",
 
 	// 0x50 range - 'storage' and execution.
@@ -430,6 +432,7 @@ var stringToOp = map[string]OpCode{
 	"CALLDATALOAD":   CALLDATALOAD,
 	"CALLDATASIZE":   CALLDATASIZE,
 	"CALLDATACOPY":   CALLDATACOPY,
+	"CHAINID":        CHAINID,
 	"DELEGATECALL":   DELEGATECALL,
 	"STATICCALL":     STATICCALL,
 	"CODESIZE":       CODESIZE,