diff --git a/basice2e/ud-stress.sh b/basice2e/ud-stress.sh
new file mode 100755
index 0000000000000000000000000000000000000000..821680d3c89e90cf42304d28a98913063a7a724d
--- /dev/null
+++ b/basice2e/ud-stress.sh
@@ -0,0 +1,105 @@
+#!/bin/bash
+
+set -e
+
+NETWORKENTRYPOINT=$1
+
+DEBUGLEVEL=${DEBUGLEVEL-1}
+
+RESULTSFOLDER="udresults"
+CLIENTOPTS="--password hello --ndf results/ndf.json --verify-sends --sendDelay 100 --waitTimeout 360 --unsafe-channel-creation -v $DEBUGLEVEL"
+CLIENTUDOPTS="--password hello --ndf results/ndf.json -v $DEBUGLEVEL"
+CLIENTOUT=$RESULTSFOLDER
+
+rm -fr "$RESULTSFOLDER.bak" || true
+cp -ra "$RESULTSFOLDER" "$RESULTSFOLDER.bak" || true
+mkdir -p "$RESULTSFOLDER" || true
+
+if [ "$NETWORKENTRYPOINT" == "betanet" ]
+then
+    NETWORKENTRYPOINT=$(sort -R betanet.txt | head -1)
+elif [ "$NETWORKENTRYPOINT" == "mainnet" ]
+then
+    NETWORKENTRYPOINT=$(sort -R mainnet.txt | head -1)
+elif [ "$NETWORKENTRYPOINT" == "release" ]
+then
+    NETWORKENTRYPOINT=$(sort -R release.txt | head -1)
+elif [ "$NETWORKENTRYPOINT" == "devnet" ]
+then
+    NETWORKENTRYPOINT=$(sort -R devnet.txt | head -1)
+elif [ "$NETWORKENTRYPOINT" == "" ]
+then
+    echo "NO NETWORK SPECIFIED, USING mainnet"
+    NETWORKENTRYPOINT=$(sort -R mainnet.txt | head -1)
+fi
+
+echo "NETWORK: $NETWORKENTRYPOINT"
+
+echo "Connecting to network defined at $NETWORKENTRYPOINT"
+echo $NETWORKENTRYPOINT > "$RESULTSFOLDER/startgwserver.txt"
+
+echo "DOWNLOADING TLS Cert..."
+CMD="openssl s_client -showcerts -connect $(cat $RESULTSFOLDER/startgwserver.txt)"
+echo $CMD
+eval $CMD < /dev/null 2>&1 > "$RESULTSFOLDER/startgwcert.bin"
+CMD="cat $RESULTSFOLDER/startgwcert.bin | openssl x509 -outform PEM"
+echo $CMD
+eval $CMD > "$RESULTSFOLDER/startgwcert.pem"
+head "$RESULTSFOLDER/startgwcert.pem"
+
+echo "DOWNLOADING NDF..."
+CLIENTCMD="../bin/client getndf --gwhost $(cat $RESULTSFOLDER/startgwserver.txt) --cert $RESULTSFOLDER/startgwcert.pem"
+eval $CLIENTCMD >> $RESULTSFOLDER/ndf.json 2>&1 &
+PIDVAL=$!
+echo "$CLIENTCMD -- $PIDVAL"
+wait $PIDVAL
+
+cat $RESULTSFOLDER/ndf.json | jq . | head -5
+
+file $RESULTSFOLDER/ndf.json
+
+if [ ! -s $RESULTSFOLDER/ndf.json ]
+then
+    echo "$RESULTSFOLDER/ndf.json is empty, cannot proceed"
+    exit -1
+fi
+
+# Create session
+if [ ! -s $RESULTSFOLDER/blob13 ]; then
+    echo "CREATING NEW CLIENT..."
+    CLIENTCMD="timeout 360s ../bin/client $CLIENTOPTS -l $CLIENTOUT/client13.log -s $CLIENTOUT/blob13 --writeContact $CLIENTOUT/client13-contact.bin --unsafe -m \"Hello from Client13 to myself, without E2E Encryption\""
+    eval $CLIENTCMD >> $CLIENTOUT/client13.txt &
+    PIDVAL=$!
+    echo "$CLIENTCMD -- $PIDVAL"
+    wait $PIDVAL
+    echo "DONE!"
+else
+    echo "REUSING EXISTING CLIENT..."
+    mv $RESULTSFOLDER/client13.txt $RESULTSFOLDER/client13.txt.bak
+    mv $RESULTSFOLDER/client13.log $RESULTSFOLDER/client13.log.bak
+    CLIENTCMD="timeout 360s ../bin/client $CLIENTOPTS -l $CLIENTOUT/client13.log -s $CLIENTOUT/blob13 --writeContact $CLIENTOUT/client13-contact.bin --unsafe -m \"Hello from Client13 to myself, without E2E Encryption\""
+    eval $CLIENTCMD >> $CLIENTOUT/client13.txt &
+    PIDVAL=$!
+    echo "$CLIENTCMD -- $PIDVAL"
+    wait $PIDVAL
+    echo "DONE!"
+fi
+
+# The following attempts to register a username, not normally needed to be tested...
+# CLIENTCMD="timeout 240s ../bin/client ud $CLIENTUDOPTS -l $CLIENTOUT/client13.log -s $CLIENTOUT/blob13 --register josh13"
+# eval $CLIENTCMD >> $CLIENTOUT/client13.txt &
+# PIDVAL=$!
+# echo "$CLIENTCMD -- $PIDVAL"
+# wait $PIDVAL
+
+
+# Test forever
+while [ true ]; do
+    echo "SEARCHING..."
+    CLIENTCMD="timeout 240s ../bin/client ud $CLIENTUDOPTS -l $CLIENTOUT/client13.log -s $CLIENTOUT/blob13 --searchusername Jake"
+    eval $CLIENTCMD > $CLIENTOUT/josh31.bin &
+    PIDVAL1=$!
+    echo "$CLIENTCMD -- $PIDVAL1"
+    wait $PIDVAL1
+    echo "SUCCESS!"
+done