diff --git a/Amn Roadmap.canvas b/Amn Roadmap.canvas new file mode 100644 index 0000000..4685ba8 --- /dev/null +++ b/Amn Roadmap.canvas @@ -0,0 +1,148 @@ +{ + "nodes":[ + {"id":"n1","type":"text","text":"# 🟧 Amn — Crypto-Escrow Marketplace","x":1555,"y":0,"width":460,"height":90,"color":"6"}, + {"id":"n2","type":"text","text":"## Auth & Identity","x":0,"y":220,"width":270,"height":64,"color":"5"}, + {"id":"n3","type":"text","text":"Email + Password (JWT)","x":0,"y":354,"width":270,"height":56,"color":"4"}, + {"id":"n4","type":"text","text":"Passkey / WebAuthn","x":0,"y":432,"width":270,"height":56,"color":"4"}, + {"id":"n5","type":"text","text":"Google OAuth","x":0,"y":510,"width":270,"height":56,"color":"4"}, + {"id":"n6","type":"text","text":"Telegram first-class auth","x":0,"y":588,"width":270,"height":56,"color":"4"}, + {"id":"n7","type":"text","text":"Email verification codes","x":0,"y":666,"width":270,"height":56,"color":"4"}, + {"id":"n8","type":"text","text":"Password reset","x":0,"y":744,"width":270,"height":56,"color":"4"}, + {"id":"n9","type":"text","text":"Refresh token rotation","x":0,"y":822,"width":270,"height":56,"color":"4"}, + {"id":"n10","type":"text","text":"Roles: admin / buyer / seller","x":0,"y":900,"width":270,"height":56,"color":"4"}, + {"id":"n11","type":"text","text":"## Marketplace","x":330,"y":220,"width":270,"height":64,"color":"5"}, + {"id":"n12","type":"text","text":"Purchase Requests","x":330,"y":354,"width":270,"height":56,"color":"4"}, + {"id":"n13","type":"text","text":"Seller Offers","x":330,"y":432,"width":270,"height":56,"color":"4"}, + {"id":"n14","type":"text","text":"Request Templates","x":330,"y":510,"width":270,"height":56,"color":"4"}, + {"id":"n15","type":"text","text":"Negotiation","x":330,"y":588,"width":270,"height":56,"color":"4"}, + {"id":"n16","type":"text","text":"Categories","x":330,"y":666,"width":270,"height":56,"color":"4"}, + {"id":"n17","type":"text","text":"Reviews & Ratings","x":330,"y":744,"width":270,"height":56,"color":"4"}, + {"id":"n18","type":"text","text":"## Escrow","x":660,"y":220,"width":270,"height":64,"color":"5"}, + {"id":"n19","type":"text","text":"Escrow state machine","x":660,"y":354,"width":270,"height":56,"color":"4"}, + {"id":"n20","type":"text","text":"Funds ledger","x":660,"y":432,"width":270,"height":56,"color":"4"}, + {"id":"n21","type":"text","text":"Delivery confirmation","x":660,"y":510,"width":270,"height":56,"color":"4"}, + {"id":"n22","type":"text","text":"Dispute hold gate","x":660,"y":588,"width":270,"height":56,"color":"4"}, + {"id":"n23","type":"text","text":"Release / Payout","x":660,"y":666,"width":270,"height":56,"color":"4"}, + {"id":"n24","type":"text","text":"Refund orchestration","x":660,"y":744,"width":270,"height":56,"color":"4"}, + {"id":"n25","type":"text","text":"## Payments","x":990,"y":220,"width":270,"height":64,"color":"5"}, + {"id":"n26","type":"text","text":"SHKeeper invoicing","x":990,"y":354,"width":270,"height":56,"color":"4"}, + {"id":"n27","type":"text","text":"Request Network pay-in","x":990,"y":432,"width":270,"height":56,"color":"4"}, + {"id":"n28","type":"text","text":"Decentralized (Wagmi + DePay)","x":990,"y":510,"width":270,"height":56,"color":"4"}, + {"id":"n29","type":"text","text":"Provider-neutral adapter","x":990,"y":588,"width":270,"height":56,"color":"4"}, + {"id":"n30","type":"text","text":"Signed webhook intake","x":990,"y":666,"width":270,"height":56,"color":"4"}, + {"id":"n31","type":"text","text":"Reconciliation & repair jobs","x":990,"y":744,"width":270,"height":56,"color":"4"}, + {"id":"n32","type":"text","text":"## Wallet","x":1320,"y":220,"width":270,"height":64,"color":"5"}, + {"id":"n33","type":"text","text":"TON ownership proof","x":1320,"y":354,"width":270,"height":56,"color":"4"}, + {"id":"n34","type":"text","text":"Trezor safekeeping","x":1320,"y":432,"width":270,"height":56,"color":"4"}, + {"id":"n35","type":"text","text":"EVM wallet (Wagmi/Viem)","x":1320,"y":510,"width":270,"height":56,"color":"4"}, + {"id":"n36","type":"text","text":"Alchemy on-chain verify","x":1320,"y":588,"width":270,"height":56,"color":"4"}, + {"id":"n37","type":"text","text":"## Chat & Realtime","x":1650,"y":220,"width":270,"height":64,"color":"5"}, + {"id":"n38","type":"text","text":"1:1 Chat","x":1650,"y":354,"width":270,"height":56,"color":"4"}, + {"id":"n39","type":"text","text":"Socket.IO rooms","x":1650,"y":432,"width":270,"height":56,"color":"4"}, + {"id":"n40","type":"text","text":"Notifications","x":1650,"y":510,"width":270,"height":56,"color":"4"}, + {"id":"n41","type":"text","text":"Realtime authorization","x":1650,"y":588,"width":270,"height":56,"color":"4"}, + {"id":"n42","type":"text","text":"## Disputes","x":1980,"y":220,"width":270,"height":64,"color":"5"}, + {"id":"n43","type":"text","text":"Dispute flow","x":1980,"y":354,"width":270,"height":56,"color":"4"}, + {"id":"n44","type":"text","text":"Admin resolution","x":1980,"y":432,"width":270,"height":56,"color":"4"}, + {"id":"n45","type":"text","text":"Payout hold enforcement","x":1980,"y":510,"width":270,"height":56,"color":"4"}, + {"id":"n46","type":"text","text":"## Growth & Content","x":2310,"y":220,"width":270,"height":64,"color":"5"}, + {"id":"n47","type":"text","text":"Points","x":2310,"y":354,"width":270,"height":56,"color":"4"}, + {"id":"n48","type":"text","text":"Referrals","x":2310,"y":432,"width":270,"height":56,"color":"4"}, + {"id":"n49","type":"text","text":"Levels / LevelConfig","x":2310,"y":510,"width":270,"height":56,"color":"4"}, + {"id":"n50","type":"text","text":"Blog","x":2310,"y":588,"width":270,"height":56,"color":"4"}, + {"id":"n51","type":"text","text":"AI assistant (OpenAI)","x":2310,"y":666,"width":270,"height":56,"color":"4"}, + {"id":"n52","type":"text","text":"## Telegram","x":2640,"y":220,"width":270,"height":64,"color":"5"}, + {"id":"n53","type":"text","text":"Identity linking & session","x":2640,"y":354,"width":270,"height":56,"color":"4"}, + {"id":"n54","type":"text","text":"Bot commands & notifications","x":2640,"y":432,"width":270,"height":56,"color":"4"}, + {"id":"n55","type":"text","text":"Payment & wallet strategy","x":2640,"y":510,"width":270,"height":56,"color":"4"}, + {"id":"n56","type":"text","text":"Security & abuse controls","x":2640,"y":588,"width":270,"height":56,"color":"4"}, + {"id":"n57","type":"text","text":"Mini App shell","x":2640,"y":666,"width":270,"height":56,"color":"2"}, + {"id":"n58","type":"text","text":"Escrow/dispute/release actions","x":2640,"y":744,"width":270,"height":56}, + {"id":"n59","type":"text","text":"Admin & support surface","x":2640,"y":822,"width":270,"height":56}, + {"id":"n60","type":"text","text":"## Admin & Ops","x":2970,"y":220,"width":270,"height":64,"color":"5"}, + {"id":"n61","type":"text","text":"Admin dashboard & API","x":2970,"y":354,"width":270,"height":56,"color":"4"}, + {"id":"n62","type":"text","text":"Monitoring (Sentry)","x":2970,"y":432,"width":270,"height":56,"color":"4"}, + {"id":"n63","type":"text","text":"CI/CD pipeline","x":2970,"y":510,"width":270,"height":56,"color":"4"}, + {"id":"n64","type":"text","text":"Backup & recovery","x":2970,"y":588,"width":270,"height":56,"color":"4"}, + {"id":"n65","type":"text","text":"Incident runbooks","x":2970,"y":666,"width":270,"height":56,"color":"4"}, + {"id":"n66","type":"text","text":"Docker deployment","x":2970,"y":744,"width":270,"height":56,"color":"4"}, + {"id":"n67","type":"text","text":"## Design System","x":3300,"y":220,"width":270,"height":64,"color":"5"}, + {"id":"n68","type":"text","text":"MUI v7 components","x":3300,"y":354,"width":270,"height":56,"color":"4"}, + {"id":"n69","type":"text","text":"Theming & dark mode","x":3300,"y":432,"width":270,"height":56,"color":"4"}, + {"id":"n70","type":"text","text":"i18n — 6 locales + RTL","x":3300,"y":510,"width":270,"height":56,"color":"4"}, + {"id":"n71","type":"text","text":"Typography & icons","x":3300,"y":588,"width":270,"height":56,"color":"4"}, + {"id":"n72","type":"text","text":"### Legend\n\n🟩 **Done**\n\n🟧 **In progress**\n\n⬜ **Planned**","x":0,"y":1058,"width":300,"height":200} + ], + "edges":[ + {"id":"e1","fromNode":"n1","fromSide":"bottom","toNode":"n2","toSide":"top"}, + {"id":"e2","fromNode":"n2","fromSide":"bottom","toNode":"n3","toSide":"top"}, + {"id":"e3","fromNode":"n3","fromSide":"bottom","toNode":"n4","toSide":"top"}, + {"id":"e4","fromNode":"n4","fromSide":"bottom","toNode":"n5","toSide":"top"}, + {"id":"e5","fromNode":"n5","fromSide":"bottom","toNode":"n6","toSide":"top"}, + {"id":"e6","fromNode":"n6","fromSide":"bottom","toNode":"n7","toSide":"top"}, + {"id":"e7","fromNode":"n7","fromSide":"bottom","toNode":"n8","toSide":"top"}, + {"id":"e8","fromNode":"n8","fromSide":"bottom","toNode":"n9","toSide":"top"}, + {"id":"e9","fromNode":"n9","fromSide":"bottom","toNode":"n10","toSide":"top"}, + {"id":"e10","fromNode":"n1","fromSide":"bottom","toNode":"n11","toSide":"top"}, + {"id":"e11","fromNode":"n11","fromSide":"bottom","toNode":"n12","toSide":"top"}, + {"id":"e12","fromNode":"n12","fromSide":"bottom","toNode":"n13","toSide":"top"}, + {"id":"e13","fromNode":"n13","fromSide":"bottom","toNode":"n14","toSide":"top"}, + {"id":"e14","fromNode":"n14","fromSide":"bottom","toNode":"n15","toSide":"top"}, + {"id":"e15","fromNode":"n15","fromSide":"bottom","toNode":"n16","toSide":"top"}, + {"id":"e16","fromNode":"n16","fromSide":"bottom","toNode":"n17","toSide":"top"}, + {"id":"e17","fromNode":"n1","fromSide":"bottom","toNode":"n18","toSide":"top"}, + {"id":"e18","fromNode":"n18","fromSide":"bottom","toNode":"n19","toSide":"top"}, + {"id":"e19","fromNode":"n19","fromSide":"bottom","toNode":"n20","toSide":"top"}, + {"id":"e20","fromNode":"n20","fromSide":"bottom","toNode":"n21","toSide":"top"}, + {"id":"e21","fromNode":"n21","fromSide":"bottom","toNode":"n22","toSide":"top"}, + {"id":"e22","fromNode":"n22","fromSide":"bottom","toNode":"n23","toSide":"top"}, + {"id":"e23","fromNode":"n23","fromSide":"bottom","toNode":"n24","toSide":"top"}, + {"id":"e24","fromNode":"n1","fromSide":"bottom","toNode":"n25","toSide":"top"}, + {"id":"e25","fromNode":"n25","fromSide":"bottom","toNode":"n26","toSide":"top"}, + {"id":"e26","fromNode":"n26","fromSide":"bottom","toNode":"n27","toSide":"top"}, + {"id":"e27","fromNode":"n27","fromSide":"bottom","toNode":"n28","toSide":"top"}, + {"id":"e28","fromNode":"n28","fromSide":"bottom","toNode":"n29","toSide":"top"}, + {"id":"e29","fromNode":"n29","fromSide":"bottom","toNode":"n30","toSide":"top"}, + {"id":"e30","fromNode":"n30","fromSide":"bottom","toNode":"n31","toSide":"top"}, + {"id":"e31","fromNode":"n1","fromSide":"bottom","toNode":"n32","toSide":"top"}, + {"id":"e32","fromNode":"n32","fromSide":"bottom","toNode":"n33","toSide":"top"}, + {"id":"e33","fromNode":"n33","fromSide":"bottom","toNode":"n34","toSide":"top"}, + {"id":"e34","fromNode":"n34","fromSide":"bottom","toNode":"n35","toSide":"top"}, + {"id":"e35","fromNode":"n35","fromSide":"bottom","toNode":"n36","toSide":"top"}, + {"id":"e36","fromNode":"n1","fromSide":"bottom","toNode":"n37","toSide":"top"}, + {"id":"e37","fromNode":"n37","fromSide":"bottom","toNode":"n38","toSide":"top"}, + {"id":"e38","fromNode":"n38","fromSide":"bottom","toNode":"n39","toSide":"top"}, + {"id":"e39","fromNode":"n39","fromSide":"bottom","toNode":"n40","toSide":"top"}, + {"id":"e40","fromNode":"n40","fromSide":"bottom","toNode":"n41","toSide":"top"}, + {"id":"e41","fromNode":"n1","fromSide":"bottom","toNode":"n42","toSide":"top"}, + {"id":"e42","fromNode":"n42","fromSide":"bottom","toNode":"n43","toSide":"top"}, + {"id":"e43","fromNode":"n43","fromSide":"bottom","toNode":"n44","toSide":"top"}, + {"id":"e44","fromNode":"n44","fromSide":"bottom","toNode":"n45","toSide":"top"}, + {"id":"e45","fromNode":"n1","fromSide":"bottom","toNode":"n46","toSide":"top"}, + {"id":"e46","fromNode":"n46","fromSide":"bottom","toNode":"n47","toSide":"top"}, + {"id":"e47","fromNode":"n47","fromSide":"bottom","toNode":"n48","toSide":"top"}, + {"id":"e48","fromNode":"n48","fromSide":"bottom","toNode":"n49","toSide":"top"}, + {"id":"e49","fromNode":"n49","fromSide":"bottom","toNode":"n50","toSide":"top"}, + {"id":"e50","fromNode":"n50","fromSide":"bottom","toNode":"n51","toSide":"top"}, + {"id":"e51","fromNode":"n1","fromSide":"bottom","toNode":"n52","toSide":"top"}, + {"id":"e52","fromNode":"n52","fromSide":"bottom","toNode":"n53","toSide":"top"}, + {"id":"e53","fromNode":"n53","fromSide":"bottom","toNode":"n54","toSide":"top"}, + {"id":"e54","fromNode":"n54","fromSide":"bottom","toNode":"n55","toSide":"top"}, + {"id":"e55","fromNode":"n55","fromSide":"bottom","toNode":"n56","toSide":"top"}, + {"id":"e56","fromNode":"n56","fromSide":"bottom","toNode":"n57","toSide":"top"}, + {"id":"e57","fromNode":"n57","fromSide":"bottom","toNode":"n58","toSide":"top"}, + {"id":"e58","fromNode":"n58","fromSide":"bottom","toNode":"n59","toSide":"top"}, + {"id":"e59","fromNode":"n1","fromSide":"bottom","toNode":"n60","toSide":"top"}, + {"id":"e60","fromNode":"n60","fromSide":"bottom","toNode":"n61","toSide":"top"}, + {"id":"e61","fromNode":"n61","fromSide":"bottom","toNode":"n62","toSide":"top"}, + {"id":"e62","fromNode":"n62","fromSide":"bottom","toNode":"n63","toSide":"top"}, + {"id":"e63","fromNode":"n63","fromSide":"bottom","toNode":"n64","toSide":"top"}, + {"id":"e64","fromNode":"n64","fromSide":"bottom","toNode":"n65","toSide":"top"}, + {"id":"e65","fromNode":"n65","fromSide":"bottom","toNode":"n66","toSide":"top"}, + {"id":"e66","fromNode":"n1","fromSide":"bottom","toNode":"n67","toSide":"top"}, + {"id":"e67","fromNode":"n67","fromSide":"bottom","toNode":"n68","toSide":"top"}, + {"id":"e68","fromNode":"n68","fromSide":"bottom","toNode":"n69","toSide":"top"}, + {"id":"e69","fromNode":"n69","fromSide":"bottom","toNode":"n70","toSide":"top"}, + {"id":"e70","fromNode":"n70","fromSide":"bottom","toNode":"n71","toSide":"top"} + ] +} \ No newline at end of file diff --git a/README.md b/README.md index 7e2d486..07f7543 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,8 @@ title: Amn Marketplace — Documentation Vault tags: [moc, index] created: 2026-05-23 --- - + vase in app mikham + # Amn Marketplace — Documentation Vault Complete technical & operational documentation for the **Amn** (a.k.a. "nick app") crypto-escrow marketplace platform. This vault is exhaustive enough to **re-implement the system from scratch** with no access to the source code. diff --git a/nickdock/Welcome.md b/nickdock/Welcome.md new file mode 100644 index 0000000..f9bca28 --- /dev/null +++ b/nickdock/Welcome.md @@ -0,0 +1,5 @@ +This is your new *vault*. + +Make a note of something, [[create a link]], or try [the Importer](https://help.obsidian.md/Plugins/Importer)! + +When you're ready, delete this note and make the vault your own. \ No newline at end of file