"To Holly and Sara, who helped me build; Noa, who made sure the walls stayed standing; Jo, who kept me standing too."
Kaz Brekker and his crew have just pulled off a heist so daring, even they didn't think they'd survive. But instead of divvying up a fat reward, they're right back to fighting for their lives. Double-crossed and left crippled by the kidnapping of a valuable team member, the crew is low on resources, allies, and hope. As powerful forces from around the world descend on Ketterdam to root out the secrets of the dangerous drug known as jurda parem, old rivals and new enemies emerge to challenge Kaz's cunning and test the team's fragile loyalties. A war will be waged on the city's dark and twisting streets―a battle for revenge and redemption that will decide the fate of magic in the Grisha world.
In the prologue, a Grisha man named Emil Retvenko is kidnapped by a winged Shu man.
The book commences in a gambling parlor known as Club Cumulus where Jesper and Nina keep Jan Van Eck's lawyer, Cornelis Smeet, busy while Kaz and Wylan search his office for Jan Van Eck's property information. After they find what they need, Kaz plans to kidnap Van Eck’s pregnant young wife, Alys, and trade her for Inej, who is being held captive and is nearly tortured. Meanwhile, Jesper’s father, Colm, arrives at the city to meet him, as the bank is pushing the deadline for the debt Jesper owes. When Jesper goes to meet with his father, they are attacked but manage to escape. Kaz tells Jesper's father to give them three days to get the money and asks him to wait in a fancy hotel in the city.
Afterward, the crew's kidnapping is successful, and they trade Van Eck's wife for Inej. However, during the trade, three Shu soldiers with superhuman abilities attack Nina, Jesper, and other Grisha in the surrounding area. They all manage to get away after Nina shoots one of them point-blank in the eye, and Wylan sets another on fire. The crew meets at their hideout, and Kaz reveals his plan to sabotage Van Eck’s sugar silos using a chemical weevil (cleverly nicknamed the Wyvil by Jesper). Doing so will raise the price of sugar, and Kaz had already bought shares in other sugar companies. Nina and Inej persuade Kaz to smuggle out the remaining Grisha in the city using one of Van Eck’s own ships.
While Kaz and Wylan attempt to steal the seal they need from the Van Eck house, Nina and Inej infiltrate the sugar silos. However, all of them are attacked, and it is revealed that Pekka Rollins is in league with Van Eck. Pekka also attacks the hideout Kaz was using to hide Kuwei, where Jesper and Matthias were guarding him. They all escape and meet at the hotel where Jesper's father is staying in. Nina shows the group her strange and creepy new abilities to control dead bodies, guessing that it might be a result of her surviving the jurda parem withdrawal. Kaz puts together another plan and declares an auction for the indenture of Kuwei, which causes everyone to think him more insane than usual.
In the auction, Kaz disguises the Grisha from the embassy as the Council of Tides. They claim that the auction is biased because Van Eck gave money to the Shu people. The money was, in fact, channeled to the Crows themselves by scamming the Merchant Council. Van Eck is arrested. They manage to fake Kuwei's death and smuggle him out. Amidst the job, Matthias is shot, and later he dies. Kaz bluffs Pekka into believing that he has his son buried alive. He then leaves the city in search for his son. With Van Eck gone, Wylan inherits the properties of his family.
In the end, Kaz finds Inej's parents, is threatened by the real Council of Tides, and Inej threatens Pekka out of his business.