diff --git a/gateway/endpoint.go b/gateway/endpoint.go
index 8a70be73ebde7f8ea18ac4e4a7a4b9ca9fe8b89d..dbb15f5599183c68ba61227278e501090c111581 100644
--- a/gateway/endpoint.go
+++ b/gateway/endpoint.go
@@ -74,7 +74,7 @@ func (g *Comms) ConfirmNonce(ctx context.Context,
 // Gateway -> Gateway message sharing within a team
 func (g *Comms) ShareMessages(ctx context.Context, msg *messages.AuthenticatedMessage) (*messages.Ack, error) {
 
-	authState, err := g.AuthenticatedReceiver(msg)
+	authState, err := g.AuthenticatedReceiver(msg, ctx)
 	if err != nil {
 		return nil, errors.Errorf("Unable to handle reception of AuthenticatedMessage: %+v", err)
 	}
diff --git a/go.mod b/go.mod
index 84c53bfff905e89c6a78f55d85e8eadfb9bdfb0b..2c9433a6578be4b30fd7450859a0dcb486782da6 100644
--- a/go.mod
+++ b/go.mod
@@ -9,7 +9,7 @@ require (
 	github.com/spf13/jwalterweatherman v1.1.0
 	gitlab.com/elixxir/crypto v0.0.7-0.20210614155844-c1e9c23a6ba7
 	gitlab.com/elixxir/primitives v0.0.3-0.20210614155726-ebcf2d47a527
-	gitlab.com/xx_network/comms v0.0.4-0.20210617183321-d5f4fd71033c
+	gitlab.com/xx_network/comms v0.0.4-0.20210622173957-3c81ba16a735
 	gitlab.com/xx_network/crypto v0.0.5-0.20210614155554-8c333814205b
 	gitlab.com/xx_network/primitives v0.0.4-0.20210617180018-6472489fd418
 	gitlab.com/xx_network/ring v0.0.3-0.20210527191221-ce3f170aabd5
diff --git a/go.sum b/go.sum
index 092d8bf4a17ed227dc557220b7e7be54e1213c1b..9a22b4a7cb8ed89a9c3ca6a49915ee2b1ca6f0e9 100644
--- a/go.sum
+++ b/go.sum
@@ -86,6 +86,8 @@ gitlab.com/elixxir/primitives v0.0.3-0.20210614155726-ebcf2d47a527/go.mod h1:nSm
 gitlab.com/xx_network/comms v0.0.0-20200805174823-841427dd5023/go.mod h1:owEcxTRl7gsoM8c3RQ5KAm5GstxrJp5tn+6JfQ4z5Hw=
 gitlab.com/xx_network/comms v0.0.4-0.20210617183321-d5f4fd71033c h1:qrdft99RsCaXuMOlMBZaQm6JHySt4M+kGBofUyW/RU8=
 gitlab.com/xx_network/comms v0.0.4-0.20210617183321-d5f4fd71033c/go.mod h1:ehwxZxcAQHkJjP5BNkwPNK8/o6avUn0j0iDDiu+nMFc=
+gitlab.com/xx_network/comms v0.0.4-0.20210622173957-3c81ba16a735 h1:U1SATNTQnRQpf57O45Y88gTVnWf+aCkfkS81idZw1i4=
+gitlab.com/xx_network/comms v0.0.4-0.20210622173957-3c81ba16a735/go.mod h1:ehwxZxcAQHkJjP5BNkwPNK8/o6avUn0j0iDDiu+nMFc=
 gitlab.com/xx_network/crypto v0.0.3/go.mod h1:DF2HYvvCw9wkBybXcXAgQMzX+MiGbFPjwt3t17VRqRE=
 gitlab.com/xx_network/crypto v0.0.4/go.mod h1:+lcQEy+Th4eswFgQDwT0EXKp4AXrlubxalwQFH5O0Mk=
 gitlab.com/xx_network/crypto v0.0.5-0.20210614155554-8c333814205b h1:X2Hhg9/IYowxMdI6TTnWj6WW3pnO2vMB/7f4mnu6Muw=
diff --git a/network/instance_test.go b/network/instance_test.go
index c2b749b65a7712916025c7e8ed40505ff7f6584a..7c468159e49e7310f46a47f0b2b79aad8d9726a9 100644
--- a/network/instance_test.go
+++ b/network/instance_test.go
@@ -1204,12 +1204,12 @@ func TestInstance_GetNodeAndGateway(t *testing.T) {
 	}
 
 	if !reflect.DeepEqual(nodeGw.Gateway, expectedGateway) {
-		t.Errorf("Unexpected value in gateway." +
+		t.Errorf("Unexpected value in gateway."+
 			"\n\tExpected: %v\n\tReceived: %v", expectedGateway, nodeGw.Gateway)
 	}
 
 	if !reflect.DeepEqual(nodeGw.Node, expectedNode) {
-		t.Errorf("Unexpected value in node." +
+		t.Errorf("Unexpected value in node."+
 			"\n\tExpected: %v\n\tReceived: %v", expectedNode, nodeGw.Node)
 	}
-}
\ No newline at end of file
+}
diff --git a/node/endpoint.go b/node/endpoint.go
index b77987c91a086ec7e16aa80ba8c2bdd643de6228..661c0b4b92b3d80340ed1bf7ce865dc8635a57a1 100644
--- a/node/endpoint.go
+++ b/node/endpoint.go
@@ -40,7 +40,7 @@ func (s *Comms) RequestToken(context.Context, *messages.Ping) (*messages.AssignT
 // Handle a NewRound event
 func (s *Comms) CreateNewRound(ctx context.Context, msg *messages.AuthenticatedMessage) (*messages.Ack, error) {
 	// Verify the message authentication
-	authState, err := s.AuthenticatedReceiver(msg)
+	authState, err := s.AuthenticatedReceiver(msg, ctx)
 	if err != nil {
 		return nil, errors.Errorf("Unable handles reception of AuthenticatedMessage: %+v", err)
 	}
@@ -59,7 +59,7 @@ func (s *Comms) CreateNewRound(ctx context.Context, msg *messages.AuthenticatedM
 // PostNewBatch polls the first node and sends a batch when it is ready
 func (s *Comms) PostNewBatch(ctx context.Context, msg *messages.AuthenticatedMessage) (*messages.Ack, error) {
 	// Verify the message authentication
-	authState, err := s.AuthenticatedReceiver(msg)
+	authState, err := s.AuthenticatedReceiver(msg, ctx)
 	if err != nil {
 		return nil, errors.Errorf("Unable handles reception of AuthenticatedMessage: %+v", err)
 	}
@@ -80,7 +80,7 @@ func (s *Comms) PostNewBatch(ctx context.Context, msg *messages.AuthenticatedMes
 func (s *Comms) PostPhase(ctx context.Context, msg *messages.AuthenticatedMessage) (*messages.Ack,
 	error) {
 	// Verify the message authentication
-	authState, err := s.AuthenticatedReceiver(msg)
+	authState, err := s.AuthenticatedReceiver(msg, ctx)
 	if err != nil {
 		return nil, errors.Errorf("Unable handles reception of AuthenticatedMessage: %+v", err)
 	}
@@ -106,7 +106,7 @@ func (s *Comms) StreamPostPhase(server pb.Node_StreamPostPhaseServer) error {
 		return errors.Errorf("Unable to extract authentication info: %+v", err)
 	}
 
-	authState, err := s.AuthenticatedReceiver(authMsg)
+	authState, err := s.AuthenticatedReceiver(authMsg, server.Context())
 	if err != nil {
 		return errors.Errorf("Unable handles reception of AuthenticatedMessage: %+v", err)
 	}
@@ -121,7 +121,7 @@ func (s *Comms) GetRoundBufferInfo(ctx context.Context,
 	*pb.RoundBufferInfo, error) {
 
 	// Verify the message authentication
-	authState, err := s.AuthenticatedReceiver(msg)
+	authState, err := s.AuthenticatedReceiver(msg, ctx)
 	if err != nil {
 		return nil, errors.Errorf("Unable handles reception of AuthenticatedMessage: %+v", err)
 	}
@@ -138,7 +138,7 @@ func (s *Comms) RequestNonce(ctx context.Context,
 	msg *messages.AuthenticatedMessage) (*pb.Nonce, error) {
 
 	// Verify the message authentication
-	authState, err := s.AuthenticatedReceiver(msg)
+	authState, err := s.AuthenticatedReceiver(msg, ctx)
 	if err != nil {
 		return nil, errors.Errorf("Unable handles reception of AuthenticatedMessage: %+v", err)
 	}
@@ -165,7 +165,7 @@ func (s *Comms) ConfirmRegistration(ctx context.Context,
 	msg *messages.AuthenticatedMessage) (*pb.RegistrationConfirmation, error) {
 
 	// Verify the message authentication
-	authState, err := s.AuthenticatedReceiver(msg)
+	authState, err := s.AuthenticatedReceiver(msg, ctx)
 	if err != nil {
 		return nil, errors.Errorf("Unable handles reception of AuthenticatedMessage: %+v", err)
 	}
@@ -186,7 +186,7 @@ func (s *Comms) PostPrecompResult(ctx context.Context,
 	msg *messages.AuthenticatedMessage) (*messages.Ack, error) {
 
 	// Verify the message authentication
-	authState, err := s.AuthenticatedReceiver(msg)
+	authState, err := s.AuthenticatedReceiver(msg, ctx)
 	if err != nil {
 		return nil, errors.Errorf("Unable handles reception of AuthenticatedMessage: %+v", err)
 	}
@@ -207,7 +207,7 @@ func (s *Comms) PostPrecompResult(ctx context.Context,
 // FinishRealtime broadcasts to all nodes when the realtime is completed
 func (s *Comms) FinishRealtime(ctx context.Context, msg *messages.AuthenticatedMessage) (*messages.Ack, error) {
 	// Verify the message authentication
-	authState, err := s.AuthenticatedReceiver(msg)
+	authState, err := s.AuthenticatedReceiver(msg, ctx)
 	if err != nil {
 		return nil, errors.Errorf("Unable handles reception of AuthenticatedMessage: %+v", err)
 	}
@@ -229,7 +229,7 @@ func (s *Comms) FinishRealtime(ctx context.Context, msg *messages.AuthenticatedM
 func (s *Comms) GetCompletedBatch(ctx context.Context,
 	msg *messages.AuthenticatedMessage) (*pb.Batch, error) {
 
-	authState, err := s.AuthenticatedReceiver(msg)
+	authState, err := s.AuthenticatedReceiver(msg, ctx)
 	if err != nil {
 		return nil, errors.Errorf("Unable handles reception of AuthenticatedMessage: %+v", err)
 	}
@@ -238,7 +238,7 @@ func (s *Comms) GetCompletedBatch(ctx context.Context,
 
 func (s *Comms) GetMeasure(ctx context.Context, msg *messages.AuthenticatedMessage) (*pb.RoundMetrics, error) {
 	// Verify the message authentication
-	authState, err := s.AuthenticatedReceiver(msg)
+	authState, err := s.AuthenticatedReceiver(msg, ctx)
 	if err != nil {
 		return nil, errors.Errorf("Unable handles reception of AuthenticatedMessage: %+v", err)
 	}
@@ -256,7 +256,7 @@ func (s *Comms) GetMeasure(ctx context.Context, msg *messages.AuthenticatedMessa
 
 // Gateway -> Server unified polling
 func (s *Comms) Poll(ctx context.Context, msg *messages.AuthenticatedMessage) (*pb.ServerPollResponse, error) {
-	authState, err := s.AuthenticatedReceiver(msg)
+	authState, err := s.AuthenticatedReceiver(msg, ctx)
 	if err != nil {
 		return nil, errors.Errorf("Unable handles reception of AuthenticatedMessage: %+v", err)
 	}
@@ -271,7 +271,7 @@ func (s *Comms) Poll(ctx context.Context, msg *messages.AuthenticatedMessage) (*
 }
 
 func (s *Comms) RoundError(ctx context.Context, msg *messages.AuthenticatedMessage) (*messages.Ack, error) {
-	authState, err := s.AuthenticatedReceiver(msg)
+	authState, err := s.AuthenticatedReceiver(msg, ctx)
 	if err != nil {
 		return nil, errors.Errorf("Unable to handle reception of AuthenticatedMessage: %+v", err)
 	}
@@ -286,7 +286,7 @@ func (s *Comms) RoundError(ctx context.Context, msg *messages.AuthenticatedMessa
 
 func (s *Comms) SendRoundTripPing(ctx context.Context, msg *messages.AuthenticatedMessage) (*messages.Ack, error) {
 	// Verify the message authentication
-	authState, err := s.AuthenticatedReceiver(msg)
+	authState, err := s.AuthenticatedReceiver(msg, ctx)
 	if err != nil {
 		return nil, errors.Errorf("Unable handles reception of AuthenticatedMessage: %+v", err)
 	}
@@ -313,7 +313,7 @@ func (s *Comms) GetPermissioningAddress(context.Context, *messages.Ping) (*pb.St
 // Server -> Server initiating multi-party round DH key generation
 func (s *Comms) StartSharePhase(ctx context.Context, msg *messages.AuthenticatedMessage) (*messages.Ack, error) {
 	// Verify the message authentication
-	authState, err := s.AuthenticatedReceiver(msg)
+	authState, err := s.AuthenticatedReceiver(msg, ctx)
 	if err != nil {
 		return nil, errors.Errorf("Unable handles reception of AuthenticatedMessage: %+v", err)
 	}
@@ -332,7 +332,7 @@ func (s *Comms) StartSharePhase(ctx context.Context, msg *messages.Authenticated
 // Server -> Server passing state of multi-party round DH key generation
 func (s *Comms) SharePhaseRound(ctx context.Context, msg *messages.AuthenticatedMessage) (*messages.Ack, error) {
 	// Verify the message authentication
-	authState, err := s.AuthenticatedReceiver(msg)
+	authState, err := s.AuthenticatedReceiver(msg, ctx)
 	if err != nil {
 		return nil, errors.Errorf("Unable handles reception of AuthenticatedMessage: %+v", err)
 	}
@@ -351,7 +351,7 @@ func (s *Comms) SharePhaseRound(ctx context.Context, msg *messages.Authenticated
 // Server -> Server sending multi-party round DH final key
 func (s *Comms) ShareFinalKey(ctx context.Context, msg *messages.AuthenticatedMessage) (*messages.Ack, error) {
 	// Verify the message authentication
-	authState, err := s.AuthenticatedReceiver(msg)
+	authState, err := s.AuthenticatedReceiver(msg, ctx)
 	if err != nil {
 		return nil, errors.Errorf("Unable handles reception of AuthenticatedMessage: %+v", err)
 	}
diff --git a/notificationBot/endpoint.go b/notificationBot/endpoint.go
index 6d3cdd019801c1d53ad03784bf9e44716ea29b0e..7d9426b6f5f74fe663cbe994de252fd637a7eaf8 100644
--- a/notificationBot/endpoint.go
+++ b/notificationBot/endpoint.go
@@ -37,9 +37,9 @@ func (nb *Comms) RequestToken(context.Context, *messages.Ping) (*messages.Assign
 }
 
 // RegisterForNotifications event handler which registers a client with the notification bot
-func (nb *Comms) RegisterForNotifications(_ context.Context, msg *messages.AuthenticatedMessage) (*messages.Ack, error) {
+func (nb *Comms) RegisterForNotifications(ctx context.Context, msg *messages.AuthenticatedMessage) (*messages.Ack, error) {
 	// Check the authState of the message
-	authState, err := nb.AuthenticatedReceiver(msg)
+	authState, err := nb.AuthenticatedReceiver(msg, ctx)
 	if err != nil {
 		return nil, errors.Errorf("Failed to handle reception of AuthenticatedMessage: %+v", err)
 	}
@@ -57,9 +57,9 @@ func (nb *Comms) RegisterForNotifications(_ context.Context, msg *messages.Authe
 }
 
 // UnregisterForNotifications event handler which unregisters a client with the notification bot
-func (nb *Comms) UnregisterForNotifications(_ context.Context, msg *messages.AuthenticatedMessage) (*messages.Ack, error) {
+func (nb *Comms) UnregisterForNotifications(ctx context.Context, msg *messages.AuthenticatedMessage) (*messages.Ack, error) {
 	// Check the authState of the message
-	authState, err := nb.AuthenticatedReceiver(msg)
+	authState, err := nb.AuthenticatedReceiver(msg, ctx)
 	if err != nil {
 		return nil, errors.Errorf("Failed to handle reception of AuthenticatedMessage: %+v", err)
 	}
@@ -76,9 +76,9 @@ func (nb *Comms) UnregisterForNotifications(_ context.Context, msg *messages.Aut
 	return &messages.Ack{}, err
 }
 
-func (nb *Comms) ReceiveNotificationBatch(_ context.Context, msg *messages.AuthenticatedMessage) (*messages.Ack, error) {
+func (nb *Comms) ReceiveNotificationBatch(ctx context.Context, msg *messages.AuthenticatedMessage) (*messages.Ack, error) {
 	// Check the authState of the message
-	authState, err := nb.AuthenticatedReceiver(msg)
+	authState, err := nb.AuthenticatedReceiver(msg, ctx)
 	if err != nil {
 		return nil, errors.Errorf("Failed to handle reception of AuthenticatedMessage: %+v", err)
 	}
diff --git a/notificationBot/registerNotification_test.go b/notificationBot/registerNotification_test.go
index c3fc5ef6e9c392604c80e98bd431e64350dfdc28..cdc093dfc49022291cda0fedc3da65fc9dac1761 100644
--- a/notificationBot/registerNotification_test.go
+++ b/notificationBot/registerNotification_test.go
@@ -8,10 +8,10 @@
 package notificationBot
 
 import (
-	"context"
 	"gitlab.com/elixxir/comms/gateway"
 	"gitlab.com/elixxir/comms/mixmessages"
 	"gitlab.com/elixxir/comms/testkeys"
+	"gitlab.com/elixxir/comms/testutils"
 	"gitlab.com/xx_network/comms/connect"
 	"gitlab.com/xx_network/comms/gossip"
 	"gitlab.com/xx_network/primitives/id"
@@ -40,7 +40,9 @@ func TestRegisterForNotifications(t *testing.T) {
 		gossip.DefaultManagerFlags())
 	defer gw.Shutdown()
 
-	ctx, _ := context.WithCancel(context.Background())
+	ctx, cancel := testutils.NewContextTesting(t)
+	defer cancel()
+	defer ctx.Done()
 
 	//Init host and manager
 	manager := connect.NewManagerTesting(t)
@@ -80,7 +82,9 @@ func TestUnRegisterForNotifications(t *testing.T) {
 	notificationBot := StartNotificationBot(testId, notificationBotAddress,
 		NewImplementation(), certData, keyData)
 	defer notificationBot.Shutdown()
-	ctx, _ := context.WithCancel(context.Background())
+	ctx, cancel := testutils.NewContextTesting(t)
+	defer cancel()
+	defer ctx.Done()
 
 	//Init host and manager
 	manager := connect.NewManagerTesting(t)
diff --git a/registration/endpoint.go b/registration/endpoint.go
index eb33fa8bd9c7523d2e7b8b43505f78cbd32cc403..ff2812c3c5d2553dde63f333cb7a34a0c0356435 100644
--- a/registration/endpoint.go
+++ b/registration/endpoint.go
@@ -86,7 +86,7 @@ func (r *Comms) PollNdf(ctx context.Context, ndfHash *pb.NDFHash) (*pb.NDF, erro
 // Server -> Permissioning unified polling
 func (r *Comms) Poll(ctx context.Context, msg *messages.AuthenticatedMessage) (*pb.PermissionPollResponse, error) {
 	// Create an auth object
-	authState, err := r.AuthenticatedReceiver(msg)
+	authState, err := r.AuthenticatedReceiver(msg, ctx)
 	if err != nil {
 		return nil, errors.Errorf("Unable handles reception of AuthenticatedMessage: %+v", err)
 	}
diff --git a/testutils/utils.go b/testutils/utils.go
index 5d0f0c7ec4e1ce133d626cd4ad2787b292cf431c..6ce547a81bada501f24d2ec782ff6d739f489e39 100644
--- a/testutils/utils.go
+++ b/testutils/utils.go
@@ -8,6 +8,7 @@
 package testutils
 
 import (
+	"context"
 	"crypto/rand"
 	"github.com/pkg/errors"
 	jww "github.com/spf13/jwalterweatherman"
@@ -16,13 +17,14 @@ import (
 	"gitlab.com/xx_network/comms/signature"
 	"gitlab.com/xx_network/crypto/signature/ec"
 	"gitlab.com/xx_network/crypto/signature/rsa"
+	"google.golang.org/grpc/peer"
+	"net"
 	"testing"
+	"time"
 )
 
 const privKeyEncoded = `uVAt6d+y3XW699L3THlcoTA2utw2dhoqnX6821x6OcnOliwX84eajmp45IZ+STw0dUl8uJtZwDKDuHVX6ZpGzg==`
 
-
-
 func LoadPublicKeyTesting(i interface{}) (*rsa.PublicKey, error) {
 	switch i.(type) {
 	case *testing.T:
@@ -137,3 +139,31 @@ func SignRoundInfoEddsa(ri *pb.RoundInfo, key *ec.PrivateKey, i interface{}) err
 	return nil
 
 }
+
+// NewContextTesting constructs a context.Context object on
+// the local Unix default domain (UDP) port
+func NewContextTesting(i interface{}) (context.Context, context.CancelFunc) {
+	switch i.(type) {
+	case *testing.T:
+		break
+	case *testing.M:
+		break
+	case *testing.B:
+		break
+	default:
+		jww.FATAL.Panicf("SignRoundInfoEddsa is restricted to testing only. Got %T", i)
+	}
+
+	protoCtx, cancel := context.WithTimeout(context.Background(),
+		time.Second)
+	timeout := 1 * time.Second
+	conn, err := net.DialTimeout("udp", "0.0.0.0:53", timeout)
+	if err != nil {
+		jww.FATAL.Fatalf("Failed to get a conn object in setup: %v", err)
+	}
+	p := &peer.Peer{
+		Addr: conn.RemoteAddr(),
+	}
+
+	return peer.NewContext(protoCtx, p), cancel
+}
diff --git a/udb/endpoint.go b/udb/endpoint.go
index 55817fcff8a87844c25f9d5ba78e3bdd4083c2b0..69efefd3c0a0daf60fbb4c0e36c32791cfa59aba 100644
--- a/udb/endpoint.go
+++ b/udb/endpoint.go
@@ -41,7 +41,7 @@ func (u *Comms) RequestToken(context.Context, *messages.Ping) (*messages.AssignT
 
 func (u *Comms) RegisterUser(ctx context.Context, msg *messages.AuthenticatedMessage) (*messages.Ack, error) {
 	// Create an auth object
-	authState, err := u.AuthenticatedReceiver(msg)
+	authState, err := u.AuthenticatedReceiver(msg, ctx)
 	if err != nil {
 		return nil, errors.Errorf("Unable handles reception of AuthenticatedMessage: %+v", err)
 	}
@@ -58,7 +58,7 @@ func (u *Comms) RegisterUser(ctx context.Context, msg *messages.AuthenticatedMes
 
 func (u *Comms) RegisterFact(ctx context.Context, msg *messages.AuthenticatedMessage) (*pb.FactRegisterResponse, error) {
 	// Create an auth object
-	authState, err := u.AuthenticatedReceiver(msg)
+	authState, err := u.AuthenticatedReceiver(msg, ctx)
 	if err != nil {
 		return nil, errors.Errorf("Unable handles reception of AuthenticatedMessage: %+v", err)
 	}
@@ -75,7 +75,7 @@ func (u *Comms) RegisterFact(ctx context.Context, msg *messages.AuthenticatedMes
 
 func (u *Comms) ConfirmFact(ctx context.Context, msg *messages.AuthenticatedMessage) (*messages.Ack, error) {
 	// Create an auth object
-	authState, err := u.AuthenticatedReceiver(msg)
+	authState, err := u.AuthenticatedReceiver(msg, ctx)
 	if err != nil {
 		return nil, errors.Errorf("Unable handles reception of AuthenticatedMessage: %+v", err)
 	}
@@ -92,7 +92,7 @@ func (u *Comms) ConfirmFact(ctx context.Context, msg *messages.AuthenticatedMess
 
 func (u *Comms) RemoveFact(ctx context.Context, msg *messages.AuthenticatedMessage) (*messages.Ack, error) {
 	// Create an auth object
-	authState, err := u.AuthenticatedReceiver(msg)
+	authState, err := u.AuthenticatedReceiver(msg, ctx)
 	if err != nil {
 		return nil, errors.Errorf("Unable handles reception of AuthenticatedMessage: %+v", err)
 	}