Monorepo for Aesthetic.Computer aesthetic.computer
core plans keeps-next-steps.md
7.2 kB

Keeps: Current State Analysis (December 2025) #

Status: Mainnet Staging Active
Contract: KT1JEVyKjsMLts63e4CNaMUywWTPgeQ41Smi (v3)
Last Updated: December 31, 2025


Recent Changes (December 31, 2025) 🆕 #

V3 Contract Deployed #

Client-Side Wallet Signing for Metadata Updates #

Token Owner Rebake Support #

Metadata Sync Permissions #

Environment Fixes #


Recent Changes (December 30, 2025) 🆕 #

Light/Dark Theme Support #

Button Palette Thematization #

All button color schemes now use centralized palette entries with dark/light variants:

Button Purpose
btnLink IPFS links (HTML, THUMBNAIL)
btnObjkt View on objkt marketplace
btnRebake Regenerate cached bundle
btnSync Sync chain metadata
btnWallet Wallet shortcut
btnContract Contract address link
btnTx Transaction hash link
btnPreview Preview piece (pulsing)
btnConfirm Keep It action (pulsing)
btnLogin Login prompt (pulsing)
btnCached Cached media indicator
btnNet Network toggle
btnView View on objkt after mint
btnToll Fee display
btnStaging Staging contract link
btnRetry Retry after error

Pulsing buttons (btnPreview, btnConfirm, btnLogin) use normalBase property for animation calculations while hover and disabled come directly from palette.

Fee Reading from Contract #

UI Polish #


What's Already Implemented ✅ #

Authentication & Authorization (keep-mint.mjs) #

Wallet Enforcement (keep-mint.mjs) #

Minting Flow (keep.mjs UI + keep-mint.mjs) #

Rebake Flow (keep.mjs + keep-mint.mjs) #

Metadata Update (keep-update.mjs) #

Database Tracking (keep-confirm.mjs) #


What's Actually Next 🎯 #

✅ COMPLETED (December 31, 2025) #

🚀 READY FOR PRODUCTION #

Before moving from staging to production contract:

📋 Missing Features from Plan #

🎨 kidlisp.com Integration #

🔧 Developer Experience #


Environment Variables (Already Configured) #

KEEPS_NETWORK=mainnet
KEEPS_CONTRACT=KT1EcsqR69BHekYF5mDQquxrvNg5HhPFx6NM
OVEN_URL=https://oven.aesthetic.computer
# Secrets in MongoDB 'secrets' collection:
#   pinata: { apiKey, apiSecret, jwt }
#   tezos-kidlisp: { address, publicKey, privateKey }

Files Reference #

File Purpose
system/netlify/functions/keep-mint.mjs Streaming SSE mint endpoint
system/netlify/functions/keep-update.mjs On-chain metadata update (prepare mode for client signing)
system/netlify/functions/keep-update-confirm.mjs Record successful metadata update (NEW)
system/netlify/functions/keep-confirm.mjs Record successful mint
system/public/aesthetic.computer/disks/keep.mjs Keep UI/flow (~3000 lines)
system/public/aesthetic.computer/lib/keep/tezos-wallet.mjs Beacon wallet
tezos/keeps.mjs CLI tool for admin ops