A Ukraine National Guard officer has died and about 90 more were injured in clashes outside the Ukrainian parliament.

The violence suggests President Petro Poroshenko faces an uphill battle to push through key parts of a faltering peace agreement reached in February for eastern Ukraine.

The clashes took place as lawmakers backed a first reading of a "decentralisation" draft law - but only in the face of strong criticism from some of the president's political allies.

Mr Poroshenko's spokesman said the president would address the nation later following the clashes outside parliament.

The violence came after the deputies voted by 265 in favour of the first reading of the bill - 39 more than what was required to pass - at a session with many deputies shouting "Shame!" and rhythmically beating parliamentary benches.

Opponents of the bill said it played into Russia's hands and would lead ultimately to Ukraine losing control over the Donbass, the name given to the industrialised east, swathes of which are controlled by separatists now.

Interior Minister Arsen Avakopv wrote on Facebook saying: "There are around 90 wounded outside the Rada (parliament) including several people in critical condition."

He said protesters detonated “several” explosive devices.

Mr Avakopv said 30 people have been detained as a result of the clashes, adding there was “more to come.”

A spokeswoman for the Ukrainian National Guard told AFP the officer “died on the operating table”.

Meanwhile, interior ministry advisor Anton Gerashchenko said the victim was a conscript, adding that some of the protesters had used guns in addition to grenades.