A method for detecting off-target sites of one or more target-specific programmable nucleases in a genome in vitro comprising the steps of: (a) providing an input sample comprising genomic DNA, randomly fragmenting the genomic DNA into dsDNA fragments, and ligating a blocking adapter to the ends of the dsDNA fragments and removing dsDNA fragments comprising ends, which are not end-blocked, to prepare purified end-blocked dsDNA fragments; (b) preparing a cleaved and amplified DNA library of dsDNA fragments, by b1) cleaving the purified end-blocked dsDNA fragments with one or more target-specific programmable nucleases to obtain cleaved dsDNA fragments; b2) ligating an affinity adapter to cleavage sites of cleaved dsDNA fragments to obtain affinity-adapter-modified dsDNA fragments; b3) enriching for affinity-adapter-modified dsDNA fragments using the affinity adapter to obtain enriched affinity-adapter-modified dsDNA fragments; and b4) amplifying enriched affinity-adapter-modified dsDNA fragments by PCR amplification to obtain a cleaved and amplified DNA library of dsDNA fragments; (c) performing a sequencing of the cleaved and amplified DNA library of dsDNA fragments to obtain sequence reads; (d) aligning the sequence reads to a reference genome to obtain aligned sequence reads; (e) identifying cleavage sites, by determining putative cleavage sites and excluding false positive cleavage sites, wherein putative cleavage sites are determined by locating sequence regions in the reference genome where both sequence read starts and sequence read ends of aligned sequence reads coincide, and identifying putative cleavage sites as the sites in these sequence regions, where sequence read starts and sequence read ends meet. (a) providing an input sample comprising genomic DNA, randomly fragmenting the genomic DNA into dsDNA fragments, and ligating a blocking adapter to the ends of the dsDNA fragments and removing dsDNA fragments comprising ends, which are not end-blocked, to prepare purified end-blocked dsDNA fragments; (b) preparing a cleaved and amplified DNA library of dsDNA fragments, by b1) cleaving the purified end-blocked dsDNA fragments with one or more target-specific programmable nucleases to obtain cleaved dsDNA fragments; b2) ligating an affinity adapter to cleavage sites of cleaved dsDNA fragments to obtain affinity-adapter-modified dsDNA fragments; b3) enriching for affinity-adapter-modified dsDNA fragments using the affinity adapter to obtain enriched affinity-adapter-modified dsDNA fragments; and b4) amplifying enriched affinity-adapter-modified dsDNA fragments by PCR amplification to obtain a cleaved and amplified DNA library of dsDNA fragments; b1) cleaving the purified end-blocked dsDNA fragments with one or more target-specific programmable nucleases to obtain cleaved dsDNA fragments; b2) ligating an affinity adapter to cleavage sites of cleaved dsDNA fragments to obtain affinity-adapter-modified dsDNA fragments; b3) enriching for affinity-adapter-modified dsDNA fragments using the affinity adapter to obtain enriched affinity-adapter-modified dsDNA fragments; and b4) amplifying enriched affinity-adapter-modified dsDNA fragments by PCR amplification to obtain a cleaved and amplified DNA library of dsDNA fragments; (c) performing a sequencing of the cleaved and amplified DNA library of dsDNA fragments to obtain sequence reads; (d) aligning the sequence reads to a reference genome to obtain aligned sequence reads; (e) identifying cleavage sites, by determining putative cleavage sites and excluding false positive cleavage sites, wherein putative cleavage sites are determined by locating sequence regions in the reference genome where both sequence read starts and sequence read ends of aligned sequence reads coincide, and identifying putative cleavage sites as the sites in these sequence regions, where sequence read starts and sequence read ends meet.