[{"data":1,"prerenderedAt":432},["ShallowReactive",2],{"blog-\u002Fget-inspired\u002Fblog\u002Fpermissioned-domains-and-dexes-on-xrpl-what-we-learned":3,"relation-people":215},{"id":4,"title":5,"audioLink":6,"authors":7,"body":9,"description":204,"draft":205,"episodeNumber":6,"extension":206,"mainImage":207,"meta":208,"navigation":209,"path":210,"publishedAt":211,"seo":212,"stem":213,"transcriptPdf":6,"__hash__":214},"blog\u002Fget-inspired\u002Fblog\u002Fpermissioned-domains-and-dexes-on-xrpl-what-we-learned.md","Permissioned Domains and DEXs on XRPL: What We Learned",null,[8],"romain-thepaut",{"type":10,"value":11,"toc":192},"minimark",[12,16,19,27,30,33,36,49,52,55,61,64,67,79,82,88,91,94,114,120,131,137,140,143,154,160,178,184],[13,14,15],"p",{},"We tested XLS-80 (Permissioned Domains) and XLS-81 (Permissioned DEXes) on Devnet. Everything works as specified. On January 23rd, 2026, XRPL Commons voted YES on both amendments.",[13,17,18],{},"This blog summarizes our testing of the Permissioned Domains and Permissioned DEXes amendments on the XRP Ledger, and what we learned running them end-to-end on Devnet.",[20,21,23],"h3",{"id":22},"what-these-amendments-enable",[24,25,26],"strong",{},"What these amendments enable",[13,28,29],{},"Permissioned Domains (XLS-80) let operators create controlled environments on XRPL. A domain operator defines which credentials are accepted, and accounts holding valid credentials automatically become members. This applies regulatory constraints—KYC, sanctions checks—without changing the ledger’s decentralized architecture.",[13,31,32],{},"Permissioned DEXes (XLS-81) extend the native DEX with permissioned order books. Only members of the same domain can trade with each other, ensuring all counterparties have been vetted.",[13,34,35],{},"Three offer types are introduced:",[37,38,39,43,46],"ul",{},[40,41,42],"li",{},"Open offers — standard XRPL DEX behavior",[40,44,45],{},"Permissioned offers — restricted to a single domain",[40,47,48],{},"Hybrid offers — trade both within a domain and on the open DEX",[13,50,51],{},"Both amendments build on XLS-70 Credentials, which provide an on-chain identity layer where issuers can attest facts about accounts (identity verification, compliance status) that other participants can rely on.",[13,53,54],{},"Together, these amendments enable institutional-grade DeFi: stablecoin-fiat FX, payroll disbursements, international B2B payments, and corporate treasury operations—all while remaining compliant.",[20,56,58],{"id":57},"critical-note-on-iou-configuration",[24,59,60],{},"Critical note on IOU configuration",[13,62,63],{},"This was our main blocker during early testing.",[13,65,66],{},"For rippling to work properly:",[68,69,70,73,76],"ol",{},[40,71,72],{},"The issuer must enable DefaultRipple",[40,74,75],{},"Users must create trust lines to the issuer",[40,77,78],{},"The issuer must explicitly clear the NoRipple flag on each user trust line",[13,80,81],{},"If the issuer skips step 3, third-party trades fail with tecPATH_DRY or tecKILLED.",[20,83,85],{"id":84},"what-we-tested",[24,86,87],{},"What we tested",[13,89,90],{},"We manually tested the full lifecycle: credentials (create, accept, verify, delete), domains (create, modify, delete, credential limits), and DEX operations (open\u002Fpermissioned\u002Fhybrid offers, domain-scoped order books, offer matching, non-member rejection).",[13,92,93],{},"Results: All XLS-70, XLS-80, and XLS-81 features worked as expected.",[37,95,96,99,102,105,108,111],{},[40,97,98],{},"Credential issuance and acceptance behaved correctly",[40,100,101],{},"Domain membership derived automatically from valid credentials",[40,103,104],{},"Permissioned offers properly isolated—only same-domain members could trade",[40,106,107],{},"Non-members correctly rejected with tecNO_PERMISSION",[40,109,110],{},"Hybrid offers matched permissioned liquidity first, then fell back to open DEX",[40,112,113],{},"Expired credentials correctly prevented access",[20,115,117],{"id":116},"known-limitations",[24,118,119],{},"Known limitations",[37,121,122,125,128],{},[40,123,124],{},"No auto-cross on placement — a taker transaction is always required to trigger matching",[40,126,127],{},"Liquidity is domain-scoped — trades can’t span multiple permissioned domains",[40,129,130],{},"Strict dependency order — XLS-81 requires XLS-80, which requires XLS-70",[20,132,134],{"id":133},"why-we-voted-yes",[24,135,136],{},"Why we voted YES",[13,138,139],{},"Based on our testing, these amendments behave as specified and are stable on Devnet. On January 23rd, 2026, XRPL Commons voted YES on both XLS-80 and XLS-81.",[13,141,142],{},"A few considerations for those evaluating these amendments:",[37,144,145,148,151],{},[40,146,147],{},"Institutions must carefully configure IOU rippling",[40,149,150],{},"Domain operators need clear guidance on credential lifecycle management",[40,152,153],{},"Liquidity fragmentation is an intentional trade-off for regulatory compliance",[20,155,157],{"id":156},"resources",[24,158,159],{},"Resources",[37,161,162,171],{},[40,163,164],{},[165,166,170],"a",{"href":167,"rel":168},"https:\u002F\u002Fgithub.com\u002FXRPLF\u002FXRPL-Standards\u002Fblob\u002Fmaster\u002FXLS-0080-permissioned-domains\u002FREADME.md",[169],"nofollow","XLS-80 Permissioned Domains Specification",[40,172,173],{},[165,174,177],{"href":175,"rel":176},"https:\u002F\u002Fgithub.com\u002FXRPLF\u002FXRPL-Standards\u002Fdiscussions\u002F229",[169],"XLS-81 Permissioned DEXes Discussion",[20,179,181],{"id":180},"try-it-out-yourself",[24,182,183],{},"Try it out yourself",[13,185,186,187],{},"Test these features directly: ",[165,188,191],{"href":189,"rel":190},"https:\u002F\u002Ftests.xrpl-commons.org\u002FpermissionedDEXes",[169],"tests.xrpl-commons.org\u002FpermissionedDEXes",{"title":193,"searchDepth":194,"depth":194,"links":195},"",2,[196,198,199,200,201,202,203],{"id":22,"depth":197,"text":26},3,{"id":57,"depth":197,"text":60},{"id":84,"depth":197,"text":87},{"id":116,"depth":197,"text":119},{"id":133,"depth":197,"text":136},{"id":156,"depth":197,"text":159},{"id":180,"depth":197,"text":183},"We put XLS-80 (Permissioned Domains) and XLS-81 (Permissioned DEXs) through end-to-end testing on Devnet—from credentials and domain setup to trading across open, permissioned, and hybrid offers. Everything behaved as specified, showing these amendments are stable and ready for real-world use.",false,"md","\u002Fimages\u002Fblog\u002Fpermissioned-domains-and-dexes-on-xrpl-what-we-learned\u002Fcover.webp",{},true,"\u002Fget-inspired\u002Fblog\u002Fpermissioned-domains-and-dexes-on-xrpl-what-we-learned","2026-01-26",{"title":5,"description":204},"get-inspired\u002Fblog\u002Fpermissioned-domains-and-dexes-on-xrpl-what-we-learned","-sf5VyGT5doEbMb4tGtmaZkK_9_fAdpODYNGjlah7TI",[216,219,222,225,228,231,234,237,240,243,246,249,252,255,258,261,264,267,270,273,276,279,282,285,288,291,294,297,300,303,306,309,312,315,318,321,324,327,330,333,336,339,342,345,348,351,354,357,360,363,366,369,372,375,378,381,384,387,390,393,396,399,402,405,408,411,414,417,420,423,426,429],{"stem":217,"name":218},"people\u002Fadria-carrera-mas","Adrià Carrera Mas",{"stem":220,"name":221},"people\u002Falex-mavigok","Alex Mavigok",{"stem":223,"name":224},"people\u002Falexandre-duarte","Alexandre Duarte",{"stem":226,"name":227},"people\u002Famaury-mongreville","Amaury Mongreville",{"stem":229,"name":230},"people\u002Fartur-kirjakulov-phd","Artur Kirjakulov, PhD",{"stem":232,"name":233},"people\u002Fasheesh-birla","Asheesh Birla",{"stem":235,"name":236},"people\u002Faurelien-burget","Aurélien Burget",{"stem":238,"name":239},"people\u002Fcassie-hirsh","Cassie Hirsh",{"stem":241,"name":242},"people\u002Fcharley-huebner","Charley Huebner",{"stem":244,"name":245},"people\u002Fchris-dangerfield","Chris Dangerfield",{"stem":247,"name":248},"people\u002Fclay-tantor","Clay Graham",{"stem":250,"name":251},"people\u002Fcyrille-bourdeaux","Cyrille Bourdeaux",{"stem":253,"name":254},"people\u002Fdan-wallace","Dan Wallace",{"stem":256,"name":257},"people\u002Fdaniel-arroche","Daniel Arroche",{"stem":259,"name":260},"people\u002Fdarius-tumas","Darius Tumas",{"stem":262,"name":263},"people\u002Fdavid-bchiri","David Bchiri",{"stem":265,"name":266},"people\u002Fdavid-servais","David Servais",{"stem":268,"name":269},"people\u002Fdeath-ranger","Death Ranger",{"stem":271,"name":272},"people\u002Fdenis-angell","Denis Angell",{"stem":274,"name":275},"people\u002Fdr-nicolas-figay","Dr. Nicolas Figay",{"stem":277,"name":278},"people\u002Felie-aben-moha","Elie Aben Moha",{"stem":280,"name":281},"people\u002Felisa-bailly","Elisa Bailly",{"stem":283,"name":284},"people\u002Ffabiola-bernard","Fabiola Bernard",{"stem":286,"name":287},"people\u002Ffanny-brakchi","Fanny Brakchi",{"stem":289,"name":290},"people\u002Fferran-prat-tio","Ferran Prat Tió",{"stem":292,"name":293},"people\u002Ffig-squid-router","Fig",{"stem":295,"name":296},"people\u002Fflorence-tison","Florence Tison",{"stem":298,"name":299},"people\u002Fflorent-uzio","Florent Uzio",{"stem":301,"name":302},"people\u002Fflorian-alonso","Florian Alonso",{"stem":304,"name":305},"people\u002Ffrederic-martin","Frédéric Martin",{"stem":307,"name":308},"people\u002Fguillaume-evrat","Guillaume Evrat",{"stem":310,"name":311},"people\u002Fguy-levi-bochi","Guy Lévi-Bochi",{"stem":313,"name":314},"people\u002Fimad-el-aouny","Imad EL Aouny",{"stem":316,"name":317},"people\u002Fkrippenreiter","Krippenreiter",{"stem":319,"name":320},"people\u002Flara-pagnier","Lara Pagnier",{"stem":322,"name":323},"people\u002Flauren-berta","Lauren Berta",{"stem":325,"name":326},"people\u002Fluc-bocahut","Luc Bocahut",{"stem":328,"name":329},"people\u002Fmanthan-dave","Manthan Dave",{"stem":331,"name":332},"people\u002Fmarc-hayot","Marc Hayot",{"stem":334,"name":335},"people\u002Fmarco-brondani","Marco Brondani",{"stem":337,"name":338},"people\u002Fmarco-neri","Marco Neri",{"stem":340,"name":341},"people\u002Fmargaux-frisque","Margaux Frisque",{"stem":343,"name":344},"people\u002Fmartino-bettucci","Martino Bettucci",{"stem":346,"name":347},"people\u002Fmathilde-morineaux","Mathilde Morineaux",{"stem":349,"name":350},"people\u002Fmathis-sergent","Mathis Sergent",{"stem":352,"name":353},"people\u002Fmatt-mankins","Matt Mankins",{"stem":355,"name":356},"people\u002Fmawuena-tendar","Mawuena Tendar",{"stem":358,"name":359},"people\u002Fmayukha-vadari","Mayukha Vadari",{"stem":361,"name":362},"people\u002Fmelanie-damour","Melanie Damour",{"stem":364,"name":365},"people\u002Fmichael-burow","Michaël Burow",{"stem":367,"name":368},"people\u002Fneti-poland","Neti Poland",{"stem":370,"name":371},"people\u002Fnick-daze","Nick Dazé",{"stem":373,"name":374},"people\u002Fodelia-torteman","Odelia Torteman",{"stem":376,"name":377},"people\u002Fparisa-ghodous","Parisa Ghodous",{"stem":379,"name":380},"people\u002Fpaul-pagnier","Paul Pagnier",{"stem":382,"name":383},"people\u002Fpeter-rosberg","Peter Rosberg",{"stem":385,"name":386},"people\u002Frachel","Rachel Cervantes",{"stem":388,"name":389},"people\u002Frichard-deane","Richard Deane",{"stem":391,"name":392},"people\u002Frobert-kiuru","Robert Kiuru",{"stem":394,"name":395},"people\u002Fromain-thepaut","Romain Thepaut",{"stem":397,"name":398},"people\u002Fshen-morincome","Shen Morincome",{"stem":400,"name":401},"people\u002Fshota-natenadze","Shota Natenadze",{"stem":403,"name":404},"people\u002Fsimon","Simon Luling",{"stem":406,"name":407},"people\u002Fsolene-daviaud","Solène Daviaud",{"stem":409,"name":410},"people\u002Fthomas-cadorel","Thomas Cadorel",{"stem":412,"name":413},"people\u002Fthomas-colin","Thomas Colin",{"stem":415,"name":416},"people\u002Fthomas-hussenet","Thomas Hussenet",{"stem":418,"name":419},"people\u002Ftom-kiddle","Tom Kiddle",{"stem":421,"name":422},"people\u002Fvalentin-gonnot","Valentin Gonnot",{"stem":424,"name":425},"people\u002Fvera-radeva-hadjiev","Vera Radeva Hadjiev",{"stem":427,"name":428},"people\u002Fvincent-diallo","Vincent Diallo",{"stem":430,"name":431},"people\u002Fzsofi-borsi","Zsofi Borsi",1788427147364]