For artists and their web developers · record format v1
To sign a work, you share the link to its page with the signing app. The app reads the page, shows you a draft record, and after you confirm, freezes it: the tag carries a fingerprint of that exact record. This page says what the app looks for, so your pages produce complete records without retyping.
The app creates your signing key from 12 words that never leave your phone. To show visitors that the key is really yours, put one line on your own website. In the app: Settings → Register as artist shows it:
artfirma-key=9974b7731089acdc5569…
_artfirma.example.com with that line as its value,example.com/pages/artfirma containing it (Shopify: Online Store → Pages → Add page,
title “artfirma”). /.well-known/artfirma.txt and /artfirma.txt work too.Then tap Check & register. Verification pages show “key confirmed by example.com” next to your name. The site is checked once, at registration: after that you can delete the page or the DNS record — the registration, and every tag you sign, stay valid.
…/products/contact-states-xii-film-009-020 → contact-states-xii-film-009-020.
Allowed: lowercase letters, digits and hyphens, up to 64 characters (other characters are converted).VisualArtwork (preferred)Add a JSON-LD block to the page. Search engines read it too, so it is worth having anyway.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "VisualArtwork",
"name": "Night Field",
"creator": { "@type": "Person", "name": "Ana Ruiz" },
"dateCreated": "2025",
"artform": "Painting",
"artMedium": "oil on linen",
"size": "100 × 80 cm",
"image": "https://example.com/images/night-field.jpg"
}
</script>
The block may also sit inside an @graph array. image may be a URL, an
ImageObject with url or contentUrl, or a list (the first is used).
| Record field | Taken from, in this order | Example |
|---|---|---|
| id required | last part of the page address | night-field |
| title required | VisualArtwork.name → og:title → Shopify title | Night Field |
| artist required | creator.name → og:site_name → Shopify vendor | Ana Ruiz |
| photo required | VisualArtwork.image → og:image → first Shopify image | JPEG, PNG or WebP, ≥ 1200 px long side |
| year | dateCreated → a line holding only the year in the description | 2025 |
| artform | artform | Painting |
| medium | artMedium → a description line starting with the medium | oil on linen |
| size | size → a description line with dimensions in cm / mm / in | 100 × 80 cm |
| series | Shopify description line starting with “from the …” | from the 'Fields' series |
| notes | Shopify description line containing “signed” | signed and dated verso |
| statement | remaining description lines → og:description | short text about the work |
| source | page address, Shopify product id, date of import | for people; never used for checking |
Every field can be corrected in the draft before you confirm. Missing optional fields are simply left out.
Open Graph tags are enough for a minimal record (title, artist, photo, statement):
<meta property="og:title" content="Night Field">
<meta property="og:site_name" content="Ana Ruiz">
<meta property="og:image" content="https://example.com/images/night-field.jpg">
<meta property="og:description" content="Oil on linen, 2025.">
Shopify stores need nothing extra: the app also reads the product's public /products/<handle>.json.
Share the page link with the signing app. The draft shows which fields were found; empty ones mean the page does not provide them in a form listed above.