WEID Specification
An Object Identifier (OID) is an extensively used identification mechanism jointly developed by ITUT and ISO/IEC for naming any type of object, concept, or "thing" with a globally unambiguous name. (More information about OIDs can be found at www.oidinfo.com )
There are three wellknown notations for OIDs:
 Dotnotation: 2.999
 ASN.1 notation: {jointisoitut(2) example(999)}
 OIDIRI notation: /JointISOITUT/Example
WEID is another notation for OIDs, developed by Till Wehowski and Daniel Marschall:
 WEID notation: weid:root:2RR2
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, by switching defining subnamespaces.
The registry of subnamespaces (URN prefixes) has currently following entries:

Namespace “weid:” (Also called “Class C” WEID)
 Root OID is 1.3.6.1.4.1.37553.8
 Example: 1.3.6.1.4.1.37553.8.32488192274
 … can be written as weid:EXAMPLE3 (3 is the checkdigit)
 The registration of WEID Alphanumeric OIDs beneath this arc is managed by Webfan.de in order of FRDLWEB. You can assign as Private WEID by Frdlweb here: https://registry.frdl.de/?goto=com.frdlweb.freeweid

SubNamespace “weid:pen:” (Also called “Class B” WEID)
 Root OID is 1.3.6.1.4.1
 Example OID: 1.3.6.1.4.1.37476.9999
 … can be written as weid:pen:SX07PR6 (6 is the checkdigit)
 The registration of Private Enterprise Numbers (PEN) is managed by IANA. You can register a PEN here:
https://pen.iana.org/pen/PenApplication.page

SubNamespace “weid:root:” (Also called “Class A” WEID)
 Root OID is the OID tree root
 Example OID: 2.999
 … can bet written as weid:root:2RR2 (2 is the checkdigit)

More subnamespaces can be added to this registry in the future. The subnamespaces must be defined by the WEID consortium (ViaThinkSoft and WebFan) in a Specification Change.
To get an OID in accordance with Recommendation ITUT X.600 assigned, 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:
The construction of a WEID is demonstrated with the example OID 2.999:

The numeric arcs (e.g. “2” and “999”) are converted from base 10 to base 36, so the arcs become “2” and “RR”.

The arcs are separated by a hyphen ““, so we have now “2RR”.

Now, an appropriate namespace (and subnamespace if applicable) will be added. In our case, a fitting (sub)namespace is “weid:root:”, so we now have “weid:root:2RR”

At the end, a Luhnbased checkdigit (called WeLuhn) is added. If the WEID contains at least one arc, then the checkdigit is preceded by a hyphen.

The WeLuhn algorithm works this way:

First, we take the OID in dotnotation (e.g. “2.999”)

The arcs will be converted from base 10 to base 36, so we have “2RR”. Padding zeros must not be present and need to be stripped.

The hyphens are removed, so we now have “2RR”.

“A” will be replaced with “10”, “B” will be replaced with “11”, etc., so we now have “22727”

This number is the payload for the normal Luhn algorithm. https://en.wikipedia.org/wiki/Luhn_algorithm which works as follows:
 Start from the rightmost digit. Moving left, double the value of every second digit (including the rightmost digit).
 Sum the digits of the resulting value in each position.
 Sum the resulting values from all positions, s .
 The check digit is calculated by ((10s mod 10) mod 10) .
 In our case, the Luhn checksum is “2”

Our final WEID notation for OID 2.999 is “weid:root:2RR2”.
Recommendations for WEID notation (as of Spec Change 8):
 When choosing a (sub)namespace, it is recommended to choose a subnamespace that is closest to the OID you want to describe, producing the shortest WEID therefore. For example, weid:pen:SX07PR6 should be chosen rather than weid:root:136141SX07PR6
 The arcs in a WEID should be written in uppercase, but lowercase can be interpreted, too.
 The URN namespace (weid:, weid:pen:, weid:root:) is case insensitive, but it is recommended to write it in lowercase.
 Padding with “0” characters is valid (e.g. weid:000EXAMPLE3), but not recommended. The paddings do not count into the WeLuhn checkdigit.
Recommendations for WEID notation (as of Spec Change 9):
 In Spec Change 9 (08 March 2022), an alternative syntax of WEIDs is defined. This alternative syntax replaces the checksum with a wildcard in form of a question mark symbol, for example, weid:root:2RR? instead of weid:root:2RR2. 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.
Additional notes:
 Any WEID can be represented by an OID and viceversa. Therefore, a WEID has all attributes of an OID (e.g. it can be used to generate a Version 5 SHA1 namebased UUID with the Namespace UUID “6ba7b8129dad11d180b400c04fd430c8” according to IETF RFC4122).
 Please note that some clients handling OIDs cannot handle arcs that have a specific size (more information here). Implementers of WEID and strongly encourage to allow arbitrary length arcs (i.e. implementing BigInteger rather than 32bit integers)
 In the OIDplus Registration Authority at arc 1.3.6.1.4.1.37553.8.1.8.1.6 you can find more information and announcements of changes.
© WEID is developed by Daniel Marschall / ViaThinkSoft and Till Wehowski.