# ULID Tools > Free, privacy-first web tools for ULIDs (Universally Unique Lexicographically Sortable Identifiers) at https://ulidtools.com. Generate ULIDs, convert ULID to UUID and UUID to ULID, extract timestamps, and batch-convert. Everything runs client-side in the browser - no data is sent to any server. ## Tools - [ULID generator](https://ulidtools.com/): generates a ULID and shows its UUID representation and embedded timestamp - [ULID to UUID converter](https://ulidtools.com/?ulid=01ARZ3NDEKTSV4RRFFQ69G5FAV): converts a ULID to its UUID representation and decodes the timestamp - [UUID to ULID converter](https://ulidtools.com/?uuid=550e8400-e29b-41d4-a716-446655440000): converts a UUID to its ULID representation - Mass converter: paste comma-separated UUIDs, get one `ULID,ISO_timestamp` line per input; results downloadable as CSV, JSON, TXT or SQL ## Docs - [What is a ULID?](https://ulidtools.com/what-is-a-ulid): ULID anatomy, Crockford base32 encoding, and a ULID vs UUID v4 vs UUID v7 comparison table - [ULID FAQ](https://ulidtools.com/faq): common questions about conversion, timestamps and database storage - [ULID code examples](https://ulidtools.com/ulid-code-examples): snippets to generate ULIDs in Python, JavaScript, Go, Rust and Java, and to store ULIDs in PostgreSQL ## URL parameters Conversions are linkable. Constructing these URLs is the machine-friendly way to send a user (or open a browser) straight to a completed conversion: - `https://ulidtools.com/?ulid=` opens the page with the ULID to UUID conversion pre-filled and executed - `https://ulidtools.com/?uuid=` opens the page with the UUID to ULID conversion pre-filled and executed ## ULID facts - A ULID is a 128-bit identifier encoded as 26 characters of Crockford base32 (digits 0-9 and letters A-Z, excluding I, L, O and U) - The first 10 characters encode a 48-bit Unix timestamp in milliseconds (valid until the year 10889); the remaining 16 characters encode 80 bits of randomness - Lexicographic order equals chronological order, so ULIDs sort by creation time as plain strings - ULIDs are case-insensitive and URL-safe - ULID to UUID conversion is a lossless re-encoding of the same 128 bits, and works in both directions - A ULID fits natively in a Postgres `uuid` column or any 16-byte binary field - UUID v7 (RFC 9562) solves the same problem in standard UUID format, with 74 random bits versus ULID's 80 ## Reference - [ULID specification](https://github.com/ulid/spec) - [RFC 9562: Universally Unique IDentifiers](https://www.rfc-editor.org/rfc/rfc9562)