diff --git a/rpc/v0/methods.go b/rpc/v0/methods.go
index cc0a040aed6c92ecaf60fd8522f178457458ec3e..a29086dfaf0b5511a95a545295282f2ca22e1e1d 100644
--- a/rpc/v0/methods.go
+++ b/rpc/v0/methods.go
@@ -359,12 +359,13 @@ func (erisDbMethods *ErisDbMethods) CallCode(request *rpc.RPCRequest, requester
 }
 
 func (erisDbMethods *ErisDbMethods) BroadcastTx(request *rpc.RPCRequest, requester interface{}) (interface{}, int, error) {
-	param := &txs.CallTx{}
+	// Accept all transaction types as parameter for broadcast.
+	param := new(txs.Tx)
 	err := erisDbMethods.codec.DecodeBytes(param, request.Params)
 	if err != nil {
 		return nil, rpc.INVALID_PARAMS, err
 	}
-	receipt, errC := erisDbMethods.pipe.Transactor().BroadcastTx(param)
+	receipt, errC := erisDbMethods.pipe.Transactor().BroadcastTx(*param)
 	if errC != nil {
 		return nil, rpc.INTERNAL_ERROR, errC
 	}