Monorepo for Aesthetic.Computer
aesthetic.computer
DP1 Provenance Block Update#
Summary#
This update adds provenance blocks to all KidLisp playlists according to the DP-1 specification.
Changes Made#
1. Updated Playlist Generation Scripts#
All playlist generation scripts now include offchain provenance blocks:
- ✅
create-top-kidlisp-playlist.mjs- Top 100 KidLisp pieces - ✅
create-kidlisp-colors-playlist.mjs- CSS color exploration - ✅
create-kidlisp-chords-playlist.mjs- Musical chords
Provenance Block Format:
provenance: {
type: 'offChainURI',
contract: {
uri: 'https://aesthetic.computer/$code',
}
}
2. Created Regeneration Script#
File: regenerate-kidlisp-playlists.mjs
This script automates the complete regeneration process:
- Finds and deletes existing KidLisp channel
- Finds and deletes all existing KidLisp playlists
- Regenerates all playlists with provenance blocks
- Creates a new channel with all the updated playlists
Usage:
cd /workspaces/aesthetic-computer
FEED_API_SECRET=your_secret node feed/regenerate-kidlisp-playlists.mjs
Why Provenance Blocks Matter#
According to the DP-1 spec, provenance blocks:
- Link rendered assets to their source of truth (on-chain or off-chain)
- Provide verifiable documentation of artwork origins
- Support future tokenization and rights management
- Enable proper attribution in display contexts
Provenance Types#
The DP-1 spec supports three types:
onChain- Explicit contract (ERC-721, FA2, etc.)seriesRegistry- Parent collection in SeriesRegistryoffChainURI- URI points to canonical source ✅ (used here)
For KidLisp pieces, we use offChainURI since they're not yet tokenized but have canonical URLs.
Next Steps#
To Regenerate Your Playlists:#
# Set your Feed API secret
export FEED_API_SECRET="your_actual_secret_here"
# Run the regeneration script
cd /workspaces/aesthetic-computer
node feed/regenerate-kidlisp-playlists.mjs
Future Tokenization#
When KidLisp pieces are minted as tokens, update the provenance to:
provenance: {
type: 'onChain',
contract: {
chain: 'tezos',
standard: 'fa2',
address: 'KT1...', // Your FA2 contract address
tokenId: '42', // Token ID
uri: 'ipfs://...', // Token metadata URI
}
}
Verification#
After regeneration, verify playlists include provenance:
# Get playlist and check for provenance field
curl https://feed.aesthetic.computer/api/v1/playlists/{id} | jq '.items[0].provenance'
Expected output:
{
"type": "offChainURI",
"contract": {
"uri": "https://aesthetic.computer/$code"
}
}
Files Modified#
- ✅
feed/create-top-kidlisp-playlist.mjs - ✅
feed/create-kidlisp-colors-playlist.mjs - ✅
feed/create-kidlisp-chords-playlist.mjs - ✨
feed/regenerate-kidlisp-playlists.mjs(new) - ✨
feed/DP1-PROVENANCE-UPDATE.md(this file)