diff --git a/bindings/fileTransfer.go b/bindings/fileTransfer.go
index 95112911cbc40005332687a985ac82f3376dc9da..a13eb35725a25bdf068da049eb11e31cdc341366 100644
--- a/bindings/fileTransfer.go
+++ b/bindings/fileTransfer.go
@@ -4,7 +4,6 @@ import (
 	"encoding/json"
 	jww "github.com/spf13/jwalterweatherman"
 	"gitlab.com/elixxir/client/catalog"
-	"gitlab.com/elixxir/client/e2e"
 	"gitlab.com/elixxir/client/fileTransfer"
 	ftCrypto "gitlab.com/elixxir/crypto/fileTransfer"
 	"gitlab.com/xx_network/primitives/id"
@@ -89,6 +88,8 @@ type FileTransferReceiveProgressCallback interface {
 // InitFileTransfer creates a bindings-level File Transfer manager
 // Accepts client ID, ReceiveFileCallback and a ReporterFunc
 func InitFileTransfer(e2eID int) (*FileTransfer, error) {
+	paramsJSON := GetDefaultFileTransferParams()
+
 	// Get bindings client from singleton
 	e2eCl, err := e2eTrackerSingleton.get(e2eID)
 	if err != nil {
@@ -99,8 +100,13 @@ func InitFileTransfer(e2eID int) (*FileTransfer, error) {
 	myID := e2eCl.api.GetTransmissionIdentity().ID
 	rng := e2eCl.api.GetRng()
 
+	params, err := parseFileTransferParams(paramsJSON)
+	if err != nil {
+		return nil, err
+	}
+
 	// Create file transfer manager
-	m, err := fileTransfer.NewManager(fileTransfer.DefaultParams(), myID,
+	m, err := fileTransfer.NewManager(params, myID,
 		e2eCl.api.GetCmix(), e2eCl.api.GetStorage(), rng)
 
 	// Add file transfer processes to client services tracking
@@ -116,6 +122,7 @@ func InitFileTransfer(e2eID int) (*FileTransfer, error) {
 // Send is the bindings-level function for sending a File
 func (f *FileTransfer) Send(payload, recipientID []byte, retry float32,
 	period string, callback FileTransferSentProgressCallback) ([]byte, error) {
+	paramsJSON := GetDefaultE2EParams()
 	// Unmarshal recipient ID
 	recipient, err := id.Unmarshal(recipientID)
 	if err != nil {
@@ -146,11 +153,7 @@ func (f *FileTransfer) Send(payload, recipientID []byte, retry float32,
 	}
 
 	sendNew := func(transferInfo []byte) error {
-		params, err := e2e.GetDefaultParams().MarshalJSON()
-		if err != nil {
-			return err
-		}
-		resp, err := f.e2eCl.SendE2E(int(catalog.NewFileTransfer), recipientID, transferInfo, params)
+		resp, err := f.e2eCl.SendE2E(int(catalog.NewFileTransfer), recipientID, transferInfo, paramsJSON)
 		if err != nil {
 			return err
 		}
diff --git a/bindings/params.go b/bindings/params.go
index 860c1fbcd1077201c2d285d84af37881fe54e8eb..8a83e63281f4d92306bb8d97b12727fbaf2c2f5e 100644
--- a/bindings/params.go
+++ b/bindings/params.go
@@ -11,6 +11,8 @@ package bindings
 
 import (
 	jww "github.com/spf13/jwalterweatherman"
+	"gitlab.com/elixxir/client/fileTransfer"
+	"gitlab.com/elixxir/client/single"
 	"gitlab.com/elixxir/client/xxdk"
 )
 
@@ -38,6 +40,34 @@ func GetDefaultE2EParams() []byte {
 	return data
 }
 
+func GetDefaultFileTransferParams() []byte {
+	defaultParams := fileTransfer.DefaultParams()
+	data, err := defaultParams.MarshalJSON()
+	if err != nil {
+		jww.FATAL.Panicf("Unexpected error: %+v", err)
+	}
+	return data
+}
+
+func GetDefaultSingleUseParams() []byte {
+	defaultParams := single.GetDefaultRequestParams()
+	data, err := defaultParams.MarshalJSON()
+	if err != nil {
+		jww.FATAL.Panicf("Unexpected error: %+v", err)
+	}
+	return data
+}
+
+func parseSingleUseParams(data []byte) (single.RequestParams, error) {
+	p := &single.RequestParams{}
+	return *p, p.UnmarshalJSON(data)
+}
+
+func parseFileTransferParams(data []byte) (fileTransfer.Params, error) {
+	p := &fileTransfer.Params{}
+	return *p, p.UnmarshalJSON(data)
+}
+
 func parseCMixParams(data []byte) (xxdk.CMIXParams, error) {
 	p := &xxdk.CMIXParams{}
 	err := p.Unmarshal(data)
diff --git a/bindings/restlikeSingle.go b/bindings/restlikeSingle.go
index b1dfff9d8d56b95bb7969d2d30fdc6e9090f9d19..cbe93325b50bc6cc4695c141451afba37d52a635 100644
--- a/bindings/restlikeSingle.go
+++ b/bindings/restlikeSingle.go
@@ -4,7 +4,6 @@ import (
 	"encoding/json"
 	"gitlab.com/elixxir/client/restlike"
 	"gitlab.com/elixxir/client/restlike/single"
-	singleuse "gitlab.com/elixxir/client/single"
 	"gitlab.com/elixxir/crypto/contact"
 )
 
@@ -21,6 +20,7 @@ type RequestParams struct {
 // Accepts marshalled contact object as recipient, byte slice payload & headers, method enum and a URI
 // Returns json marshalled restlike.Message & error
 func RequestRestLike(e2eID int, recipient, request []byte) ([]byte, error) {
+	paramsJSON := GetDefaultSingleUseParams()
 	c, err := e2eTrackerSingleton.get(e2eID)
 	if err != nil {
 		return nil, err
@@ -39,11 +39,16 @@ func RequestRestLike(e2eID int, recipient, request []byte) ([]byte, error) {
 		return nil, err
 	}
 
+	params, err := parseSingleUseParams(paramsJSON)
+	if err != nil {
+		return nil, err
+	}
+
 	resp, err := req.Request(recipientContact, restlike.Method(message.Method), restlike.URI(message.URI),
 		message.Content, &restlike.Headers{
 			Headers: message.Headers,
 			Version: 0,
-		}, singleuse.GetDefaultRequestParams())
+		}, params)
 	if err != nil {
 		return nil, err
 	}
@@ -54,6 +59,7 @@ func RequestRestLike(e2eID int, recipient, request []byte) ([]byte, error) {
 // Accepts marshalled contact object as recipient, byte slice payload & headers, method enum, URI, and a RestlikeCallback
 // Returns an error, and the RestlikeCallback will be called with the results of json marshalling the response when received
 func AsyncRequestRestLike(e2eID int, recipient, request []byte, cb RestlikeCallback) error {
+	paramsJSON := GetDefaultSingleUseParams()
 	c, err := e2eTrackerSingleton.get(e2eID)
 	if err != nil {
 		return err
@@ -76,9 +82,14 @@ func AsyncRequestRestLike(e2eID int, recipient, request []byte, cb RestlikeCallb
 		cb.Callback(json.Marshal(message))
 	}
 
+	params, err := parseSingleUseParams(paramsJSON)
+	if err != nil {
+		return err
+	}
+
 	return req.AsyncRequest(recipientContact, restlike.Method(message.Method), restlike.URI(message.URI),
 		message.Content, &restlike.Headers{
 			Headers: message.Headers,
 			Version: 0,
-		}, rlcb, singleuse.GetDefaultRequestParams())
+		}, rlcb, params)
 }
diff --git a/bindings/single.go b/bindings/single.go
index 0589007a6c49a78b94d6c4d1482f080796fcefe8..4dcf51e95756a27c968d68e52cdc63cfbbd496f0 100644
--- a/bindings/single.go
+++ b/bindings/single.go
@@ -14,6 +14,7 @@ import (
 // TransmitSingleUse accepts a marshalled recipient contact object, tag, payload, SingleUseResponse callback func & a
 // Client.  Transmits payload to recipient via single use
 func TransmitSingleUse(e2eID int, recipient []byte, tag string, payload []byte, responseCB SingleUseResponse) ([]byte, error) {
+	paramsJSON := GetDefaultSingleUseParams()
 	e2eCl, err := e2eTrackerSingleton.get(e2eID)
 	if err != nil {
 		return nil, err
@@ -26,7 +27,12 @@ func TransmitSingleUse(e2eID int, recipient []byte, tag string, payload []byte,
 
 	rcb := &singleUseResponse{response: responseCB}
 
-	rids, eid, err := single.TransmitRequest(recipientContact, tag, payload, rcb, single.GetDefaultRequestParams(), e2eCl.api.GetCmix(), e2eCl.api.GetRng().GetStream(), e2eCl.api.GetStorage().GetE2EGroup())
+	params, err := parseSingleUseParams(paramsJSON)
+	if err != nil {
+		return nil, err
+	}
+
+	rids, eid, err := single.TransmitRequest(recipientContact, tag, payload, rcb, params, e2eCl.api.GetCmix(), e2eCl.api.GetRng().GetStream(), e2eCl.api.GetStorage().GetE2EGroup())
 
 	if err != nil {
 		return nil, err