diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 6c45fcf9..a22cedf4 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -33,6 +33,21 @@ jobs:
         run: |
           domain-list-community
 
+      - name: Generate dlc.dat sha256 hash
+        run: |
+          sha256sum dlc.dat > dlc.dat.sha256sum
+
+      - name: Git push assets to "release" branch
+        run: |
+          git init
+          git config --local user.name "${{ github.actor }}"
+          git config --local user.email "${{ github.actor }}@users.noreply.github.com"
+          git checkout -b release
+          git add dlc.dat dlc.dat.sha256sum
+          git commit -m "${{ env.RELEASE_NAME }}"
+          git remote add origin "https://${{ github.actor }}:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}"
+          git push -f -u origin release
+
       - name: Create a release
         id: create_release
         uses: actions/create-release@v1
@@ -44,8 +59,7 @@ jobs:
           draft: false
           prerelease: false
 
-      - name: Upload dat file
-        id: upload-release-asset 
+      - name: Upload dlc.dat
         uses: actions/upload-release-asset@v1
         env:
           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -54,3 +68,13 @@ jobs:
           asset_path: ./dlc.dat
           asset_name: dlc.dat
           asset_content_type: application/octet-stream
+
+      - name: Upload dlc.dat sha256sum
+        uses: actions/upload-release-asset@v1
+        env:
+          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+        with:
+          upload_url: ${{ steps.create_release.outputs.upload_url }}
+          asset_path: ./dlc.dat.sha256sum
+          asset_name: dlc.dat.sha256sum
+          asset_content_type: text/plain
diff --git a/README.md b/README.md
index f424be49..3124c1b2 100644
--- a/README.md
+++ b/README.md
@@ -6,6 +6,11 @@ This project manages a list of domains, to be used as geosites for routing purpo
 
 This project is not opinionated. In other words, it does NOT endorse, claim or imply that a domain should be blocked or proxied. It can be used to generate routing rules on demand.
 
+## Download links
+
+- **dlc.dat**:[https://github.com/v2ray/domain-list-community/raw/release/dlc.dat](https://github.com/v2ray/domain-list-community/raw/release/dlc.dat)
+- **dlc.dat.sha256sum**:[https://github.com/v2ray/domain-list-community/raw/release/dlc.dat.sha256sum](https://github.com/v2ray/domain-list-community/raw/release/dlc.dat.sha256sum)
+
 ## Structure of data
 
 All data are under `data/` directory. Each file in the directory represents a sub-list of domains, named by the file name. File content is in the following format.