urn:x-weid:HELLO-WORLD-ABC-?urn:x-weid:O-2-RR-?urn:x-weid:D-COM-EXAMPLE-123-?? which denotes a check-digit wildcard. One useful scenario can be the documentation of incomplete/template WEIDs. Another usage is converters (like our online converter), which can help you replace the wildcard with the correct checksum.urn:x-weid: (in accordance with IETF RFC 3406, x- stands for an unregistered experimental URN). The URN namespace (urn:x-weid:) is case-insensitive, but it is recommended to write it in lowercase.urn:x-weid:ABC-DEF-?:xyz123:456:/789 defines a qualifier xyz123:456:/789 that is meaningful for an application that knows how to handle urn:x-weid:ABC-DEF-?.0 characters is valid (e.g., urn:x-weid:000EXAMPLE-?), but not recommended. The paddings do not count towards the WeLuhn check digit.If you own an OID or want to have a WEID that describes an OID, then you may use the root urn:x-weid:O-.... The arcs of the OID are converted from Base10 to Base36.
For example: The OID 2.999 will become urn:x-weid:O-2-RR-?.
To receive an OID in accordance with Recommendation ITU-T X.600, you need to find a Registration Authority that assigns you an OID. You can obtain an OID as WEID and manage your own arc, e.g., by:
Since many OIDs are inside the IANA PEN root 1.3.6.1.4.1, a shortcut has been established to ensure shorter identifiers. The WEID root is urn:x-weid:P-..., followed by the PEN and any other OID arcs that are converted from Base10 to Base36.
For example, PEN 37476 will become urn:x-weid:P-SX0-? and the OID 1.3.6.1.4.1.37476.9999 will become urn:x-weid:P-SX0-7PR-?.
You can register a PEN here: https://pen.iana.org/pen/PenApplication.page
If you want to create a WEID based on a UUID, then you may use the root urn:x-weid:U-.... The next arc will be the UUID converted from Base128 to Base36. (This means, the numeric value which would be below OID 2.25, just coded as Base36 instead of Base10).
For example, the UUID 271b73c9-2b52-4581-8d71-b4a02d55813c will become urn:x-weid:U-2BCJZ644V24W81UOAX4BK4QWS-? which is equal to OID 2.25.51982432266164560271085076081362174268.
Any other WEID arcs are synchronous to the OID arcs, just converted between base10 and base36.
For example, urn:x-weid:U-2BCJZ644V24W81UOAX4BK4QWS-7PR-? is equal to OID 2.25.51982432266164560271085076081362174268.9999.
UUIDs can be created with a lot of tools, for example: https://misc.daniel-marschall.de/tools/uuid_mac_decoder/
If you own a DNS name (e.g., a domain name) or want to have a WEID based on a DNS name, then you may use the root urn:x-weid:D-.... The next arcs will be the DNS name in reverse order, encoded in (NOT converted to!) Base36.
For example, example.com will become urn:x-weid:D-COM-EXAMPLE-?.
Any other WEID arcs are synchronous to the OID arcs, just converted between base10 and base36.
For example, urn:x-weid:D-COM-EXAMPLE-7PR-? is equal to OID 1.3.6.1.4.1.37553.8.13.16438.32488192274.9999.
TLD-Only domains such as urn:x-weid:D-MICROSOFT-? are allowed for the purpose of forming a Domain-WEID.
Any amount of subdomains such as urn:x-weid:D-DOM-EXAMPLE-SUB-? are allowed for the purpose of forming a Domain-WEID.
Any other WEID (such as urn:x-weid:EXAMPLE-?) needs a registration/request at registry.frl.de. During that registration/request, an entry in the WEID root (together with an OID and, if required, an OID redirection) will be added.
6ba7b812-9dad-11d1-80b4-00c04fd430c8 according to IETF RFC 9562).1.3.6.1.4.1.37553.8. This means that urn:x-weid:? equals OID 1.3.6.1.4.1.37553.8.1.3.6.1.4.1.37553.8. The check-digit (last arc of the WEID) is NOT used for the mapping to the OID tree.
For example, urn:x-weid:EXAMPLE-ABC-? is mapped to 1.3.6.1.4.1.37553.8.32488192274.13368.urn:x-weid:O-? is usually mapped to 1.3.6.1.4.1.37553.8.24, however, there will be a redirection to the root of the OID tree.urn:x-weid:P-? is usually mapped to 1.3.6.1.4.1.37553.8.25, however, there will be a redirection to OID 1.3.6.1.4.1.urn:x-weid:U-? is usually mapped to 1.3.6.1.4.1.37553.8.30, however, there will be a redirection to OID 2.25.urn:x-weid:D-?) do not have an OID redirection. They will be mapped to the OID tree through 1.3.6.1.4.1.37553.8.:foobar in urn:x-weid:P-SX0-?:foobar) are used, the information of the qualifier is not mapped to the OID tree.The WeLuhn check digit of urn:x-weid:P-SX0-? is calculated as follows:
urn:x-weid:) is removed, as well as 0-paddings (001 shall be 1) and hyphens, so we now have PSX0.136141SZ58 will be added to the front, so we have 136141SZ58PSX0. (Note that this prefix resembles the OID that points to the WEID root. No OID redirection must be applied for calculating the check-digit.)A will be replaced with 10, B will be replaced with 11, etc., so we now have 1361412835582528330. This number is the payload for the standard Luhn algorithm, which works as follows:
s.((10-s mod 10) mod 10).0, resulting in the WEID urn:x-weid:P-SX0-0The online converter can be used to calculate the check digit (enter a WEID that ends with -? and receive the calculated check digit).
The following notations are deprecated, but are still valid for backwards compatibility:
weid:weid: is a deprecated notation of urn:x-weid:.
urn:x-weid:pen:<pen-as-base36>-<base36>-?urn:x-weid:pen:<pen-as-base36>-<base36>-? is a deprecated alternative notation of OID 1.3.6.1.4.1.<base10>.<base10>.
For example urn:x-weid:pen:SX0-7PR-? is equal to OID 1.3.6.1.4.1.37476.9999.
Use urn:x-weid:P-SX0-7PR-? instead (note that the check digit will be different).
urn:x-weid:pen:<pen-as-base10>:<base36>-?urn:x-weid:pen:<pen-as-base10>:<base36>-? is a deprecated alternative notation of OID 1.3.6.1.4.1.<base10>.<base10>.
For example urn:x-weid:pen:37476:7PR-? is equal to OID 1.3.6.1.4.1.37476.9999.
Use urn:x-weid:P-SX0-7PR-? instead (note that the check digit will be different).
urn:x-weid:uuid:<uuid-as-base36>-<base36>-?urn:x-weid:uuid:<uuid-as-base36>-<base36>-? is a deprecated alternative notation of OID 2.25.<base10>.<base10>.
For example, urn:x-weid:uuid:3D576PEXUZ1EVVF3MKRKOTYB-7PR-? is equal to OID 2.25.2098739235139107623796528785225371043.9999.
Use urn:x-weid:U-3D576PEXUZ1EVVF3MKRKOTYB-7PR-? instead (note that the check digit will be different).
urn:x-weid:uuid:<uuid-as-split-base16>:<base36>-?urn:x-weid:uuid:<uuid-as-split-base16>:<base36>-? is a deprecated alternative notation of OID 2.25.<base10>.<base10>.
For example, urn:x-weid:uuid:019433d5-535f-7098-9e0b-f7b84cf74da3:7PR-? is equal to OID 2.25.2098739235139107623796528785225371043.9999.
Use urn:x-weid:U-3D576PEXUZ1EVVF3MKRKOTYB-7PR-? instead (note that the check digit will be different).
urn:x-weid:root:?urn:x-weid:root:? is a deprecated alternative notation of the OID root.
For example, urn:x-weid:root:2-RR-? is equal to OID 2.999.
Use urn:x-weid:O-2-RR-? instead (note that the check digit will be different).
urn:x-weid:<domain>.<tld>:?urn:x-weid:<domain>.<tld>:? is a deprecated alternative notation of urn:x-weid:9-DNS-<tld>-<domain>-?.
In this NSS prefix, TLD-Only domains ARE NOT allowed for the purpose of forming a Domain-WEID, since it may collide with other NSS prefixes.
Use urn:x-weid:D-<tld>-<domain>-? instead (note that the check digit will be different).
urn:x-weid:x-weid:x-...:...urn:x-weid:x-weid:x-...:..., i.e., NSS prefixes starting with x- and not containing a dot (.), is a deprecated feature called “vendor-specific WEID”, creating WEID that are fully proprietary with custom rules, and they may or may not have a representation as OID.
The only use was urn:x-weid:x-frdl:[Base36_NS]-[SubNS]:[Base36_ID]-[CheckDigit] to be defined/implemented by Frdlweb (base idea here).
Instead of using a vendor-specific WEID, please use a regular WEID and add a namespace-internal NSS qualifier to that WEID.
urn:x-weid:<tbd>:?Although the list above is complete, it should be stated explicitly that any NSS prefixes are deprecated.
At www.weid.info, you can find more information and announcements of changes.
At https://co.weid.info/implementations.html, you can find an online converter that converts WEID to OID and vice versa, which can also calculate check-digits (enter a WEID with -? suffix, and you will get the correct check digit back).
The current version of the specification is 16, which is identified with the OID 1.3.6.1.4.1.37553.8.1.8.1.6.1.16 (urn:x-weid:1-8-1-6-1-G-?).
The standard is also released as ViaThinkSoft/Webfan Standard No. 3
The following change log entries are just for information. They might contain features that are already deprecated. Hence, only information outside the “Changelog” chapter may be used for implementations.
In the initial version of the WEID specification of 2011, only OIDs below the WEID root arc 1.3.6.1.4.1.37553.8 could be used. In a later definition by Daniel Marschall, any existing OID can be written in WEID notation.
The detailed descriptions of the changes of Spec Change 1 through 7 are not available anymore. Only a short description from the OID RA exists:
weid-spec-change-2013-6-27-1-identifierweid-spec-change-2013-6-27-2-weix-canceled-and-replacedweid-spec-change-2013-6-27-3-rooting-url-look-up-url-meaning-revisionweid-spec-change-2013-0-1-commercial-repositoryweid-spec-change-2013-6-27-4-determine-seperator-colonweid-spec-change-2013-10-2-camel-case-identifierweid-spec-change-2013-10-2-thesaurusweid: namespace (that represents OID 1.3.6.1.4.1.37553.8), new namespaces weid:root: (which represents the root OID) and weid:pen: (which represents OID 1.3.6.1.4.1) are introduced.weid:pen:SX0-7PR-6 should be chosen rather than weid:root:1-3-6-1-4-1-SX0-7PR-6.weid:, weid:pen:, weid:root:) is case insensitive, but it is recommended to write it in lowercase.0 characters is valid (e.g., weid:000EXAMPLE-3), but not recommended. The paddings do not count toward the WeLuhn check digit.weid:root:2-RR-? instead of weid:root:2-RR-2. One useful scenario can be the documentation of incomplete/template WEIDs. Another usage is converters (like our online converter), which can help you replace the wildcard with the correct checksum..) are treated as domain names.weid:example.com:ABC-DEF-? is equal to weid:9-DNS-COM-EXAMPLE-ABC-DEF-?.x-, for example: weid:x-contoso:ABC-DEF-? could be a WEID defined by Contoso Ltd..).weid:x-frdl:[Base36_NS]-[SubNS]:[Base36_ID]-[CheckDigit] to be defined/implemented by Frdlweb (base idea here).urn:x-weid: (whereas x- stands for an unregistered experimental URN). Hence, weid:2-RR-2 can be written as urn:x-weid:2-RR-2.weid:uuid:<uuid-base16>:... (Also called “Class B / UUID” WEID) is equal to weid:root:2-P-<uuid-base36>:... which is equal to the root OID 2.25.<uuid-base10>....weid:uuid:? to be an alias of weid:root:2-P-3, which is OID 2.25.weid:uuid:(uuid-base16):xxx-? to be an alias of weid:uuid:(uuid-base36)-xxx-? (which itself is an alias of weid:root:2-P-(uuid-base36)-xxx-?) which represents OID 2.25.(uuid-base10).xxx.weid:pen:(pen-base10):xxx-? to be an alias of weid:pen:(pen-base36)-xxx-? (which itself is an alias of weid:root:1-3-6-1-4-1-(pen-base36)-xxx-?) which represents OID 1.3.6.1.4.1.(pen-base10).xxx.pen:, uuid:, root:, example.com:, x-...:), as they are confusing. Instead, let everything be a normal WEID (e.g., weid:P-...), just with different OID mappings based on the WEID arc.
weid:root:2-RR-? will become weid:O-2-RR-? which is mapped to 2.999.weid:pen:SX0-? and its alternative notation weid:pen:37476:? will become urn:x-weid:P-SX0-? and will be mapped to urn:oid:1.3.6.1.4.1.37476.weid:uuid:2BCJZ644V24W81UOAX4BK4QWS-? and its alternative notation weid:uuid:271b73c9-2b52-4581-8d71-b4a02d55813c:? will become urn:x-weid:U-2BCJZ644V24W81UOAX4BK4QWS-? and will be mapped to urn:oid:2.25.51982432266164560271085076081362174268.weid:example.com:? and its alternative WEID weid:9-UUID-COM-EXAMPLE-? will become urn:x-weid:D-COM-EXAMPLE-? and will be mapped to the OID tree like a normal WEID (below 1.3.6.1.4.1.37553.8).weid:x-foobar:anything-here), as they don’t have a standardized way to be mapped to the OID tree and need a spec change to be supported.urn:x-weid:EXAMPLE-?:/foobar). In other words, any WEID can now have its own NSS qualifiers, e.g., urn:x-weid:P-SX0 can be extended to urn:x-weid:P-SX0:foo:bar:/anything?p=1 (this way, proprietary things can be done).weid:root:)weid:pen: and weid:uuid:, as they are below “Class A” weid:root:)weid:, because it was below “Class B” weid:pen:)weid:, such as weid:example.com:)weid:O-? is below “Class C” weid:?)weid: namespace is deprecated. Instead, use urn:x-weid:.
(In accordance with RFC 3406, the URN namespace of WEID is urn:x-weid:, whereas x- stands for an unregistered experimental URN).-?.urn:x-weid (WEhowski IDentifier) with urn:x-mwid (Marschall Wehowski IDentifier) due to the incompatibility that would arise by removing the check-digit.urn:x-weid: can be omitted. For example, if a GUI field has the label “WEID”, then urn:x-weid: can be ommitted, but NSS prefixes (such as urn:x-weid:pen:) must be forbidden.© WEID is developed by Daniel Marschall / ViaThinkSoft and Melanie Wehowski.