The \fBsetchannelfee\fR RPC command sets channel specific routing fees as defined in BOLT #7\&. The channel has to be in normal or awaiting state\&. This can be checked by \fBlistpeers\fR reporting a \fIstate\fR of CHANNELD_NORMAL or CHANNELD_AWAITING_LOCKIN for the channel\&.
\fIid\fR is required and should contain a scid (short channel ID), channel id or peerid (pubkey) of the channel to be modified\&. If \fIid\fR is set to "all", the fees for all channels are updated that are in state CHANNELD_NORMAL or CHANNELD_AWAITING_LOCKIN\&.
\fIbase\fR is an optional value in millisatoshi that is added as base fee to any routed payment\&. If the parameter is left out, the global config value fee\-base will be used again\&. It can be a whole number, or a whole number ending in \fImsat\fR or \fIsat\fR, or a number with three decimal places ending in \fIsat\fR, or a number with 1 to 11 decimal places ending in \fIbtc\fR\&.
\fIppm\fR is an optional value that is added proportionally per\-millionths to any routed payment volume in satoshi\&. For example, if ppm is 1,000 and 1,000,000 satoshi is being routed trhough the channel, an proportional fee of 1,000 satoshi is added, resulting in a 0\&.1% fee\&. If the parameter is left out, the global config value will be used again\&.
On success, an object with the new values \fIbase\fR and \fIppm\fR along with an array \fIchannels\fR which contains objects with fields \fIpeer_id\fR, \fIchannel_id\fR and \fIshort_channel_id\fR\&.
\-1\&. Channel is in incorrect state, i\&.e\&. Catchall nonspecific error\&.
.RE
.sp
.RS4
.ien\{\
\h'-04'\(bu\h'+03'\c
.\}
.el\{\
.sp-1
.IP\(bu2.3
.\}
\-32602\&. JSONRPC2_INVALID_PARAMS, i\&.e\&. Given id is not a channel ID or short channel ID\&.
.RE
.SH"AUTHOR"
.sp
Michael Schmoock <michael@schmoock\&.net> is the author of this feature\&. Rusty Russell <rusty@rustcorp\&.com\&.au> is mainly responsible for the c\-lightning project\&.