Magnet URI scheme
Magnet is a URI scheme that defines the format of magnet links, a de facto standard for identifying files by their content, via cryptographic hash value rather than by their location.
History
The standard for Magnet URIs was developed by Bitzi in 2002, partly as a "vendor- and project-neutral generalization" of theed2k: and freenet: URI schemes used by eDonkey2000 and Freenet, respectively, and attempts to follow official IETF URI standards as closely as possible. BitTorrent introduced the btmh: protocol in 2020 as part of its BitTorrent v2 changes.Format
Magnet URIs consist of a series of one or more parameters, the order of which is not significant, formatted in the same way as query strings that ordinarily terminate HTTP URLs.Example:
magnet:?xt=urn:btih:da39a3ee5e6b4b0d3255bfef95601890afd80709&xt=urn:btmh:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855The following parameters are supported:
| Parameter | Name | Description |
| xt | eXact Topic | URN containing file hash. This is the most crucial part of the magnet link, and is used to find and verify the specified file. The URN is specific to the protocol, so a file hash URN under btih would be completely different from the file hash URN for ed2k The standard also allows for application-specific experimental parameters, which must begin with "x". Exact Topic (xt)The xt parameter specifies the URN for a given p2p protocol. Its purpose is to provide a search parameter for finding the metadata to the torrent. This effectively acts as a replacement to a.torrent file, which itself contains the torrent metadata, by instead searching the p2p network for that metadata. Each protocol handles a URN uniquely; for example,xt= uses the btih, so a BitTorrent client can take the hash and lookup the torrent's metadata in the BitTorrent DHT. In the case of DHT the client searches through a set of pre-known nodes and requests the metadata for an infohash; those nodes will make the same request to other known nodes until eventually a swarm is found and returned.xt also allows for a group setting. Multiple files can be included by adding a count number preceded by a dot to each link parameter. ; Tiger Tree Hash : These hashes are used on Direct Connect and G2, among others. ; Secure Hash Algorithm 1 : These hash sums are used on gnutella and G2. ; BitPrint: Such hash sums consist of an SHA-1 Hash, followed by a TTH Hash, delimited by a point; they are used on gnutella and G2. ; ED2K hash: These hash sums are used on eDonkey2000. ; Advanced Intelligent Corruption Handler : Not formal URNs for Magnet links, such hash sums are used by eDonkey2000 to restore and control the integrity of downloading and already downloaded files. ; Kazaa hash: Used on FastTrack, these hash sums are vulnerable to hash collision attacks. ; BitTorrent info hash : These are hex-encoded SHA-1 hash sums of the "info" sections of BitTorrent metafiles as used by BitTorrent to identify downloadable files or sets of files. For backwards compatibility with existing links, clients should also support the Base32 encoded version of the hash. ; BitTorrent info hash v2 : BitTorrent v2 replaces the obsolete SHA-1 hash with a SHA-256 info hash. The v2 info-hash is given a new prefix to allow for torrents that can participate in both v1 and v2 swarms. ; Message Digest 5 : Supported by G2, such hashes are vulnerable to hash collision attacks. Web links to the fileThere are two types of download links that a Magnet link can include as a direct or backup source.; "as" : Most clients treat "as" as equal to the "xs" token when it comes to priority, and ignore the timeout before contacting "as" sources denoted by the specs. ; Content-Addressable Web URL: This type of -based link is used by gnutella as well as G2 applications. ;Link to a DirectConnect hub to find sources for a file: This type of link connects a DirectConnect client immediately to the hub in question. ;Reference to a web-based source cache for a file on Gnutella2: In this case, the included link points, not to a client IP or direct source, but to a source cache which stores the IPs of other clients contacting it to download the same file. Once a client connects to the cache, it is served IPs for alternate sources, while its own IP is stored within the cache and forwarded to the next one connecting to the cache. This system operates similar to a BitTorrent tracker. ;Reference to an eD2k source Supplement format (x.)For experimental and self-complementing informal options, the prefix followed by a chosen suffix letter can be used. These names are guaranteed to never be standardized.ClientsExplanatory notes |