diff --git a/bindings/channels.go b/bindings/channels.go
index ab47f58ab97d2122afb7b00690fa7b2c6ff9f15f..21a375527730b4e6485afb54a564600c59684331 100644
--- a/bindings/channels.go
+++ b/bindings/channels.go
@@ -167,6 +167,38 @@ func NewChannelsManagerGoEventModel(e2eID, udID int,
 	return channelManagerTrackerSingleton.make(m), nil
 }
 
+// NewChannelsManagerGoEventModelDummyNameService constructs a
+// ChannelsManager. This is not compatible with GoMobile Bindings because
+// it receives the go event model. This uses the dummy name service
+// and is for debugging only
+// Parameters:
+//  - e2eID - The tracked e2e object ID. This can be retrieved using
+//    [E2e.GetID].
+//  - udID - The tracked UD object ID. This can be retrieved using
+//    [UserDiscovery.GetID].
+func NewChannelsManagerGoEventModelDummyNameService(e2eID int, username string,
+	goEvent channels.EventModel) (*ChannelsManager, error) {
+	// Get user from singleton
+	user, err := e2eTrackerSingleton.get(e2eID)
+	if err != nil {
+		return nil, err
+	}
+
+	rng := user.api.GetRng().GetStream()
+	defer rng.Close()
+
+	nameService, err := channels.NewDummyNameService(username, rng)
+	if err != nil {
+		return nil, err
+	}
+	// Construct new channels manager
+	m := channels.NewManager(user.api.GetStorage().GetKV(), user.api.GetCmix(),
+		user.api.GetRng(), nameService, goEvent)
+
+	// Add channel to singleton and return
+	return channelManagerTrackerSingleton.make(m), nil
+}
+
 type ChannelGeneration struct {
 	Channel    string
 	PrivateKey string
diff --git a/channels/dummyNameServer.go b/channels/dummyNameServer.go
new file mode 100644
index 0000000000000000000000000000000000000000..6b0bd7c2daec61286292b9fbb6f8333d2ce5a6b9
--- /dev/null
+++ b/channels/dummyNameServer.go
@@ -0,0 +1,78 @@
+package channels
+
+import (
+	"crypto/ed25519"
+	jww "github.com/spf13/jwalterweatherman"
+	"gitlab.com/elixxir/crypto/channel"
+	"io"
+	"time"
+)
+
+// NewDummyNameService returns a dummy object adhering to the name service
+// This neither produces valid signatures or validates passed signature
+// is is for Development and Debugging purposes only
+func NewDummyNameService(username string, rng io.Reader) (NameService, error) {
+	jww.WARN.Printf("Creating a Dummy Name Service. This is for " +
+		"development and debugging only. It does not produce valid " +
+		"signatures or verify passed signatures. YOU SHOULD NEVER SEE THIS " +
+		"MESSAGE IN PRODUCTION")
+
+	dns := &dummyNameService{
+		username: username,
+		lease:    time.Now().Add(35 * 24 * time.Hour),
+	}
+
+	//generate the private key
+	var err error
+	dns.public, dns.private, err = ed25519.GenerateKey(rng)
+	if err != nil {
+		return nil, err
+	}
+
+	//generate a dummy user discover identity to produce a validation signature
+	//just sign with our own key, it wont be evaluated anyhow
+	dns.validationSig = channel.SignChannelLease(dns.public, dns.username,
+		dns.lease, dns.private)
+
+	return dns, nil
+}
+
+type dummyNameService struct {
+	private       ed25519.PrivateKey
+	public        ed25519.PublicKey
+	username      string
+	validationSig []byte
+	lease         time.Time
+}
+
+func (dns *dummyNameService) GetUsername() string {
+	return dns.username
+}
+
+func (dns *dummyNameService) GetChannelValidationSignature() ([]byte, time.Time) {
+	jww.WARN.Printf("GetChannelValidationSignature called on Dummy Name " +
+		"Service, dummy signature from a random key returned - identity not " +
+		"proven. YOU SHOULD NEVER SEE THIS MESSAGE IN PRODUCTION")
+	return dns.validationSig, dns.lease
+}
+
+func (dns *dummyNameService) GetChannelPubkey() ed25519.PublicKey {
+	return dns.public
+}
+
+func (dns *dummyNameService) SignChannelMessage(message []byte) (signature []byte, err error) {
+	jww.WARN.Printf("SignChannelMessage called on Dummy Name Service, " +
+		"signature from a random key - identity not proven. YOU SHOULD " +
+		"NEVER SEE THIS MESSAGE IN PRODUCTION")
+	sig := ed25519.Sign(dns.private, message)
+	return sig, nil
+}
+
+func (dns *dummyNameService) ValidateChannelMessage(username string, lease time.Time,
+	pubKey ed25519.PublicKey, authorIDSignature []byte) bool {
+	//ignore the authorIDSignature
+	jww.WARN.Printf("ValidateChannelMessage called on Dummy Name Service, " +
+		"no validation done - identity not validated. YOU SHOULD NEVER SEE " +
+		"THIS MESSAGE IN PRODUCTION")
+	return true
+}
diff --git a/channels/nameService.go b/channels/nameService.go
index 0884cb9ec31205f0d952a6f93248a5ffde5d701b..f1d93b876228e6c13aae6fb6e2147cd82d076787 100644
--- a/channels/nameService.go
+++ b/channels/nameService.go
@@ -21,7 +21,7 @@ type NameService interface {
 
 	// GetChannelValidationSignature returns the validation
 	// signature and the time it was signed.
-	GetChannelValidationSignature() (signature []byte, lease time.Time)
+	GetChannelValidationSignature() ([]byte, time.Time)
 
 	// GetChannelPubkey returns the user's public key.
 	GetChannelPubkey() ed25519.PublicKey