Thirteen-year-old Joe Coutts lives on an Ojibwe reservation in North Dakota. Bazil Coutts, Joe’s father, is a tribal judge, and his mother, Geraldine, is a tribal enrollment specialist. Geraldine’s sister Clemence lives nearby.
One Sunday afternoon in the spring of 1988, Geraldine gets a phone call and drives to her office to pick up a file. While there she is abducted, and someone rapes her and tries to set her on fire. The brutal attack leaves Geraldine traumatized and unable to leave her room. Judge Coutts vows to find and punish the man who raped his wife. He enlists the help of his contacts in law enforcement. Joe is determined to find his mother’s attacker. He asks his friends Cappy, Zack, and Angus to help him. Cappy is Joe’s closest friend.
The tight-knit reservation community supports Joe and his family in this time of crisis. Aunt Clemence cooks meals for Judge Coutts and Joe. Uncle Whitey and his wife Sonja, an ex-stripper with whom Joe is infatuated, lend Joe’s family their guard dog, Pearl. Cappy’s older brother Randall holds a prayer ceremony at his sweat lodge. During the ceremony, Randall has a vision of a man with silver hair bending over Joe.
Judge Coutts lets Joe help him search through old legal files, looking for possible suspects. They review files involving the Larks, a white family who hate Judge Coutts for deciding cases against them. When Judge Coutts reviews another case because of its location—the old round house on Reservation Lake—Joe realizes that this is where his mother was brought when she was abducted. Joe and his friends bike out to the round house to search for clues. Joe finds a gasoline can in the lake. The boys also find some unopened cans of beer, which they drink. Later that night, after Joe sneaks back home, he looks out his bedroom window and sees a man with silver hair.
Joe and his friends continue their ordinary adolescent activities. They go to school, play video games, and sneak smokes and beers. But Geraldine stays in her room and refuses to talk. Gradually, Joe and his father realize that she knows her attacker and remembers the attack but stays silent out of fear. Judge Coutts and Joe keep searching for clues. Their efforts lead them to Linda Wishkob, a woman born into the Lark family but rejected as an infant and rescued by a Native American family. Linda’s biological twin, Linden Lark, is a violent man who blames Judge Coutts for the Lark family’s many failures.
Joe consults his maternal grandfather, Mooshum, about his vision of the silver-haired man. Mooshum advises Joe to consult the Ajijaak, his father’s crane clan. Joe bikes to the lake and sees a heron. Then Joe looks down and sees a doll at the bottom of the lake. He retrieves the doll and discovers it is stuffed with cash. Joe quickly bikes to Uncle Whitey’s gas station and shows Sonja the doll. She helps Joe hide the money and swears him to secrecy.
Finally, Geraldine breaks her silence and shares details about her attack. She describes how her rapist also attacked Mayla Wolfskin, a young woman trying to enroll her baby in the tribe. Although Geraldine still refuses to name the attacker, the police arrest Linden Lark. They also find Mayla Wolfskin’s car at the bottom of the lake. From a scrap of fabric, Joe concludes that the doll he found in the lake came from this car.
Life starts to become normal again. Joe and his friends bike to the lake and pretend to join a church youth group so that they can swim with the girls. Cappy meets a Mexican girl, Zelia, and they fall in love at first sight. Aunt Clemence throws a huge party for Mooshum’s 112th birthday. Joe’s parents share a bedroom again. When the authorities find Mayla’s baby alive, Geraldine feels safe enough to name the criminal: Linden Lark. Unfortunately, Linden goes free because of a legal technicality. In a rage, Joe berates his father and accuses him of failure.
Sonja leaves Uncle Whitey and disappears with most of the money from the doll. Linda Wishkob warns the Coutts family that Linden Lark is back in town. When Joe and Judge Coutts encounter Linden at the grocery store, Judge Coutts attacks Linden but has a heart attack in the process. Geraldine vows that she will stop Linden, but Joe knows that he is the one who must act.
With Cappy’s help, Joe devises a plan to kill Linden Lark. They carry out the plan during a summer powwow. While everyone camps out, they steal a rifle from Cappy’s father and hide it near the golf course where Linden plays. Joe insists on doing the killing himself. He stakes out the golf course and finally gets his chance. Joe shoots Linden in the stomach. Then Cappy appears, takes the rifle away from Joe, and shoots Linden in the head. Cappy and Joe then bike out to the old Wishkob farmhouse, where they hide the rifle.
Although Joe’s parents and the police are suspicious, Joe and Cappy get away with the murder. Uncle Whitey provides evidence that the boys were drinking behind the gas station at the time of the crime. Linda Wishkob discovers the rifle and arranges to have it disposed of. Joe’s parents recognize that they have been freed from evil and decide to do nothing more.
Cappy transfers his attention back to Zelia. Her parents have taken her to Helena to get her away from Cappy. Joe, Zack, and Angus decide to drive with Cappy to see his true love. They take one of Randall’s old cars, buy booze along the road with a fake ID, and take turns driving. Joe is sleeping in the back seat when the car flips over. Cappy dies in the crash, and a silver-haired policeman takes Joe to the hospital.
Joe’s parents arrive and take him home. Joe realizes his parents know everything, but no one says anything. They just keep driving home.