[{"data":1,"prerenderedAt":1124},["ShallowReactive",2],{"docs-nav-en":3,"doc-en-\u002Fapp\u002Fxrpl-payment-quickstart":266,"doc-section-en-\u002Fapp":145},[4,146,174,180,200,204,210,229,260],{"title":5,"path":6,"stem":7,"children":8,"page":145},"App","\u002Fapp","app",[9,55,121,125,129,133,137,141],{"title":10,"path":11,"stem":12,"children":13,"page":-1},"Getting Started & Projects","\u002Fapp\u002F1-getting-started-and-projects","app\u002F1-getting-started-and-projects\u002Findex",[14,15,19,23,27,31,35,39,43,47,51],{"title":10,"path":11,"stem":12},{"title":16,"path":17,"stem":18},"Quick Start Tutorial","\u002Fapp\u002F1-getting-started-and-projects\u002Fquickstart","app\u002F1-getting-started-and-projects\u002F01.quickstart",{"title":20,"path":21,"stem":22},"AI Coach Tutorial","\u002Fapp\u002F1-getting-started-and-projects\u002Fai-coach","app\u002F1-getting-started-and-projects\u002F02.ai-coach",{"title":24,"path":25,"stem":26},"App Install · Push","\u002Fapp\u002F1-getting-started-and-projects\u002Fpwa","app\u002F1-getting-started-and-projects\u002F03.pwa",{"title":28,"path":29,"stem":30},"Project List","\u002Fapp\u002F1-getting-started-and-projects\u002Fproject-list","app\u002F1-getting-started-and-projects\u002F04.project-list",{"title":32,"path":33,"stem":34},"Project Detail","\u002Fapp\u002F1-getting-started-and-projects\u002Fproject-detail","app\u002F1-getting-started-and-projects\u002F05.project-detail",{"title":36,"path":37,"stem":38},"Project Calendar","\u002Fapp\u002F1-getting-started-and-projects\u002Fproject-calendar","app\u002F1-getting-started-and-projects\u002F06.project-calendar",{"title":40,"path":41,"stem":42},"Documents & References","\u002Fapp\u002F1-getting-started-and-projects\u002Fdocuments","app\u002F1-getting-started-and-projects\u002F07.documents",{"title":44,"path":45,"stem":46},"Freight & Insurance","\u002Fapp\u002F1-getting-started-and-projects\u002Ffreight-insurance","app\u002F1-getting-started-and-projects\u002F08.freight-insurance",{"title":48,"path":49,"stem":50},"Sharing & Comments","\u002Fapp\u002F1-getting-started-and-projects\u002Fshare-comments","app\u002F1-getting-started-and-projects\u002F09.share-comments",{"title":52,"path":53,"stem":54},"Project Payment","\u002Fapp\u002F1-getting-started-and-projects\u002Fproject-payment","app\u002F1-getting-started-and-projects\u002F10.project-payment",{"title":56,"path":57,"stem":58,"children":59,"page":-1},"Email · Payment · AI","\u002Fapp\u002F2-communication-payment-ai","app\u002F2-communication-payment-ai\u002Findex",[60,61,65,69,73,77,81,85,89,93,97,101,105,109,113,117],{"title":56,"path":57,"stem":58},{"title":62,"path":63,"stem":64},"Email Settings","\u002Fapp\u002F2-communication-payment-ai\u002Femail-settings","app\u002F2-communication-payment-ai\u002F01.email-settings",{"title":66,"path":67,"stem":68},"Inbox & Compose","\u002Fapp\u002F2-communication-payment-ai\u002Femail-inbox","app\u002F2-communication-payment-ai\u002F02.email-inbox",{"title":70,"path":71,"stem":72},"AI Mail Analysis","\u002Fapp\u002F2-communication-payment-ai\u002Femail-ai-analysis","app\u002F2-communication-payment-ai\u002F03.email-ai-analysis",{"title":74,"path":75,"stem":76},"Internal Chat","\u002Fapp\u002F2-communication-payment-ai\u002Fchat","app\u002F2-communication-payment-ai\u002F04.chat",{"title":78,"path":79,"stem":80},"Proof of Funds (PoF)","\u002Fapp\u002F2-communication-payment-ai\u002Fpof","app\u002F2-communication-payment-ai\u002F05.pof",{"title":82,"path":83,"stem":84},"Escrow FCL","\u002Fapp\u002F2-communication-payment-ai\u002Ffcl","app\u002F2-communication-payment-ai\u002F06.fcl",{"title":86,"path":87,"stem":88},"Payment Summary","\u002Fapp\u002F2-communication-payment-ai\u002Fpayment-summary","app\u002F2-communication-payment-ai\u002F07.payment-summary",{"title":90,"path":91,"stem":92},"My Profile","\u002Fapp\u002F2-communication-payment-ai\u002Fmy-profile","app\u002F2-communication-payment-ai\u002F08.my-profile",{"title":94,"path":95,"stem":96},"My Friends","\u002Fapp\u002F2-communication-payment-ai\u002Fmy-friends","app\u002F2-communication-payment-ai\u002F09.my-friends",{"title":98,"path":99,"stem":100},"Subscription & Receipts","\u002Fapp\u002F2-communication-payment-ai\u002Fmy-subscription","app\u002F2-communication-payment-ai\u002F10.my-subscription",{"title":102,"path":103,"stem":104},"Notification Inbox","\u002Fapp\u002F2-communication-payment-ai\u002Fnotifications","app\u002F2-communication-payment-ai\u002F11.notifications",{"title":106,"path":107,"stem":108},"Lyra Chatbot","\u002Fapp\u002F2-communication-payment-ai\u002Flyra-chatbot","app\u002F2-communication-payment-ai\u002F12.lyra-chatbot",{"title":110,"path":111,"stem":112},"LEO Engine","\u002Fapp\u002F2-communication-payment-ai\u002Fleo","app\u002F2-communication-payment-ai\u002F13.leo",{"title":114,"path":115,"stem":116},"CYGNUS Engine","\u002Fapp\u002F2-communication-payment-ai\u002Fcygnus-engine","app\u002F2-communication-payment-ai\u002F14.cygnus-engine",{"title":118,"path":119,"stem":120},"VELA Import Readiness","\u002Fapp\u002F2-communication-payment-ai\u002Fvela-import-readiness","app\u002F2-communication-payment-ai\u002F15.vela-import-readiness",{"title":122,"path":123,"stem":124},"Lyra Interactive Capabilities","\u002Fapp\u002F3-lyra-interactive-capabilities","app\u002F3-lyra-interactive-capabilities",{"title":126,"path":127,"stem":128},"CYGNUS Guide","\u002Fapp\u002F4-cygnus-guide","app\u002F4-cygnus-guide",{"title":130,"path":131,"stem":132},"Department & Company Dashboards","\u002Fapp\u002Fdashboards","app\u002Fdashboards",{"title":134,"path":135,"stem":136},"QT (Quotation) Handshake","\u002Fapp\u002Fqt-handshake","app\u002Fqt-handshake",{"title":138,"path":139,"stem":140},"XRPL Settlement Overview","\u002Fapp\u002Fsettlement","app\u002Fsettlement",{"title":142,"path":143,"stem":144},"XRPL Payment Quick Start","\u002Fapp\u002Fxrpl-payment-quickstart","app\u002Fxrpl-payment-quickstart",false,{"title":147,"path":148,"stem":149,"children":150,"page":-1},"Common","\u002Fcommon","common",[151,154,158,162,166,170],{"title":152,"path":148,"stem":153},"Common Features Overview","common\u002Findex",{"title":155,"path":156,"stem":157},"Account Management","\u002Fcommon\u002F1-account","common\u002F1-account",{"title":159,"path":160,"stem":161},"Subscription · Billing · Tokens","\u002Fcommon\u002F2-subscription-billing","common\u002F2-subscription-billing",{"title":163,"path":164,"stem":165},"License","\u002Fcommon\u002F3-license","common\u002F3-license",{"title":167,"path":168,"stem":169},"Login SSO · Family Sites","\u002Fcommon\u002F4-sso-family","common\u002F4-sso-family",{"title":171,"path":172,"stem":173},"Feedback","\u002Fcommon\u002F5-feedback","common\u002F5-feedback",{"title":175,"path":176,"stem":177,"children":178},"Forwarder Portal","\u002Fforwarder","forwarder\u002Findex",[179],{"title":175,"path":176,"stem":177},{"title":181,"path":182,"stem":183,"children":184,"page":-1},"Guild","\u002Fguild","guild",[185,188,192,196],{"title":186,"path":182,"stem":187},"Overview · Getting Started","guild\u002Findex",{"title":189,"path":190,"stem":191},"Using the Community","\u002Fguild\u002F1-community","guild\u002F1-community",{"title":193,"path":194,"stem":195},"Trade Wiki","\u002Fguild\u002F2-wiki","guild\u002F2-wiki",{"title":197,"path":198,"stem":199},"Free LC Review","\u002Fguild\u002F3-lc-checker","guild\u002F3-lc-checker",{"title":201,"path":202,"stem":203},"Home","\u002F","index",{"title":205,"path":206,"stem":207,"children":208},"MCP Integration","\u002Fmcp","mcp\u002Findex",[209],{"title":205,"path":206,"stem":207},{"title":211,"path":212,"stem":213,"children":214,"page":-1},"Store","\u002Fstore","store",[215,217,221,225],{"title":186,"path":212,"stem":216},"store\u002Findex",{"title":218,"path":219,"stem":220},"Buyer Guide","\u002Fstore\u002F1-buyer","store\u002F1-buyer",{"title":222,"path":223,"stem":224},"Seller Guide","\u002Fstore\u002F2-seller","store\u002F2-seller",{"title":226,"path":227,"stem":228},"Seller Chatbot","\u002Fstore\u002F3-chatbot","store\u002F3-chatbot",{"title":230,"path":231,"stem":232,"children":233,"page":-1},"Studio","\u002Fstudio","studio",[234,236,240,244,248,252,256],{"title":186,"path":231,"stem":235},"studio\u002Findex",{"title":237,"path":238,"stem":239},"Creating Cards & Card Series","\u002Fstudio\u002F1-card-news","studio\u002F1-card-news",{"title":241,"path":242,"stem":243},"Image Tools","\u002Fstudio\u002F2-image-tools","studio\u002F2-image-tools",{"title":245,"path":246,"stem":247},"Pictor Chat","\u002Fstudio\u002F3-pictor-chat","studio\u002F3-pictor-chat",{"title":249,"path":250,"stem":251},"Object Library","\u002Fstudio\u002F4-objects-video","studio\u002F4-objects-video",{"title":253,"path":254,"stem":255},"Video Studio","\u002Fstudio\u002F5-video-studio","studio\u002F5-video-studio",{"title":257,"path":258,"stem":259},"Publishing Channels","\u002Fstudio\u002F6-social-channels","studio\u002F6-social-channels",{"title":261,"path":262,"stem":263,"children":264},"Video Tour","\u002Fvideos","videos\u002Findex",[265],{"title":261,"path":262,"stem":263},{"id":267,"title":142,"body":268,"description":1108,"doc_type":1109,"domain":1110,"extension":1111,"field_ids":1112,"help":1112,"meta":1113,"navigation":1114,"page_id":1115,"path":143,"playbook_can":1112,"playbook_cannot":1112,"playbook_recipes":1112,"related_pages":1112,"seo":1116,"service":7,"stem":144,"tags":1117,"video":1112,"__hash__":1123},"content_en\u002Fapp\u002Fxrpl-payment-quickstart.md",{"type":269,"value":270,"toc":1088},"minimark",[271,276,288,296,299,304,309,369,380,382,386,391,402,418,432,440,443,522,526,540,555,559,562,606,609,634,641,643,647,651,659,677,681,686,706,710,720,747,750,789,793,796,799,815,819,826,848,851,853,857,860,893,896,898,905,1035,1037,1041,1051,1053,1057,1084],[272,273,275],"h1",{"id":274},"xrpl-payments-devnet-quick-start","XRPL Payments (Devnet) — Quick Start",[277,278,279,283,284,287],"p",{},[280,281,282],"strong",{},"Audience",": Operators and developers running demos\u002Fverification\n",[280,285,286],{},"Prerequisites",": tflow-server \u002F tflow-client running, Devnet environment",[277,289,290,291,295],{},"This document walks you through the end-to-end demo procedure on the ",[292,293,294],"code",{},"\u002Fprojects\u002F:id\u002Fpayment"," screen (ProjectPayment), step by step: creating a milestone → depositing → locking escrow → settlement. It also summarizes where to look when a screen is empty or stuck.",[297,298],"hr",{},[300,301],"doc-video",{"src":302,"title":303},"\u002Fvideos\u002Fapp-xrpl-payment-quickstart.mp4","XRPL Payment Quick Start — Escrow demo on Devnet, from milestone to settlement",[305,306,308],"h2",{"id":307},"_0-pre-checks-operator-checklist","0. Pre-checks — Operator Checklist",[310,311,312,328],"table",{},[313,314,315],"thead",{},[316,317,318,322,325],"tr",{},[319,320,321],"th",{},"Item",[319,323,324],{},"How to check",[319,326,327],{},"Healthy state",[329,330,331,345,358],"tbody",{},[316,332,333,337,342],{},[334,335,336],"td",{},"Devnet activation",[334,338,339],{},[292,340,341],{},"cd tflow-xrpl-payment\u002Fserver && node scripts\u002Ftus-ops.js balance \u003CTFlow address>",[334,343,344],{},"XRP > 10, TUS TrustLine exists",[316,346,347,350,353],{},[334,348,349],{},"TUS Issuer flag",[334,351,352],{},"Query the Issuer address with the same command",[334,354,355],{},[292,356,357],{},"allowTrustLineLocking: true",[316,359,360,363,366],{},[334,361,362],{},"TFlow Wallet → Issuer TrustLine",[334,364,365],{},"Same as above",[334,367,368],{},"TUS entry shown",[277,370,371,372,375,376,379],{},"If inactive → run setup with ",[292,373,374],{},"tflow-xrpl-payment\u002Fserver\u002Fscripts\u002Ftus-ops.js",", or see the ",[292,377,378],{},"Phase 1 README",".",[297,381],{},[305,383,385],{"id":384},"_1-project-side-preparation","1. Project-side Preparation",[387,388,390],"h3",{"id":389},"_1-1-register-buyer-seller-in-projectshare","1-1. Register Buyer \u002F Seller in ProjectShare",[277,392,393,394,397,398,401],{},"In the ",[292,395,396],{},"\u002Fprojects\u002F:id\u002Fshare"," menu, add ",[280,399,400],{},"two users",", each with a different actor_type:",[403,404,405,412],"ul",{},[406,407,408,409],"li",{},"User A → ",[292,410,411],{},"actor_type = 'buyer'",[406,413,414,415],{},"User B → ",[292,416,417],{},"actor_type = 'seller'",[419,420,421],"blockquote",{},[277,422,423,424,427,428,431],{},"⚠️ If Buyer\u002FSeller are not registered, the case is created with ",[292,425,426],{},"seller_user_id"," as NULL. The case itself is created, but during escrow the wallet address is empty, so ",[292,429,430],{},"lock-funds"," fails. You can still add milestones, but the actual payment flow is only possible after both roles are registered.",[387,433,435,436],{"id":434},"_1-2-activate-each-users-xrpl-wallet-devnet","1-2. Activate each user's XRPL wallet (Devnet) ",[437,438],"span",{"id":439},"help-app-xrpl-quickstart-wallet-activation",[277,441,442],{},"Each demonstrator, in a separate browser \u002F incognito window:",[444,445,446,461,467],"ol",{},[406,447,448,449,452,453,460],{},"Install the ",[280,450,451],{},"Crossmark extension"," (",[454,455,459],"a",{"href":456,"rel":457},"https:\u002F\u002Fcrossmark.io",[458],"nofollow","crossmark.io",")",[406,462,463,464,460],{},"Create a new wallet → obtain the address (e.g., ",[292,465,466],{},"r9uEmgPLHMNZS8AHH62zm5whEVYXRn5vPJ",[406,468,469,470,521],{},"Activate with the Devnet faucet:\n",[471,472,477],"pre",{"className":473,"code":474,"language":475,"meta":476,"style":476},"language-bash shiki shiki-themes github-light github-dark","curl -X POST https:\u002F\u002Ffaucet.devnet.rippletest.net\u002Faccounts \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"destination\":\"\u003Cwallet address>\"}'\n","bash","",[292,478,479,501,512],{"__ignoreMap":476},[437,480,483,487,491,495,498],{"class":481,"line":482},"line",1,[437,484,486],{"class":485},"sScJk","curl",[437,488,490],{"class":489},"sj4cs"," -X",[437,492,494],{"class":493},"sZZnC"," POST",[437,496,497],{"class":493}," https:\u002F\u002Ffaucet.devnet.rippletest.net\u002Faccounts",[437,499,500],{"class":489}," \\\n",[437,502,504,507,510],{"class":481,"line":503},2,[437,505,506],{"class":489},"  -H",[437,508,509],{"class":493}," \"Content-Type: application\u002Fjson\"",[437,511,500],{"class":489},[437,513,515,518],{"class":481,"line":514},3,[437,516,517],{"class":489},"  -d",[437,519,520],{"class":493}," '{\"destination\":\"\u003Cwallet address>\"}'\n","\n→ 100 XRP deposited + account activated",[387,523,525],{"id":524},"_1-3-register-the-wallet-in-the-host-ui","1-3. Register the wallet in the host UI",[277,527,528,529,531,532,535,536,539],{},"Each demonstrator goes to ",[292,530,294],{}," → ",[280,533,534],{},"Verification (Request)"," or ",[280,537,538],{},"Verification (Issue)"," tab → Connect Wallet button:",[403,541,542,545,552],{},[406,543,544],{},"Approve sign-in in the Crossmark popup",[406,546,547,548,551],{},"The system automatically opens a ",[280,549,550],{},"TUS TrustLine setup popup"," → sign (one time)",[406,553,554],{},"\"Wallet registered\" toast",[387,556,558],{"id":557},"_1-4-issue-tus-tokens-to-the-buyer-operator","1-4. Issue TUS tokens to the Buyer (operator)",[277,560,561],{},"The operator runs a one-line command:",[471,563,565],{"className":473,"code":564,"language":475,"meta":476,"style":476},"cd tflow-xrpl-payment\u002Fserver\nnode scripts\u002Ftus-ops.js issue \u003CBuyer address> 1000\n",[292,566,567,575],{"__ignoreMap":476},[437,568,569,572],{"class":481,"line":482},[437,570,571],{"class":489},"cd",[437,573,574],{"class":493}," tflow-xrpl-payment\u002Fserver\n",[437,576,577,580,583,586,590,593,596,600,603],{"class":481,"line":503},[437,578,579],{"class":485},"node",[437,581,582],{"class":493}," scripts\u002Ftus-ops.js",[437,584,585],{"class":493}," issue",[437,587,589],{"class":588},"szBVR"," \u003C",[437,591,592],{"class":493},"Buyer",[437,594,595],{"class":493}," addres",[437,597,599],{"class":598},"sVt8B","s",[437,601,602],{"class":588},">",[437,604,605],{"class":489}," 1000\n",[277,607,608],{},"→ Issues 1000 TUS to the Buyer wallet. Check the balance:",[471,610,612],{"className":473,"code":611,"language":475,"meta":476,"style":476},"node scripts\u002Ftus-ops.js balance \u003CBuyer address>\n",[292,613,614],{"__ignoreMap":476},[437,615,616,618,620,623,625,627,629,631],{"class":481,"line":482},[437,617,579],{"class":485},[437,619,582],{"class":493},[437,621,622],{"class":493}," balance",[437,624,589],{"class":588},[437,626,592],{"class":493},[437,628,595],{"class":493},[437,630,599],{"class":598},[437,632,633],{"class":588},">\n",[277,635,636,637,640],{},"⚠️ Issuance must happen only after 1-3 (Buyer sets up the TrustLine) is complete. If it isn't finished, the issuance transaction is rejected with ",[292,638,639],{},"tecPATH_DRY"," or similar.",[297,642],{},[305,644,646],{"id":645},"_2-payment-demo-flow","2. Payment Demo Flow",[387,648,650],{"id":649},"_2-1-create-a-milestone-case","2-1. Create a milestone (case)",[277,652,653,531,655,658],{},[292,654,294],{},[280,656,657],{},"Settlement Dashboard"," tab:",[444,660,661,668,671],{},[406,662,663,664,667],{},"Click the ",[280,665,666],{},"\"Add Milestone\""," button in the center of the empty screen",[406,669,670],{},"Modal: enter milestone name (e.g., \"Advance 30%\"), amount (e.g., 100), ratio (30), date",[406,672,673,674],{},"Create → first case registered, status = ",[292,675,676],{},"DRAFT",[387,678,680],{"id":679},"_2-2-buyer-deposits-deposit","2-2. Buyer deposits (Deposit)",[277,682,683,685],{},[280,684,538],{}," tab (automatic if you have Buyer permission) → \"Deposit Tokens\" action:",[444,687,688,691,703],{},[406,689,690],{},"Crossmark popup → sign the Payment transaction (Buyer → TFlow Escrow Agent)",[406,692,693,694,697,698,531,700],{},"Server: calls the ",[292,695,696],{},"confirm-funding"," API → status ",[292,699,676],{},[292,701,702],{},"FUNDED",[406,704,705],{},"Verify the transaction on devnet.xrpl.org (the TX hash is shown in the UI)",[387,707,709],{"id":708},"_2-3-automatic-escrow-lock-lock","2-3. Automatic escrow lock (Lock)",[277,711,712,713,716,717,719],{},"The ",[292,714,715],{},"XrplEscrowJob worker"," runs every 30 seconds, finds ",[292,718,702],{}," cases, and automatically runs EscrowCreate:",[403,721,722,730,733],{},[406,723,724,725,531,727],{},"Within 30 seconds, status ",[292,726,702],{},[292,728,729],{},"ESCROW_OPEN",[406,731,732],{},"The TFlow Oracle wallet locks the IOU into escrow (Crypto-Condition security)",[406,734,735,736,739,740,739,743,746],{},"Stores ",[292,737,738],{},"escrow_sequence",", ",[292,741,742],{},"escrow_condition",[292,744,745],{},"escrow_fulfillment"," in the DB",[277,748,749],{},"To lock immediately without waiting (optional):",[471,751,753],{"className":473,"code":752,"language":475,"meta":476,"style":476},"curl -X POST http:\u002F\u002Flocalhost:3000\u002Fapi\u002Fpayment\u002Fcases\u002F\u003Ccase-uuid>\u002Flock-funds \\\n  -H \"Authorization: Bearer \u003Ctoken>\"\n",[292,754,755,782],{"__ignoreMap":476},[437,756,757,759,761,763,766,769,772,775,777,780],{"class":481,"line":482},[437,758,486],{"class":485},[437,760,490],{"class":489},[437,762,494],{"class":493},[437,764,765],{"class":493}," http:\u002F\u002Flocalhost:3000\u002Fapi\u002Fpayment\u002Fcases\u002F",[437,767,768],{"class":588},"\u003C",[437,770,771],{"class":493},"case-uui",[437,773,774],{"class":598},"d",[437,776,602],{"class":588},[437,778,779],{"class":493},"\u002Flock-funds",[437,781,500],{"class":489},[437,783,784,786],{"class":481,"line":503},[437,785,506],{"class":489},[437,787,788],{"class":493}," \"Authorization: Bearer \u003Ctoken>\"\n",[387,790,792],{"id":791},"_2-4-seller-uploads-documents-buyer-approves-release","2-4. Seller uploads documents + Buyer approves → Release",[277,794,795],{},"Verification (Request) tab (Seller) → upload documents → AI verification → \"Request Approval\"",[277,797,798],{},"Verification (Issue) tab (Buyer) → \"Approve\" → server runs EscrowFinish:",[403,800,801,809],{},[406,802,803,804,531,806],{},"status ",[292,805,729],{},[292,807,808],{},"RELEASED",[406,810,811,812,460],{},"IOU deposited to the Seller wallet (check the balance: ",[292,813,814],{},"node scripts\u002Ftus-ops.js balance \u003CSeller address>",[387,816,818],{"id":817},"_2-5-optional-refund-demo","2-5. (Optional) Refund demo",[277,820,821,822,825],{},"By default ",[292,823,824],{},"cancelAfterSeconds = 7 days",", so immediate refunds are not possible. For a demo:",[471,827,829],{"className":473,"code":828,"language":475,"meta":476,"style":476},"# tflow-server\u002F.env\nXRPL_ESCROW_CANCEL_AFTER_SECONDS=60\n",[292,830,831,837],{"__ignoreMap":476},[437,832,833],{"class":481,"line":482},[437,834,836],{"class":835},"sJ8bj","# tflow-server\u002F.env\n",[437,838,839,842,845],{"class":481,"line":503},[437,840,841],{"class":598},"XRPL_ESCROW_CANCEL_AFTER_SECONDS",[437,843,844],{"class":588},"=",[437,846,847],{"class":493},"60\n",[277,849,850],{},"After restarting, create a new case → after 60 seconds click the \"Refund\" button → EscrowCancel → funds recovered to TFlow → Payment to the Buyer.",[297,852],{},[305,854,856],{"id":855},"_3-cleanup-after-the-demo-operator","3. Cleanup after the demo (operator)",[277,858,859],{},"The TUS held by each demonstrator is a temporary Devnet token, so it can safely be discarded. But if you want to reuse the same wallet for the next demo, you can recover it to the Issuer:",[471,861,863],{"className":473,"code":862,"language":475,"meta":476,"style":476},"node scripts\u002Ftus-ops.js return \u003Cholder-seed> \u003Camount>\n",[292,864,865],{"__ignoreMap":476},[437,866,867,869,871,874,876,879,881,883,885,888,891],{"class":481,"line":482},[437,868,579],{"class":485},[437,870,582],{"class":493},[437,872,873],{"class":493}," return",[437,875,589],{"class":588},[437,877,878],{"class":493},"holder-see",[437,880,774],{"class":598},[437,882,602],{"class":588},[437,884,589],{"class":588},[437,886,887],{"class":493},"amoun",[437,889,890],{"class":598},"t",[437,892,633],{"class":588},[277,894,895],{},"→ The holder's TUS is sent to the Issuer and automatically burned.",[297,897],{},[305,899,901,902],{"id":900},"_4-common-sticking-points-troubleshooting","4. Common Sticking Points — Troubleshooting ",[437,903],{"id":904},"help-app-xrpl-quickstart-troubleshooting",[310,906,907,920],{},[313,908,909],{},[316,910,911,914,917],{},[319,912,913],{},"Symptom",[319,915,916],{},"Cause",[319,918,919],{},"Resolution",[329,921,922,940,953,977,988,1007,1018],{},[316,923,924,930,933],{},[334,925,926,929],{},[292,927,928],{},"Column 'seller_user_id' cannot be null"," when adding a milestone",[334,931,932],{},"Migration not applied",[334,934,935,936,939],{},"Apply ",[292,937,938],{},"migration 20260507-01",". Or register a seller in ProjectShare",[316,941,942,947,950],{},[334,943,944,946],{},[292,945,639],{}," on Deposit",[334,948,949],{},"Buyer TrustLine not set up, or TUS balance is 0",[334,951,952],{},"Redo in the order 1-3 then 1-4",[316,954,955,964,967],{},[334,956,957,535,960,963],{},[292,958,959],{},"tecNO_PERMISSION",[292,961,962],{},"temMALFORMED"," on EscrowCreate",[334,965,966],{},"Issuer flag not set",[334,968,969,970,973,974],{},"Check ",[292,971,972],{},"allowTrustLineLocking"," with ",[292,975,976],{},"tus-ops.js balance \u003CIssuer>",[316,978,979,982,985],{},[334,980,981],{},"Seller balance unchanged after EscrowFinish",[334,983,984],{},"Seller TrustLine missing",[334,986,987],{},"Re-enter the host UI from the Seller wallet → triggers automatic TrustLine setup",[316,989,990,993,996],{},[334,991,992],{},"Automatic lock doesn't happen even after waiting 30 seconds",[334,994,995],{},"XrplEscrowJob worker not running",[334,997,998,999,1002,1003,1006],{},"Check for ",[292,1000,1001],{},"[AutoLock] Job started"," in the ",[292,1004,1005],{},"tflow-server"," logs. If absent, restart the worker process",[316,1008,1009,1012,1015],{},[334,1010,1011],{},"Crossmark popup doesn't appear",[334,1013,1014],{},"Extension disabled, or the session is held by another tab",[334,1016,1017],{},"Click the Crossmark extension again → refresh the tab",[316,1019,1020,1023,1029],{},[334,1021,1022],{},"Screen shows \"T FLOW Network\" \u002F \"Global Traders Ltd.\"",[334,1024,1025,1026,460],{},"You entered the mock demo screen (",[292,1027,1028],{},"\u002Fdemo\u002Fpayment",[334,1030,1031,1032,1034],{},"Go to the ",[292,1033,294],{}," production screen",[297,1036],{},[305,1038,1040],{"id":1039},"_5-mainnet-transition-is-separate","5. Mainnet Transition is Separate",[277,1042,1043,1044,1047,1048,379],{},"This guide is for Devnet only. Mainnet RLUSD escrow becomes possible only after Ripple enables the ",[292,1045,1046],{},"asfAllowTrustLineLocking"," flag on the RLUSD issuer account (currently inactive). For preparation items, see ",[292,1049,1050],{},"260506-xrpl-스타일링\u002FREADME.md Phase 4",[297,1052],{},[305,1054,1056],{"id":1055},"_6-related-tools-files","6. Related Tools \u002F Files",[403,1058,1059,1064,1070,1079],{},[406,1060,1061,1062],{},"Operations script: ",[292,1063,374],{},[406,1065,1066,1067],{},"e2e dry-run: ",[292,1068,1069],{},"tflow-xrpl-payment\u002Fserver\u002Fscripts\u002Fdry-run.js",[406,1071,1072,1073,739,1075,1078],{},"Demo screens (mock): ",[292,1074,1028],{},[292,1076,1077],{},"\u002Fdemo\u002Fpof"," (hidden routes)",[406,1080,1081,1082],{},"Production screen: ",[292,1083,294],{},[1085,1086,1087],"style",{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}",{"title":476,"searchDepth":514,"depth":514,"links":1089},[1090,1091,1097,1104,1105,1106,1107],{"id":307,"depth":503,"text":308},{"id":384,"depth":503,"text":385,"children":1092},[1093,1094,1095,1096],{"id":389,"depth":514,"text":390},{"id":434,"depth":514,"text":435},{"id":524,"depth":514,"text":525},{"id":557,"depth":514,"text":558},{"id":645,"depth":503,"text":646,"children":1098},[1099,1100,1101,1102,1103],{"id":649,"depth":514,"text":650},{"id":679,"depth":514,"text":680},{"id":708,"depth":514,"text":709},{"id":791,"depth":514,"text":792},{"id":817,"depth":514,"text":818},{"id":855,"depth":503,"text":856},{"id":900,"depth":503,"text":901},{"id":1039,"depth":503,"text":1040},{"id":1055,"depth":503,"text":1056},"A quick start guide for demonstrating and verifying XRPL-based payments (Escrow\u002FPoF)","guide","tflowx.com","md",null,{},{"title":142},"app-xrpl-quickstart",{"title":142,"description":1108},[1118,1119,1120,1121,1122],"XRPL","결제","에스크로","PoF","Devnet","iqv6dLIMH8l8ZiOr41b4ktCyK-6hM9UwKvJXCeu29tM",1792835666464]