History
The standard for Magneted2k:
and freenet:
URI schemes used by 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 asExact 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 (using the URN) for that metadata. Each protocol handles a URN uniquely; for example,xt=urn:btih:FFC7E738EAA4CD4ECF51EC6FD669C6CDE2C281A8
uses the btih (BitTorrent v1 protocol), 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.
:magnet:?xt.1= [ URN
An urn is a vase, often with a cover, with a typically narrowed neck above a rounded body and a footed pedestal. Describing a vessel as an "urn", as opposed to a vase or other terms, generally reflects its use rather than any particular shape or ...
of the first file]&xt.2=[ URN of the second file]
; Merkle tree#Tiger tree hash, Tiger Tree Hash (TTH): These hashes are used on Direct Connect (file sharing), Direct Connect and Gnutella2, G2 (Gnutella2), among others.
:xt=urn:tree:tiger : TTH hash sum">Hash (Base32">Merkle_tree#Tiger_tree_hash">T.html" ;"title="Merkle_tree#Tiger_tree_hash.html" ;"title="Merkle tree#Tiger tree hash">TTH hash sum">Hash (Base32) ]
; SHA-1, Secure Hash Algorithm 1 (SHA-1): These hash sums are used on xt=urn:sha1 : SHA-1 hash function">Hash (Base32
Base32 is the base-32 numeral system. It uses a set of 32 digits, each of which can be represented by 5 bits (25). One way to represent Base32 numbers in a human-readable way is by using a standard 32-character set, such as the twenty-two upper- ...
) ]
; BitPrint: Such hash sums consist of an SHA-1 Hash, followed by a TTH Hash, delimited by a point; they are used on xt=urn:bitprint : SHA-1 hash function">Hash (Base32
Base32 is the base-32 numeral system. It uses a set of 32 digits, each of which can be represented by 5 bits (25). One way to represent Base32 numbers in a human-readable way is by using a standard 32-character set, such as the twenty-two upper- ...
) ]. TTH hash sum">Hash (Base32">Merkle_tree#Tiger_tree_hash">T.html" ;"title="Merkle_tree#Tiger_tree_hash.html" ;"title="Merkle tree#Tiger tree hash">TTH hash sum">Hash (Base32) ]
; EDonkey network#Hash identification, ED2K (eDonkey2000) hash: These hash sums are used on xt=urn:ed2k :[ EDonkey network#Hash identification, ED2K hash sum, Hash ( Hex) ]
; AICH, Advanced Intelligent Corruption Handler (AICH): Not formal URNs for Magnet links, such hash sums are used by xt=urn:aich : AICH, aich hash sum, Hash (Base32
Base32 is the base-32 numeral system. It uses a set of 32 digits, each of which can be represented by 5 bits (25). One way to represent Base32 numbers in a human-readable way is by using a standard 32-character set, such as the twenty-two upper- ...
) ]
; Kazaa hash: Used on FastTrack, these hash sums are vulnerable to hash collision attacks.
:xt=urn:kzhash :[ Kazaa hash sum, Hash ( Hex) ]
; BitTorrent info hash (BTIH): These are hex-encoded xt=urn:btih : BitTorrent Info Hash.html" ;"title="hash sum, Hash">hash sum, Hash ( Hex) /code>
: Some clients require Base32
Base32 is the base-32 numeral system. It uses a set of 32 digits, each of which can be represented by 5 bits (25). One way to represent Base32 numbers in a human-readable way is by using a standard 32-character set, such as the twenty-two upper- ...
of info_hash (e.g., Vuze
Vuze (previously Azureus) is a BitTorrent client used to transfer files via the BitTorrent protocol. Vuze is written in Java, and uses the Azureus Engine. In addition to downloading data linked to .torrent files, Azureus allows users to view, p ...
).
; BitTorrent info hash v2 (BTMH): BitTorrent v2 replaces the obsolete SHA-1 hash with a SHA-256
SHA-2 (Secure Hash Algorithm 2) is a set of cryptographic hash functions designed by the United States National Security Agency (NSA) and first published in 2001. They are built using the Merkle–Damgård construction, from a one-way compression ...
info hash. The v2 info-hash is given a new prefix (btmh
) to allow for torrents that can participate in both v1 and v2 swarms
:xt=urn:btmh : BitTorrent Info Hash.html" ;"title="hash sum, Hash">hash sum, Hash ( Hex) /code>
; Message Digest 5 (MD5): Supported by Gnutella2, G2 (Gnutella2), such hashes are vulnerable to hash collision attacks.
:xt=urn:md5 : MD5 Hash.html" ;"title="hash sum, Hash">hash sum, Hash ( Hex) /code>
Web links to the file
There are two types of download links that a Magnet link can include as a direct or backup source.
; "as" ("acceptable source"): 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
Gnutella is a peer-to-peer network protocol. Founded in 2000, it was the first decentralized peer-to-peer network of its kind, leading to other, later networks adopting the model.
In June 2005, Gnutella's population was 1.81 million computer ...
as well as Gnutella2, G2 applications.
:xs=http:// lient Address ort of clienturi-res/N2R? URN
An urn is a vase, often with a cover, with a typically narrowed neck above a rounded body and a footed pedestal. Describing a vessel as an "urn", as opposed to a vase or other terms, generally reflects its use rather than any particular shape or ...
xs=http://192.0.2.27:6346/uri-res/N2R?urn:sha1:FINYVGHENTHSMNDSQQYDNLPONVBZTICF
;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.
:xs=dchub:// ub address ub port/code>
;Reference to a web-based source cache for a file on Gnutella2
Gnutella2, often referred to as G2, is a peer-to-peer protocol developed mainly by Michael Stokes and released in 2002.
While inspired by the gnutella protocol, G2 shares little of its design with the exception of its connection handshake and ...
: 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
A BitTorrent tracker is a special type of server that assists in the communication between peers using the BitTorrent protocol.
In peer-to-peer file sharing, a software client on an end-user PC requests a file, and portions of the requested fil ...
.
:xs=http://cache.freebase.be/ SHA-1 hash sum">hash ">SHA-1">SHA-1<_a>_hash_sum.html" ;"title="SHA-1.html" ;"title="SHA-1">SHA-1 hash sum">hash /code>
;Reference to an eD2k source
:xs=ed2kftp://[client address]:[client port]/[ed2k hash]/[file size]/
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.
:x. ame of the new parameter ata of the new parameter (URL encoded)">URL.html" ;"title="ata of the new parameter (URL">ata of the new parameter (URL encoded)/code>
Clients
See also
* BitTorrent
* Burnbit
* ed2k URI scheme
* InterPlanetary File System
* Metalink
* Named data networking
* Peer-to-peer
Explanatory notes
References
External links
* , an early definition of the format (last update 2002)
CHK
Freeware checksum utility with SHA1-Base32 and ED2K support
* , an open source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
command-line tool, which can calculate magnet links
{{DEFAULTSORT:Magnet Uri Scheme
File sharing
URI schemes