Jak działa mintowanie OPUB/1.1
Schemat layout `/opub/mint`
- Sekcja główna (lewa kolumna)
- Przełącznik typu:
NFT.article,NFT.image,NFT.music,NFT.pdf(orazNFT.videojako tryb wyłączony). - Pola wspólne:
Tytuł,Podtytuł. - Pole treści zależne od typu:
- Podgląd „jak zobaczy czytelnik”:
- article: pełna treść (Markdown/HTML), - image: opis obrazu (opcjonalny), - music: opis utworu (opcjonalny), - pdf: opis dokumentu (opcjonalny).
- article: render treści, - image: miniatura + opis, - music: player audio + opis, - pdf: podgląd PDF (iframe) + opis.
- Panel boczny (prawa kolumna)
- Ustawienia edytora: język, format opisu.
- Upload assetu:
- Kategoria publikacji.
- Szkice: zapis/wczytanie/usuwanie draftu.
- Publikacja: wybór adresu autora, adresu płatności, przyciski
Zapisz szkiciMintuj.
- image: plik/URL obrazu, - music: plik/URL audio, - pdf: plik/URL PDF.
---
Schemat procesu mintowania
- Użytkownik wybiera typ NFT i uzupełnia dane.
- Formularz waliduje wymagane pola (
title+ treść/plik zależnie od typu). - Budowany jest manifest
OPUB/1.1+txPlan(payloady podzielone na chunki). - Pokazywany jest koszt (network fee + service fee).
- Po potwierdzeniu:
POST /api/opub/mint(broadcast transakcji),POST /api/opub/onchain(zapis metadanych w DB),- opcjonalnie
POST /api/opub/store(kopia techniczna).
- Token trafia do
/opub/{txid}i cache.
---
Jak wygląda payload per typ
NFT.articleNFT.imageNFT.musicNFT.pdf
- payload: content (utf8, mime text/markdown lub text/html).
- payload: file (raw, mime image/*) + opcjonalny caption (utf8).
- payload: file (raw, mime audio/*) + opcjonalny caption (utf8).
- payload: file (raw, mime application/pdf) + opcjonalny caption (utf8).
Wszystkie payloady są chunkowane (limit techniczny chunku), a w manifeście zapisane są hash, size, location, payload_id.
---
Minimalny rdzeń manifestu OPUB/1.1
{
"protocol": "opub/1.1",
"type": "nft.article | nft.image | nft.music | nft.pdf",
"minted_on_domain": "dobruk.pl",
"language": "pl|en",
"title": "...",
"subtitle": "...",
"author": "BSV_ADDRESS",
"category": { "slug": "..." },
"preview": { "text": "..." },
"payloads": { "...": { "mime": "...", "encoding": "...", "hash": "...", "size": 123, "location": { "...": "..." } } },
"published_at": "ISO_DATE",
"sign": { "alg": "bsv-schnorr", "hash_alg": "sha256", "hash": "...", "address": "...", "pubkey": "...", "signature": "..." }
}1.03.2026, 11:24:31• skopiowano