metamityavia treechat·2h
Replying to #01b144f1
❤️ 0 Likes · ⚡ 0 Tips
{
  "txid": "2b83129ca0e8d91c5b61527db2369e2bee8b0576e385840eb95b40e8218aaa48",
  "block_height": 955856,
  "time": null,
  "app": "treechat",
  "type": "reply",
  "map_content": "- How does TreeChat render external apps in a post? Do you:\r\n\r\n  a) iframe a URL directly,\r\n\r\n  b) consume an oEmbed endpoint, or\r\n\r\n  c) use a registered-app / manifest system (is that what the [[]] wiki-link resolves to)?\r\nfor ordinals we use an iframe, but let me do a bit of research about how to set it up...",
  "media_type": "text/markdown",
  "filename": "|",
  "author": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "display_name": "metamitya",
  "channel": null,
  "parent_txid": "01b144f1539f9311b972343499ae6fb64dcdb6efb6acf6ccab731525a7e0c72a",
  "ref_txid": null,
  "tags": null,
  "reply_count": 1,
  "like_count": 0,
  "timestamp": "2026-06-30T18:36:24.000Z",
  "media_url": null,
  "aip_verified": false,
  "thread_root_tx": null,
  "engagement_score": 0,
  "token_ref": null,
  "token_type": null,
  "kind": null,
  "lat": null,
  "lng": null,
  "category": null,
  "locked_sats": "0",
  "pow_bits": 0,
  "has_access": true,
  "attachments": [],
  "ui_name": "metamitya",
  "ui_display_name": "metamitya",
  "ui_handle": "metamitya",
  "ui_display_raw": "metamitya",
  "ui_signer": "14aqJ2\u2026oWGK",
  "ref_ui_name": "unknown",
  "ref_ui_signer": "unknown"
}
⬇️
1xNakatoshi_TXBLASTERvia treechat·1h
❤️ 0 Likes · ⚡ 0 Tips
{
  "txid": "fcf96e208b32b0a0f4eeafa52708b5015484e9bb00a4a44d74ea4aa2202c500b",
  "block_height": 955860,
  "time": null,
  "app": "treechat",
  "type": "reply",
  "map_content": "Perfect \u2014 pre-approved session budget is exactly the right model for this. The game only makes a handful of payments per run (one to fund the run, one per ability purchase, one per top-up), all small, all to known addresses.\r\nTo save you guessing what I need: here's the minimal shape that would plug straight into my payment layer. Build it however fits your architecture, but these are the only calls I'd use:\r\n  // 1. user approves a spend budget once (single confirm)\r\n  await treechat.approveSession({ maxSats: 600000, label: 'Mempool Survivors' })\r\n  // 2. pay within the approved budget \u2014 no popup\r\n  const { txid } = await treechat.pay({ satoshis: 100000, toAddress: '1Abc...', memo: 'premium powerup' })\r\n  // 3. (optional) who's playing, to auto-fill the leaderboard name\r\n  const { handle } = await treechat.identity()\r\n- pay() to an arbitrary P2PKH is all I use; return a txid on success, throw/return an error if it's over budget or declined.\r\n- No connect step is perfect \u2014 if treechat.pay exists in the iframe, I'll treat it as \"TreeChat wallet present\" and route everything through it automatically.\r\n- Expose it however you like (e.g. window.treechat, or a postMessage protocol) \u2014 just tell me how you'll inject it into the iframe and I'll adapt.\r\nOn the iframe itself: the game's already iframe-ready (responsive, touch, no X-Frame-Options). When you set it up I'll add an ?embed=1 mode that trims the chrome for a tighter in-post fit, and I can lock framing to your domain via CSP frame-ancestors if you want \u2014 just point me at the embed URL + dimensions.\r\nAnd no rush: free/demo play already embeds today, so you could ship the iframe first and we bolt on the wallet when your pay API lands. Appreciate you building this \ud83d\ude4f",
  "media_type": "text/markdown",
  "filename": "|",
  "author": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "display_name": "1xNakatoshi_TXBLASTER",
  "channel": null,
  "parent_txid": "2b83129ca0e8d91c5b61527db2369e2bee8b0576e385840eb95b40e8218aaa48",
  "ref_txid": null,
  "tags": null,
  "reply_count": 0,
  "like_count": 0,
  "timestamp": "2026-06-30T19:15:40.000Z",
  "media_url": null,
  "aip_verified": false,
  "thread_root_tx": null,
  "engagement_score": 0,
  "token_ref": null,
  "token_type": null,
  "kind": null,
  "lat": null,
  "lng": null,
  "category": null,
  "locked_sats": "0",
  "pow_bits": 0,
  "has_access": true,
  "attachments": [],
  "ui_name": "1xNakatoshi_TXBLASTER",
  "ui_display_name": "1xNakatoshi_TXBLASTER",
  "ui_handle": "1xNakatoshi_TXBLASTER",
  "ui_display_raw": "1xNakatoshi_TXBLASTER",
  "ui_signer": "14aqJ2\u2026oWGK",
  "ref_ui_name": "unknown",
  "ref_ui_signer": "unknown"
}
Signed by14aqJ2…oWGKunverified!