Monorepo for Aesthetic.Computer aesthetic.computer
4
fork

Configure Feed

Select the types of activity you want to include in your feed.

at main 413 lines 11 kB view raw view rendered
1# 🎨 Test Keep.mjs UI - Production Flow 2**Date:** February 13, 2026 3**Contract:** v4 Staging on Mainnet (`KT1ER1GyoeRNhkv6E57yKbBbEKi5ynKbaH3W`) 4 5--- 6 7## ✅ Configuration Status 8 9Your `keep.mjs` piece is currently configured for: 10 11```javascript 12// From: system/public/aesthetic.computer/lib/keeps/constants.mjs 13 14KEEPS_STAGING = true // Shows "STAGING V4" badges 15DEFAULT_NETWORK = "mainnet" // Uses mainnet (not testnet) 16Contract = "KT1ER1GyoeRNhkv6E57yKbBbEKi5ynKbaH3W" // v4 staging contract 17``` 18 19**This is PERFECT for testing!** You're using: 20- ✅ v4 contract (with royalties, pause, admin transfer) 21- ✅ Mainnet (real XTZ, real objkt.com integration) 22- ✅ Staging mode (shows version info, test-friendly) 23 24--- 25 26## 🚀 User Flow: Mint a Keep via aesthetic.computer UI 27 28### Step 1: Create or Pick a KidLisp Piece 29 30**Option A: Create New Piece** 311. Go to https://aesthetic.computer 322. Type a simple KidLisp piece: 33 ```lisp 34 (wipe "purple") 35 (ink "yellow") 36 (circle (wiggle width) (wiggle height) 60) 37 ``` 383. Press Enter to run it 394. When it looks good, type: `save test-keep-1` 405. Note the $code generated (e.g., `$xyz`) 41 42**Option B: Use Existing $code** 43- Pick any existing cached KidLisp piece 44- Examples: `$cow`, `$wand`, `$butterfly`, etc. 45 46--- 47 48### Step 2: Navigate to Keep Piece 49 50Type in aesthetic.computer: 51``` 52keep test-keep-1 53``` 54 55Or with the $code: 56``` 57keep $xyz 58``` 59 60**Expected:** Keep UI loads showing: 61- Preview of your KidLisp piece 62- "STAGING V4" badge (orange/yellow) 63- Contract address shown: `v4: KT1ER1Gy..` 64- "Keep This" button (or similar) 65 66--- 67 68### Step 3: Connect Your Wallet 69 70**What you'll see:** 71- "Connect Wallet" button or prompt 72- Options: Temple Wallet, Umami, Kukai, etc. 73 74**Action:** 751. Click "Connect Wallet" 762. Choose your Tezos wallet (Temple recommended) 773. Approve the connection in your wallet popup 784. Wait for connection confirmation 79 80**Expected result:** 81- ✅ Wallet address shown in UI 82- ✅ "Keep This" button becomes active 83- ✅ Console shows: "🪙 KEEP: Wallet connected: tz1..." 84 85--- 86 87### Step 4: Review Mint Details 88 89Before minting, the UI should show: 90- **Piece name:** `$xyz` (or your piece name) 91- **Network:** "MAINNET (STAGING V4)" 92- **Contract:** `v4: KT1ER1Gy..` (clickable link) 93- **Fee:** 0 XTZ or 2.5 XTZ (depends on if you're admin) 94- **Preview:** Animated thumbnail (if generated) or static preview 95 96**Check the browser console** for detailed logs: 97``` 98🪙 KEEP: Starting mint process for $xyz 99🪙 KEEP: Network: mainnet, Contract: KT1ER1GyoeRNhkv6E57yKbBbEKi5ynKbaH3W 100🪙 KEEP: Staging mode: true 101``` 102 103--- 104 105### Step 5: Start the Keep Process 106 107Click the **"Keep This"** or **"Confirm"** button. 108 109**What happens (automatic pipeline):** 1101. ✓ **Validate Piece** - Checks $code exists 1112. ✓ **Analyze Source** - Parses KidLisp code 1123. ✓ **Generate Preview** - Creates thumbnail via Oven 1134. ✓ **Bundle Assets** - Packages HTML + metadata 1145. ✓ **Upload to IPFS** - Pinata upload 1156. ✓ **Create Metadata** - TZIP-21 JSON with royalties 1167. 👁️ **Review & Confirm** - Shows final details 1178. ✍️ **Sign Transaction** - Wallet popup 118 119**Watch the progress bar** - each step shows: 120- ⏳ Pending (gray) 121- ⚡ Active (yellow/orange) 122- ✅ Done (green) 123- ❌ Error (red, if something fails) 124 125--- 126 127### Step 6: Sign the Transaction 128 129When you reach the "Sign Transaction" step: 130 131**What you'll see:** 132- Wallet popup (Temple/Umami/etc.) 133- Transaction details: 134 - **To:** `KT1ER1GyoeRNhkv6E57yKbBbEKi5ynKbaH3W` (contract) 135 - **Entrypoint:** `keep` 136 - **Amount:** 0 XTZ (if you're admin) or 2.5 XTZ (if user) 137 - **Fee:** ~0.01-0.05 XTZ (network gas) 138 139**Action:** 1401. Review the transaction details 1412. Click "Confirm" or "Sign" in your wallet 1423. Wait for transaction to broadcast 143 144**Expected:** 145- ✅ Wallet shows "Transaction submitted" 146- ✅ UI shows operation hash: `opXXX...` 147- ✅ Console logs: "🪙 KEEP: Transaction sent: opXXX..." 148 149--- 150 151### Step 7: Wait for Confirmation 152 153**Tezos confirmation takes ~30 seconds** (2 blocks). 154 155**What you'll see:** 156- Progress spinner or "Waiting for confirmation..." message 157- Operation hash link (clickable to TzKT) 158 159**In console:** 160``` 161🪙 KEEP: Waiting for confirmation... 162🪙 KEEP: Confirmed! Searching for token... 163🪙 KEEP: Found token #X for KidLisp $xyz 164``` 165 166--- 167 168### Step 8: Mint Complete! 🎉 169 170**Success screen shows:** 171- ✅ "Keep Minted!" 172- **Token ID:** #0 (or next available) 173- **Network:** MAINNET (STAGING V4) 174- **Contract:** KT1ER1Gy... (clickable) 175- **Transaction:** opXXX... (clickable to TzKT) 176- **Links:** 177 - "View on objkt.com" 178 - "View in Wallet" 179 - "View Transaction" 180 181**Buttons to test:** 182- **View on objkt.com** → Opens `https://objkt.com/tokens/KT1ER1Gy.../X` 183- **Contract** → Opens `https://tzkt.io/KT1ER1GyoeRNhkv6E57yKbBbEKi5ynKbaH3W` 184- **Transaction** → Opens `https://tzkt.io/opXXX...` 185 186--- 187 188### Step 9: Verify on TzKT 189 190Click the transaction link or visit: 191``` 192https://tzkt.io/KT1ER1GyoeRNhkv6E57yKbBbEKi5ynKbaH3W 193``` 194 195**Check:** 196- ✅ Recent operations show your `keep` call 197- ✅ Status: `applied` (success) 198- ✅ Sender: Your wallet address (tz1...) 199- ✅ Token minted: Check storage for `next_token_id` 200 201--- 202 203### Step 10: Verify on objkt.com 204 205Visit: 206``` 207https://objkt.com/collection/KT1ER1GyoeRNhkv6E57yKbBbEKi5ynKbaH3W 208``` 209 210**Wait 1-5 minutes** for objkt.com to index the token. 211 212**Then check:** 213- ✅ Token appears in collection 214- ✅ Thumbnail displays (animated WebP if Oven was used) 215- ✅ Name: "KidLisp $xyz" (or similar) 216- ✅ Royalty info: 10% 217- ✅ Creator: Your wallet address 218 219**Click on the token** to see full metadata: 220- Description 221- Source code snippet 222- Artifact URI (IPFS) 223- Display URI (IPFS) 224- Thumbnail URI (IPFS) 225- Royalties (10% to your wallet) 226 227--- 228 229## 🔍 What to Watch in Browser Console 230 231Enable browser console (F12) and watch for these logs: 232 233### Successful Mint Logs 234``` 235🪙 KEEP: Starting mint process for $xyz 236🪙 KEEP: Network: mainnet, Contract: KT1ER1GyoeRNhkv6E57yKbBbEKi5ynKbaH3W 237🪙 KEEP: Staging mode: true 238🪙 KEEP: Wallet connected: tz1abc... 239🪙 KEEP: Fetching piece: $xyz 240🪙 KEEP: Source loaded (123 bytes) 241🪙 KEEP: Thumbnail generated: https://oven.aesthetic.computer/xyz.webp 242🪙 KEEP: Bundle created 243🪙 KEEP: IPFS upload started... 244🪙 KEEP: IPFS upload complete: ipfs://QmXXX... 245🪙 KEEP: Metadata created 246🪙 KEEP: Review complete, ready to sign 247🪙 KEEP: Transaction sent: opXXX... 248🪙 KEEP: Waiting for confirmation... 249🪙 KEEP: Confirmed! Token ID: 0 250🪙 KEEP: Mint complete! 🎉 251``` 252 253### Error Logs (if something goes wrong) 254``` 255❌ KEEP ERROR: Wallet not connected 256❌ KEEP ERROR: Piece not found: $xyz 257❌ KEEP ERROR: IPFS upload failed 258❌ KEEP ERROR: Transaction rejected 259❌ KEEP ERROR: Already minted (token ID: 5) 260``` 261 262--- 263 264## 🚨 Common Issues & Solutions 265 266### Issue 1: "Piece not found: $xyz" 267**Solution:** Make sure you cached the piece first: 2681. Go to aesthetic.computer 2692. Type/run the KidLisp code 2703. Type `save piece-name` to cache it 2714. Then try `keep piece-name` 272 273### Issue 2: Wallet won't connect 274**Solution:** 2751. Make sure Temple Wallet (or your wallet) is installed 2762. Refresh the page 2773. Try disconnecting/reconnecting wallet 2784. Check wallet is set to Mainnet (not Ghostnet) 279 280### Issue 3: "Insufficient balance" 281**Solution:** 282- If fee is 2.5 XTZ, make sure you have at least 3 XTZ in wallet 283- If you're testing as admin (tz1staging...), fee should be 0 284 285### Issue 4: Transaction fails 286**Solution:** 2871. Check transaction on TzKT for error message 2882. Common errors: 289 - "INSUFFICIENT_FEE" → Need to pay 2.5 XTZ 290 - "DUPLICATE_CONTENT_HASH" → Already minted this exact piece 291 - "CONTRACT_PAUSED" → Contract is paused (emergency) 292 293### Issue 5: objkt.com doesn't show token 294**Solution:** 2951. Wait 5-10 minutes (indexing can be slow) 2962. Refresh the collection page 2973. Check TzKT directly (always faster) 2984. If still missing after 1 hour, might be objkt.com issue 299 300### Issue 6: Thumbnail not generated 301**Solution:** 302- Check if Oven service is running 303- If Oven fails, mint will use static preview instead 304- Not critical - token will still mint successfully 305 306--- 307 308## 📊 Test Checklist 309 310After minting, verify all these: 311 312### Frontend (keep.mjs UI) 313- [ ] "STAGING V4" badge shows 314- [ ] Contract address displayed: `v4: KT1ER1Gy..` 315- [ ] Wallet connection works 316- [ ] Progress bar updates through all steps 317- [ ] Preview/thumbnail displays 318- [ ] Transaction hash shown 319- [ ] Success screen appears 320 321### Backend (Netlify Functions) 322- [ ] `/api/keep-mint` endpoint responds 323- [ ] IPFS upload succeeds (Pinata) 324- [ ] MongoDB updated with keep info 325- [ ] Oven thumbnail generated (or gracefully fails) 326 327### Blockchain (Tezos) 328- [ ] Transaction applied successfully 329- [ ] Token minted with correct ID 330- [ ] Metadata stored in contract 331- [ ] Royalty field present (10%) 332- [ ] Creator address correct 333 334### Indexing (TzKT & objkt.com) 335- [ ] TzKT shows transaction within 1 minute 336- [ ] objkt.com indexes within 5-10 minutes 337- [ ] Token metadata displays correctly 338- [ ] Thumbnail visible on objkt.com 339- [ ] Royalty info visible 340 341--- 342 343## 🎯 Success Criteria 344 345**Minimum success (basic mint works):** 346- ✅ Keep UI loads 347- ✅ Wallet connects 348- ✅ Transaction signs and confirms 349- ✅ Token ID returned 350- ✅ Shows on TzKT 351 352**Good success (full integration works):** 353- ✅ All above + 354- ✅ Thumbnail generated via Oven 355- ✅ IPFS upload succeeds 356- ✅ Token appears on objkt.com 357- ✅ Royalty metadata present 358 359**Perfect success (everything polished):** 360- ✅ All above + 361- ✅ No errors in console 362- ✅ Smooth UX (no weird delays/bugs) 363- ✅ All links work (objkt, TzKT, wallet) 364- ✅ Ready for v5 production! 365 366--- 367 368## 🔗 Quick Links 369 370**Contract on TzKT:** 371``` 372https://tzkt.io/KT1ER1GyoeRNhkv6E57yKbBbEKi5ynKbaH3W 373``` 374 375**Collection on objkt.com:** 376``` 377https://objkt.com/collection/KT1ER1GyoeRNhkv6E57yKbBbEKi5ynKbaH3W 378``` 379 380**Keep UI:** 381``` 382https://aesthetic.computer/keep/$xyz 383``` 384(Replace `$xyz` with your piece code) 385 386--- 387 388## 📝 What to Note for v5 389 390While testing, pay attention to: 3911. **Current fee:** Is it 0 XTZ or 2.5 XTZ? 3922. **User experience:** Any confusing steps? 3933. **Error messages:** Are they helpful? 3944. **Performance:** Any slow steps? 3955. **Visual polish:** Anything look broken? 396 397**Document any issues** so we can fix them before v5 production launch! 398 399--- 400 401## 🚀 Next Steps After Testing 402 403Once you've successfully minted 1-3 test Keeps: 404 4051.**Verify objkt.com integration** works perfectly 4062.**Check royalty metadata** is present 4073.**Test secondary sale** (optional, list on objkt) 4084.**Ready for v5 creation** - Copy v4, set fee = 2.5 XTZ 4095.**Deploy v5 to production** - Follow [KEEPS-V5-PRODUCTION-ROADMAP.md](KEEPS-V5-PRODUCTION-ROADMAP.md) 410 411--- 412 413*Testing guide prepared February 13, 2026 for v4 staging contract UI testing via aesthetic.computer production frontend*