Monorepo for Aesthetic.Computer aesthetic.computer
4
fork

Configure Feed

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

🎨 Test Keep.mjs UI - Production Flow#

Date: February 13, 2026 Contract: v4 Staging on Mainnet (KT1ER1GyoeRNhkv6E57yKbBbEKi5ynKbaH3W)


✅ Configuration Status#

Your keep.mjs piece is currently configured for:

// From: system/public/aesthetic.computer/lib/keeps/constants.mjs

KEEPS_STAGING = true                           // Shows "STAGING V4" badges
DEFAULT_NETWORK = "mainnet"                    // Uses mainnet (not testnet)
Contract = "KT1ER1GyoeRNhkv6E57yKbBbEKi5ynKbaH3W"  // v4 staging contract

This is PERFECT for testing! You're using:

  • ✅ v4 contract (with royalties, pause, admin transfer)
  • ✅ Mainnet (real XTZ, real objkt.com integration)
  • ✅ Staging mode (shows version info, test-friendly)

🚀 User Flow: Mint a Keep via aesthetic.computer UI#

Step 1: Create or Pick a KidLisp Piece#

Option A: Create New Piece

  1. Go to https://aesthetic.computer
  2. Type a simple KidLisp piece:
    (wipe "purple")
    (ink "yellow")
    (circle (wiggle width) (wiggle height) 60)
    
  3. Press Enter to run it
  4. When it looks good, type: save test-keep-1
  5. Note the $code generated (e.g., $xyz)

Option B: Use Existing $code

  • Pick any existing cached KidLisp piece
  • Examples: $cow, $wand, $butterfly, etc.

Step 2: Navigate to Keep Piece#

Type in aesthetic.computer:

keep test-keep-1

Or with the $code:

keep $xyz

Expected: Keep UI loads showing:

  • Preview of your KidLisp piece
  • "STAGING V4" badge (orange/yellow)
  • Contract address shown: v4: KT1ER1Gy..
  • "Keep This" button (or similar)

Step 3: Connect Your Wallet#

What you'll see:

  • "Connect Wallet" button or prompt
  • Options: Temple Wallet, Umami, Kukai, etc.

Action:

  1. Click "Connect Wallet"
  2. Choose your Tezos wallet (Temple recommended)
  3. Approve the connection in your wallet popup
  4. Wait for connection confirmation

Expected result:

  • ✅ Wallet address shown in UI
  • ✅ "Keep This" button becomes active
  • ✅ Console shows: "🪙 KEEP: Wallet connected: tz1..."

Step 4: Review Mint Details#

Before minting, the UI should show:

  • Piece name: $xyz (or your piece name)
  • Network: "MAINNET (STAGING V4)"
  • Contract: v4: KT1ER1Gy.. (clickable link)
  • Fee: 0 XTZ or 2.5 XTZ (depends on if you're admin)
  • Preview: Animated thumbnail (if generated) or static preview

Check the browser console for detailed logs:

🪙 KEEP: Starting mint process for $xyz
🪙 KEEP: Network: mainnet, Contract: KT1ER1GyoeRNhkv6E57yKbBbEKi5ynKbaH3W
🪙 KEEP: Staging mode: true

Step 5: Start the Keep Process#

Click the "Keep This" or "Confirm" button.

What happens (automatic pipeline):

  1. Validate Piece - Checks $code exists
  2. Analyze Source - Parses KidLisp code
  3. Generate Preview - Creates thumbnail via Oven
  4. Bundle Assets - Packages HTML + metadata
  5. Upload to IPFS - Pinata upload
  6. Create Metadata - TZIP-21 JSON with royalties
  7. 👁️ Review & Confirm - Shows final details
  8. ✍️ Sign Transaction - Wallet popup

Watch the progress bar - each step shows:

  • ⏳ Pending (gray)
  • ⚡ Active (yellow/orange)
  • ✅ Done (green)
  • ❌ Error (red, if something fails)

Step 6: Sign the Transaction#

When you reach the "Sign Transaction" step:

What you'll see:

  • Wallet popup (Temple/Umami/etc.)
  • Transaction details:
    • To: KT1ER1GyoeRNhkv6E57yKbBbEKi5ynKbaH3W (contract)
    • Entrypoint: keep
    • Amount: 0 XTZ (if you're admin) or 2.5 XTZ (if user)
    • Fee: ~0.01-0.05 XTZ (network gas)

Action:

  1. Review the transaction details
  2. Click "Confirm" or "Sign" in your wallet
  3. Wait for transaction to broadcast

Expected:

  • ✅ Wallet shows "Transaction submitted"
  • ✅ UI shows operation hash: opXXX...
  • ✅ Console logs: "🪙 KEEP: Transaction sent: opXXX..."

Step 7: Wait for Confirmation#

Tezos confirmation takes ~30 seconds (2 blocks).

What you'll see:

  • Progress spinner or "Waiting for confirmation..." message
  • Operation hash link (clickable to TzKT)

In console:

🪙 KEEP: Waiting for confirmation...
🪙 KEEP: Confirmed! Searching for token...
🪙 KEEP: Found token #X for KidLisp $xyz

Step 8: Mint Complete! 🎉#

Success screen shows:

  • ✅ "Keep Minted!"
  • Token ID: #0 (or next available)
  • Network: MAINNET (STAGING V4)
  • Contract: KT1ER1Gy... (clickable)
  • Transaction: opXXX... (clickable to TzKT)
  • Links:
    • "View on objkt.com"
    • "View in Wallet"
    • "View Transaction"

Buttons to test:

  • View on objkt.com → Opens https://objkt.com/tokens/KT1ER1Gy.../X
  • Contract → Opens https://tzkt.io/KT1ER1GyoeRNhkv6E57yKbBbEKi5ynKbaH3W
  • Transaction → Opens https://tzkt.io/opXXX...

Step 9: Verify on TzKT#

Click the transaction link or visit:

https://tzkt.io/KT1ER1GyoeRNhkv6E57yKbBbEKi5ynKbaH3W

Check:

  • ✅ Recent operations show your keep call
  • ✅ Status: applied (success)
  • ✅ Sender: Your wallet address (tz1...)
  • ✅ Token minted: Check storage for next_token_id

Step 10: Verify on objkt.com#

Visit:

https://objkt.com/collection/KT1ER1GyoeRNhkv6E57yKbBbEKi5ynKbaH3W

Wait 1-5 minutes for objkt.com to index the token.

Then check:

  • ✅ Token appears in collection
  • ✅ Thumbnail displays (animated WebP if Oven was used)
  • ✅ Name: "KidLisp $xyz" (or similar)
  • ✅ Royalty info: 10%
  • ✅ Creator: Your wallet address

Click on the token to see full metadata:

  • Description
  • Source code snippet
  • Artifact URI (IPFS)
  • Display URI (IPFS)
  • Thumbnail URI (IPFS)
  • Royalties (10% to your wallet)

🔍 What to Watch in Browser Console#

Enable browser console (F12) and watch for these logs:

Successful Mint Logs#

🪙 KEEP: Starting mint process for $xyz
🪙 KEEP: Network: mainnet, Contract: KT1ER1GyoeRNhkv6E57yKbBbEKi5ynKbaH3W
🪙 KEEP: Staging mode: true
🪙 KEEP: Wallet connected: tz1abc...
🪙 KEEP: Fetching piece: $xyz
🪙 KEEP: Source loaded (123 bytes)
🪙 KEEP: Thumbnail generated: https://oven.aesthetic.computer/xyz.webp
🪙 KEEP: Bundle created
🪙 KEEP: IPFS upload started...
🪙 KEEP: IPFS upload complete: ipfs://QmXXX...
🪙 KEEP: Metadata created
🪙 KEEP: Review complete, ready to sign
🪙 KEEP: Transaction sent: opXXX...
🪙 KEEP: Waiting for confirmation...
🪙 KEEP: Confirmed! Token ID: 0
🪙 KEEP: Mint complete! 🎉

Error Logs (if something goes wrong)#

❌ KEEP ERROR: Wallet not connected
❌ KEEP ERROR: Piece not found: $xyz
❌ KEEP ERROR: IPFS upload failed
❌ KEEP ERROR: Transaction rejected
❌ KEEP ERROR: Already minted (token ID: 5)

🚨 Common Issues & Solutions#

Issue 1: "Piece not found: $xyz"#

Solution: Make sure you cached the piece first:

  1. Go to aesthetic.computer
  2. Type/run the KidLisp code
  3. Type save piece-name to cache it
  4. Then try keep piece-name

Issue 2: Wallet won't connect#

Solution:

  1. Make sure Temple Wallet (or your wallet) is installed
  2. Refresh the page
  3. Try disconnecting/reconnecting wallet
  4. Check wallet is set to Mainnet (not Ghostnet)

Issue 3: "Insufficient balance"#

Solution:

  • If fee is 2.5 XTZ, make sure you have at least 3 XTZ in wallet
  • If you're testing as admin (tz1staging...), fee should be 0

Issue 4: Transaction fails#

Solution:

  1. Check transaction on TzKT for error message
  2. Common errors:
    • "INSUFFICIENT_FEE" → Need to pay 2.5 XTZ
    • "DUPLICATE_CONTENT_HASH" → Already minted this exact piece
    • "CONTRACT_PAUSED" → Contract is paused (emergency)

Issue 5: objkt.com doesn't show token#

Solution:

  1. Wait 5-10 minutes (indexing can be slow)
  2. Refresh the collection page
  3. Check TzKT directly (always faster)
  4. If still missing after 1 hour, might be objkt.com issue

Issue 6: Thumbnail not generated#

Solution:

  • Check if Oven service is running
  • If Oven fails, mint will use static preview instead
  • Not critical - token will still mint successfully

📊 Test Checklist#

After minting, verify all these:

Frontend (keep.mjs UI)#

  • "STAGING V4" badge shows
  • Contract address displayed: v4: KT1ER1Gy..
  • Wallet connection works
  • Progress bar updates through all steps
  • Preview/thumbnail displays
  • Transaction hash shown
  • Success screen appears

Backend (Netlify Functions)#

  • /api/keep-mint endpoint responds
  • IPFS upload succeeds (Pinata)
  • MongoDB updated with keep info
  • Oven thumbnail generated (or gracefully fails)

Blockchain (Tezos)#

  • Transaction applied successfully
  • Token minted with correct ID
  • Metadata stored in contract
  • Royalty field present (10%)
  • Creator address correct

Indexing (TzKT & objkt.com)#

  • TzKT shows transaction within 1 minute
  • objkt.com indexes within 5-10 minutes
  • Token metadata displays correctly
  • Thumbnail visible on objkt.com
  • Royalty info visible

🎯 Success Criteria#

Minimum success (basic mint works):

  • ✅ Keep UI loads
  • ✅ Wallet connects
  • ✅ Transaction signs and confirms
  • ✅ Token ID returned
  • ✅ Shows on TzKT

Good success (full integration works):

  • ✅ All above +
  • ✅ Thumbnail generated via Oven
  • ✅ IPFS upload succeeds
  • ✅ Token appears on objkt.com
  • ✅ Royalty metadata present

Perfect success (everything polished):

  • ✅ All above +
  • ✅ No errors in console
  • ✅ Smooth UX (no weird delays/bugs)
  • ✅ All links work (objkt, TzKT, wallet)
  • ✅ Ready for v5 production!

Contract on TzKT:

https://tzkt.io/KT1ER1GyoeRNhkv6E57yKbBbEKi5ynKbaH3W

Collection on objkt.com:

https://objkt.com/collection/KT1ER1GyoeRNhkv6E57yKbBbEKi5ynKbaH3W

Keep UI:

https://aesthetic.computer/keep/$xyz

(Replace $xyz with your piece code)


📝 What to Note for v5#

While testing, pay attention to:

  1. Current fee: Is it 0 XTZ or 2.5 XTZ?
  2. User experience: Any confusing steps?
  3. Error messages: Are they helpful?
  4. Performance: Any slow steps?
  5. Visual polish: Anything look broken?

Document any issues so we can fix them before v5 production launch!


🚀 Next Steps After Testing#

Once you've successfully minted 1-3 test Keeps:

  1. Verify objkt.com integration works perfectly
  2. Check royalty metadata is present
  3. Test secondary sale (optional, list on objkt)
  4. Ready for v5 creation - Copy v4, set fee = 2.5 XTZ
  5. Deploy v5 to production - Follow KEEPS-V5-PRODUCTION-ROADMAP.md

Testing guide prepared February 13, 2026 for v4 staging contract UI testing via aesthetic.computer production frontend