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