diff --git a/basice2e/client-registrar.yaml b/basice2e/client-registrar.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..8187c687401d0ae78e1cfe49af219e2f651e12a3
--- /dev/null
+++ b/basice2e/client-registrar.yaml
@@ -0,0 +1,36 @@
+# ==================================
+# Client Registrar Configuration
+# ==================================
+
+# Log message level (0 = info, 1 = debug, >1 = trace)
+logLevel: 0
+# Path to log file
+logPath: "results/client-registrar.log"
+
+# Public address, used in NDF it gives to client
+publicAddress: "0.0.0.0:11421"
+# The listening port of this server
+port: 11421
+
+# === REQUIRED FOR ENABLING TLS ===
+# Path to the registration server private key file
+keyPath: "../keys/cmix.rip.key"
+# Path to the registration server certificate file
+certPath: "../keys/cmix.rip.crt"
+
+# Maximum number of connections per period
+userRegCapacity: 1000
+# How often the number of connections is reset
+userRegLeakPeriod: "24h"
+
+# Database connection information
+dbUsername: "cmix"
+dbPassword: ""
+dbName: "cmix_server"
+dbAddress: ""
+
+# List of client codes to be added to the database (for testing)
+clientRegCodes:
+  - "AAAA"
+  - "BBBB"
+  - "CCCC"
diff --git a/basice2e/permissioning.yaml b/basice2e/permissioning.yaml
index 9ff894fe0a3feedbf875633cc8cc9f241b76f547..d6146bda8b5eb16dfd344a3d6ca7795ea47818fd 100644
--- a/basice2e/permissioning.yaml
+++ b/basice2e/permissioning.yaml
@@ -91,4 +91,7 @@ RegCodesFilePath: "regCodes.json"
 # Set address space size for ephemeral IDs
 addressSpace: 32
 
-randomGeoBinning: true
\ No newline at end of file
+randomGeoBinning: true
+
+# Public address used in NDF to give to client
+registrationAddress: "0.0.0.0:11421"
\ No newline at end of file
diff --git a/basice2e/run.sh b/basice2e/run.sh
index e02b4c539e6a03f189e3075f158e8cf420c6d187..d3847418e3070fc5d56146fa0ffc8e3573f0efde 100755
--- a/basice2e/run.sh
+++ b/basice2e/run.sh
@@ -67,6 +67,14 @@ then
     PIDVAL=$!
     echo "$PERMCMD -- $PIDVAL"
 
+
+    # Run Client Registrar
+    CLIENT_REG_CMD="../bin/client-registrar \
+    -l 2 -c client-registrar.yaml"
+    $CLIENT_REG_CMD > results/client-registrat-console.txt 2>&1 &
+    PIDVAL=$!
+    echo "$CLIENT_REG_CMD -- $PIDVAL"
+
     for SERVERID in $(seq 5 -1 1)
     do
         IDX=$(($SERVERID - 1))
diff --git a/download_cmix_binaries.sh b/download_cmix_binaries.sh
index a8a332aaabf0978b3b52c0464951f63c10bb1605..7ede87f1077a3ba4d336e38d1bf84e6e6f508224 100755
--- a/download_cmix_binaries.sh
+++ b/download_cmix_binaries.sh
@@ -49,7 +49,7 @@ fi
 # Set up the URL for downloading the binaries
 DEFAULTBRANCH=${DEFAULTBRANCH:="release"}
 if [[ $USEREPO == "d" ]]; then
-    REPOS_API=${REPOS_API:="https://git.xx.network/api/v4/projects/elixxir%2F"}
+    REPOS_API=${REPOS_API:="https://gitlab.com/api/v4/projects/elixxir%2F"}
 else
     REPOS_API=${REPOS_API:="https://elixxir-bins.s3-us-west-1.amazonaws.com"}
 fi
@@ -85,12 +85,14 @@ for BRANCH in $(echo "forcedbranch" $FBRANCH $FBRANCH2 $DEFAULTBRANCH); do
         SERVER_GPU_URL=${SERVER_GPU_URL:="${REPOS_API}server/$BRANCH_URL/server-cuda.linux64?job=build"}
         GPULIB_URL=${GPULIB_URL:="${REPOS_API}server/$BRANCH_URL/libpowmosm75.so?job=build"}
         GPULIB2_URL=${GPULIB2_URL:="${REPOS_API}server/$BRANCH_URL/libpow.fatbin?job=build"}
+        CLIENT_REG_URL=${CLIENT_REG_URL:="${REPOS_API}client-registrar/$BRANCH_URL/registration$BIN"}
     else
         UDB_URL=${UDB_URL:="${REPOS_API}/$BRANCH/udb$BIN"}
         SERVER_URL=${SERVER_URL:="${REPOS_API}/$BRANCH/server$BIN"}
         GW_URL=${GW_URL:="${REPOS_API}/$BRANCH/gateway$BIN"}
         PERMISSIONING_URL=${PERMISSIONING_URL:="${REPOS_API}/$BRANCH/registration.stateless$BIN"}
         CLIENT_URL=${CLIENT_URL:="${REPOS_API}/$BRANCH/client$BIN"}
+        CLIENT_REG_URL=${CLIENT_REG_URL:="${REPOS_API}client-registrar/$BRANCH_URL/registration$BIN"}
     fi
 
     set -x
@@ -120,6 +122,11 @@ for BRANCH in $(echo "forcedbranch" $FBRANCH $FBRANCH2 $DEFAULTBRANCH); do
         curl -s -f -L -H "PRIVATE-TOKEN: $GITLAB_ACCESS_TOKEN" -o "$download_path/client" ${CLIENT_URL}
     fi
 
+        # Silently download the client registrar binary to the provisioning directory
+    if [ ! -f $download_path/client-registrar ] && [[ "$CLIENT_REG_URL" != *"forcedbranch"* ]]; then
+        curl -s -f -L -H "PRIVATE-TOKEN: $GITLAB_ACCESS_TOKEN" -o "$download_path/client-registrar" ${CLIENT_REG_URL}
+    fi
+
 if [[ $2 == "d" ]]; then
     # Silently download the Server binary to the provisioning directory
     if [ ! -f $download_path/server-cuda ] && [[ "$SERVER_GPU_URL" != *"forcedbranch"* ]]; then
@@ -134,6 +141,11 @@ if [[ $2 == "d" ]]; then
     if [ ! -f $download_path/libpow.fatbin ] && [[ "$GPULIB2_URL" != *"forcedbranch"* ]]; then
         curl -s -f -L -H "PRIVATE-TOKEN: $GITLAB_ACCESS_TOKEN" -o "$download_path/libpow.fatbin" ${GPULIB2_URL}
     fi
+
+        # Silently download the client registrar binary to the provisioning directory
+    if [ ! -f $download_path/client-registrar ] && [[ "$CLIENT_REG_URL" != *"forcedbranch"* ]]; then
+        curl -s -f -L -H "PRIVATE-TOKEN: $GITLAB_ACCESS_TOKEN" -o "$download_path/client-registrar" ${CLIENT_REG_URL}
+    fi
 fi
 
     set +x
@@ -148,6 +160,7 @@ fi
     unset SERVER_GPU_URL
     unset GPULIB_URL
     unset GPULIB2_URL
+    unset CLIENT_REG_URL
 done
 
 # Make binaries executable