diff --git a/changes/1.5.0.md b/changes/1.5.0.md
index 70cd02f2245192519575e9daf11cde33bef478cf..9cc7d42098c87823aa46f9ae62b2a5c9a234a419 100644
--- a/changes/1.5.0.md
+++ b/changes/1.5.0.md
@@ -25,7 +25,7 @@ Seata 鏄竴娆惧紑婧愮殑鍒嗗竷寮忎簨鍔¤В鍐虫柟妗堬紝鎻愪緵楂樻€ц兘鍜岀畝鍗�
   - [[#3427](https://github.com/seata/seata/pull/3427)] 娣诲姞鍒嗗竷寮忛攣鎺ュ彛
   - [[#3443](https://github.com/seata/seata/pull/3443)] 灏哷seata-server`鐨勬棩蹇楀彂閫佸埌`logstash`鎴朻kafka`涓紝鍐嶅瓨鍏ElasticSearch`
   - [[#3486](https://github.com/seata/seata/pull/3486)] Metrics澧炲姞浜嬪姟鍒嗙粍灞炴€�
-  
+
 
   ### bugfix锛�
 
@@ -63,6 +63,7 @@ Seata 鏄竴娆惧紑婧愮殑鍒嗗竷寮忎簨鍔¤В鍐虫柟妗堬紝鎻愪緵楂樻€ц兘鍜岀畝鍗�
   - [[#3415](https://github.com/seata/seata/pull/3415)] 浼樺寲 maven clean 鎻掍欢鍙竻闄� distribution 鐩綍
   - [[#3316](https://github.com/seata/seata/pull/3316)] 浼樺寲璇诲彇閰嶇疆鍊兼椂锛屽睘鎬ean鍙兘鏈垵濮嬪寲  
   - [[#3420](https://github.com/seata/seata/pull/3420)] 浼樺寲鏋氫妇绫诲苟娣诲姞鍗曞厓娴嬭瘯
+  - [[#3533](https://github.com/seata/seata/pull/3533)] 娣诲姞鑾峰彇褰撳墠瀵瑰簲浜嬪姟瑙掕壊鎺ュ彛
   - [[#3436](https://github.com/seata/seata/pull/3436)] 浼樺寲SQLType绫讳腑鐨勯敊鍒瓧
   - [[#3439](https://github.com/seata/seata/pull/3439)] 璋冩暣springApplicationContextProvider鐨勯『搴忎互浣垮緱浠栧彲浠ュ湪xml鐨刡ean涔嬪墠琚皟鐢�
   - [[#3156](https://github.com/seata/seata/pull/3156)] 浼樺寲SpringProxyUtils.findTargetClass鐨勯€昏緫
diff --git a/changes/en-us/1.5.0.md b/changes/en-us/1.5.0.md
index 048729d8d7870e3802b5fcdae64c116d76958b7d..38d6e661471341316c1f5dd31cf9e6aa0724bd4b 100644
--- a/changes/en-us/1.5.0.md
+++ b/changes/en-us/1.5.0.md
@@ -65,6 +65,7 @@
   - [[#3415](https://github.com/seata/seata/pull/3415)] optimize maven clean plugin to clear the distribution directory 	
   - [[#3316](https://github.com/seata/seata/pull/3316)] optimize the property bean may not be initialized while reading config value	
   - [[#3420](https://github.com/seata/seata/pull/3420)] optimize enumerated classes and add unit tests	
+  - [[#3533](https://github.com/seata/seata/pull/3533)] added interface to get current transaction role
   - [[#3436](https://github.com/seata/seata/pull/3436)] optimize typo in SQLType class 	
   - [[#3439](https://github.com/seata/seata/pull/3439)] adjust the order of springApplicationContextProvider
   - [[#3156](https://github.com/seata/seata/pull/3156)] optimize the logic of SpringProxyUtils.findTargetClass
@@ -77,11 +78,11 @@
                                                         
 
   
-  
+
   ### test	
 
   - [[#3381](https://github.com/seata/seata/pull/3381)] test case for tmClient	
-  
+
 
   Thanks to these contributors for their code commits. Please report an unintended omission.  	
 
@@ -107,7 +108,7 @@
   - [github-ganyu](https://github.com/github-ganyu)
   - [xuande](https://github.com/xuande)
   - [tanggen](https://github.com/tanggen)
-  
+
 
   Also, we receive many valuable issues, questions and advices from our community. Thanks for you all.	
 
diff --git a/test/src/test/java/io/seata/saga/engine/mock/MockGlobalTransaction.java b/test/src/test/java/io/seata/saga/engine/mock/MockGlobalTransaction.java
index 14d926f7f36e7d91f182a52b64e80697e12a8df2..4d112b09122decde8f013b69e0ee3998f5342b19 100644
--- a/test/src/test/java/io/seata/saga/engine/mock/MockGlobalTransaction.java
+++ b/test/src/test/java/io/seata/saga/engine/mock/MockGlobalTransaction.java
@@ -20,6 +20,7 @@ import io.seata.core.exception.TransactionException;
 import io.seata.core.model.GlobalStatus;
 import io.seata.saga.engine.sequence.SpringJvmUUIDSeqGenerator;
 import io.seata.tm.api.GlobalTransaction;
+import io.seata.tm.api.GlobalTransactionRole;
 import io.seata.tm.api.transaction.SuspendedResourcesHolder;
 
 /**
@@ -102,4 +103,10 @@ public class MockGlobalTransaction implements GlobalTransaction {
     public GlobalStatus getLocalStatus() {
         return status;
     }
+
+    @Override
+    public GlobalTransactionRole getGlobalTransactionRole() {
+        return null;
+    }
+
 }
diff --git a/tm/src/main/java/io/seata/tm/api/DefaultGlobalTransaction.java b/tm/src/main/java/io/seata/tm/api/DefaultGlobalTransaction.java
index 25d753243b598287fe15fa78fdde2dad14d84d30..ccda35263f68c96ad0c81598b2cf173eab4961f8 100644
--- a/tm/src/main/java/io/seata/tm/api/DefaultGlobalTransaction.java
+++ b/tm/src/main/java/io/seata/tm/api/DefaultGlobalTransaction.java
@@ -243,6 +243,11 @@ public class DefaultGlobalTransaction implements GlobalTransaction {
         return status;
     }
 
+    @Override
+    public GlobalTransactionRole getGlobalTransactionRole() {
+        return role;
+    }
+
     private void assertXIDNotNull() {
         if (xid == null) {
             throw new IllegalStateException();
diff --git a/tm/src/main/java/io/seata/tm/api/GlobalTransaction.java b/tm/src/main/java/io/seata/tm/api/GlobalTransaction.java
index 959e1d50ca07b83b3f7e9fa70138b7728b34371b..666f748bd77b553db8ed8edf6642fa282ece5653 100644
--- a/tm/src/main/java/io/seata/tm/api/GlobalTransaction.java
+++ b/tm/src/main/java/io/seata/tm/api/GlobalTransaction.java
@@ -123,4 +123,13 @@ public interface GlobalTransaction {
      * @see GlobalStatus
      */
     GlobalStatus getLocalStatus();
+
+    /**
+     * get global transaction role.
+     *
+     * @return global transaction Role.
+     * @see GlobalTransactionRole
+     */
+    GlobalTransactionRole getGlobalTransactionRole();
+
 }