# QR codes on tattoos

> A QR tattoo needs to be at least 5–8 cm and use error correction H, because skin stretches, ink spreads over years, and the surface is curved. Most importantly, the destination must be something you control permanently — the tattoo outlives every domain.

Source: https://useqr.app/qr-codes-on/tattoos · Last reviewed 2026-08-21 · UseQR is free forever, MIT licensed, no signup.

---

| Typical scan distance | **20–40 cm** |
|---|---|
| Minimum code width | **5–8 cm** |
| Error correction | **H** |

## The physical problems

1. **Ink spread.** Tattoo ink migrates in the dermis over years. Fine lines blur; thin gaps
   between modules close. This is the reason for large modules, not aesthetics.
2. **Skin stretch and curvature.** A forearm is a cylinder that moves. Flat, wide areas —
   outer forearm, upper back, thigh — distort least.
3. **Hair and texture.** Hair across a code adds noise at exactly the module scale.
4. **Fading.** Sun exposure lightens black ink, reducing contrast over a decade.

## Specification

- **5–8 cm minimum**, and larger is genuinely better.
- **Modules at 2 mm or more.** That means a very short payload — a version 1 or 2 code, so
  under about 25 characters.
- Error correction **H**.
- **Solid black on untanned skin.** Coloured or grey-wash codes do not have the luminance
  contrast.
- Leave a generous quiet zone of clear skin.

## The destination is the hard part

A tattoo is permanent; a domain is a rental. Encode something that cannot expire — plain
text, a name, a date — or accept that the link will one day be dead. If it must be a URL, use
the shortest domain you own and treat its renewal as a lifetime commitment.

## Test before you commit

Have the artist draw it on with a stencil at full size, photograph it, and decode the
photograph. Then decide.

## Try it

- https://useqr.app/url
- https://useqr.app/size-calculator
- https://useqr.app/validate
