do not use fmt.Sprintf() in UUID.URN() The procedure is the same as UUID.String() (see f4e3abb). Code is not shared to ensure that unnecessary bounds checks do not occur.