From e0d1e9b3f8728213724dfcae692cc71c16021794 Mon Sep 17 00:00:00 2001 From: mDuo13 Date: Wed, 28 Nov 2018 18:41:28 -0800 Subject: [PATCH 1/2] Corrections to currency serialization --- content/_img-sources/currency_code_format.uxf | 77 +++++------- content/_img-sources/currency_format.uxf | 118 ++++++++++++++++-- .../api-conventions/currency-formats.md | 18 ++- img/currency-code-format.png | Bin 12848 -> 15055 bytes img/currency-number-format.png | Bin 8817 -> 18926 bytes 5 files changed, 151 insertions(+), 62 deletions(-) diff --git a/content/_img-sources/currency_code_format.uxf b/content/_img-sources/currency_code_format.uxf index af8c3a77f6..e9c40499df 100644 --- a/content/_img-sources/currency_code_format.uxf +++ b/content/_img-sources/currency_code_format.uxf @@ -28,11 +28,12 @@ 80 120 - 300 - 40 + 200 + 60 Type code (8 bits) -0x00 for ISO 4217/pseudo-ISO currency +0x00 for ISO 4217 or +pseudo-ISO currency @@ -43,7 +44,7 @@ 220 30 - Reserved (96 bits) + Reserved (88 bits) @@ -51,45 +52,10 @@ 460 70 - 20 + 180 30 - - - - - Relation - - 460 - 90 - 40 - 60 - - lt=<<- - 10.0;10.0;10.0;40.0;20.0;40.0 - - - Text - - 480 - 120 - 250 - 60 - - Version (8 bits) -Increment if currency is reissued -with the same code - - - - UMLClass - - 490 - 70 - 150 - 30 - - Reserved (24 bits) + Reserved (40 bits) @@ -120,10 +86,10 @@ with the same code 310 90 40 - 50 + 60 lt=<<- - 10.0;10.0;10.0;30.0;20.0;30.0 + 10.0;10.0;10.0;40.0;20.0;40.0 Text @@ -131,9 +97,32 @@ with the same code 330 110 130 + 40 + + 3 chars of ASCII +(can't be "XRP") + + + + UMLPackage + + 30 + 220 + 620 + 70 + + Special Case XRP Currency Code + + + + UMLClass + + 40 + 250 + 600 30 - 3 chars of ASCII + 0x00000000000000000000000000000000000000000 (160 bits of 0's) diff --git a/content/_img-sources/currency_format.uxf b/content/_img-sources/currency_format.uxf index 476e45b7e4..250d29ec4c 100644 --- a/content/_img-sources/currency_format.uxf +++ b/content/_img-sources/currency_format.uxf @@ -4,12 +4,12 @@ UMLPackage - 20 - 20 + 30 + 250 650 70 - Issued Currency Number Format + Special Case (Issued currency amount = 0) @@ -61,17 +61,17 @@ 60 70 - 50 - 60 + 40 + 90 lt=<<- - 10.0;10.0;10.0;40.0;30.0;40.0 + 10.0;10.0;10.0;70.0;20.0;70.0 Text - 90 - 100 + 80 + 130 260 30 @@ -82,8 +82,8 @@ style=wordwrap Text - 70 - 130 + 60 + 170 270 30 @@ -96,10 +96,102 @@ style=wordwrap 30 70 - 60 - 90 + 50 + 130 lt=<<- - 10.0;10.0;10.0;70.0;40.0;70.0 + 10.0;10.0;10.0;110.0;30.0;110.0 + + + Relation + + 140 + 70 + 90 + 60 + + lt=<<- + 10.0;10.0;10.0;40.0;70.0;40.0 + + + Text + + 210 + 100 + 280 + 30 + + Unsigned integer; original value +97 +style=wordwrap + + + + Relation + + 500 + 70 + 50 + 100 + + lt=<<- + 10.0;10.0;10.0;80.0;30.0;80.0 + + + Text + + 530 + 110 + 150 + 90 + + Normalized to the range +(10¹⁵, 10¹⁶-1) inclusive +style=wordwrap + + + + UMLPackage + + 20 + 20 + 650 + 70 + + Issued Currency Number Format + + + + UMLClass + + 40 + 280 + 630 + 30 + + 0x8000000000000000000000000000000000000000 + + + + Relation + + 60 + 300 + 90 + 60 + + lt=<<- + 10.0;10.0;10.0;40.0;70.0;40.0 + + + Text + + 130 + 330 + 280 + 30 + + Most significant bit is 1, the rest is 0's +style=wordwrap + diff --git a/content/references/rippled-api/api-conventions/currency-formats.md b/content/references/rippled-api/api-conventions/currency-formats.md index 50f4c38a1a..6049f893d7 100644 --- a/content/references/rippled-api/api-conventions/currency-formats.md +++ b/content/references/rippled-api/api-conventions/currency-formats.md @@ -33,9 +33,16 @@ Issued currencies in the XRP Ledger are represented with a custom format with th Internally, `rippled` represents numbers for issued currencies in a custom number format. This format can store a wide variety of assets, including those typically measured in very small or very large denominations. Unlike typical floating-point representations of non-whole numbers, this format uses integer math for all calculations, so it always maintains 15 decimal digits of precision. Unlike "arbitrary precision" number formats, the custom format can always be stored in a fixed size of 64 bits. -The internal format consists of three parts: a sign bit, significant digits, and an exponent. (It uses them in the same way as scientific notation.) The sign bit indicates whether the amount is positive or negative. The significant digits are represented using an integer in the range `1000000000000000` to `9999999999999999` (inclusive), except for the special case of the value 0, whose significant digits use the value `0`. The exponent indicates the scale (what power of 10 the significant digits should be multiplied by) in the range -96 to +80 (inclusive). Before recording any amount, `rippled` "canonicalizes" the value so that the significant digits and exponent are within the expected range. For example, the canonical representation of 1 unit of currency is `1000000000000000e-15`. The internal calculations generally use integer math so that numbers are always precise within 15 digits. Multiplication and division have adjustments to compensate for over-rounding in the least significant digits. +The internal format consists of four parts: a "not XRP" bit, a sign bit, significant digits, and an exponent. (It uses them in the same way as scientific notation.) They are present in order: -When transmitting non-XRP amounts across the network or recording them in ledgers, the amounts are joined into a 64-bit format. The most significant bit indicates whether the amount is XRP or issued currency. (The value `1` indicates a non-XRP amount.) The next bit is the sign bit, 1 for positive or 0 for negative. (Caution: This is the opposite of how sign bits work in most other numeric representations!) The next 8 bits are the exponent, and the significant digits occupy the remaining 54 bits. +1. The first (most significant) bit for an issued currency amount is `1` to indicate that it is not an XRP amount. (XRP amounts always have the most significant bit set to `0` to distinguish them from this format.) +2. The sign bit indicates whether the amount is positive or negative. Unlike standard [two's complement](https://en.wikipedia.org/wiki/Two%27s_complement) integers, `1` indicates **positive** in the XRP Ledger format, and `0` indicates negative. +3. The next 8 bits represent the exponent as an unsigned integer. The exponent indicates the scale (what power of 10 the significant digits should be multiplied by) in the range -96 to +80 (inclusive). However, when serializing, we add 97 to the exponent to make it possible to serialize as an unsigned integer. Thus, a serialized value of `1` indicates an exponent of `-96`, a serialized value of `177` indicates an exponent of 80, and so on. +4. The remaining 54 bits represent the significant digits as an unsigned integer. When serializing, this value is normalized to the range 1015 (`1000000000000000`) to 1016-1 (`9999999999999999`) inclusive, except for the special case of the value 0, whose significant digits and sig use the value `0`. + +Before recording any amount, `rippled` "canonicalizes" the value so that the significant digits and exponent are within the expected range. For example, the canonical representation of 1 unit of currency is `1000000000000000e-15`. The internal calculations generally use integer math so that numbers are always precise within 15 digits. Multiplication and division have adjustments to compensate for over-rounding in the least significant digits. + +There is a special case for the value 0. In this case, the sign bit, exponent, and mantissa are all zeroes, so the 64-bit value is serialized as `0x8000000000000000000000000000000000000000`. ## Currency Codes @@ -48,11 +55,12 @@ The standard currency mapping allocates the bits as follows: ![Standard Currency Code Format](img/currency-code-format.png) 1. The first 8 bits must be `0x00`. -2. The next 96 bits are reserved, and should be all `0`s. +2. The next 88 bits are reserved, and should be all `0`'s. 3. The next 24 bits represent 3 characters of ASCII. Ripple recommends using [ISO 4217](http://www.xe.com/iso4217.php) codes, or popular pseudo-ISO 4217 codes such as "BTC". However, any combination of the following characters is permitted: all uppercase and lowercase letters, digits, as well as the symbols `?`, `!`, `@`, `#`, `$`, `%`, `^`, `&`, `*`, `<`, `>`, `(`, `)`, `{`, `}`, `[`, `]`, and |. The currency code `XRP` (all-uppercase) is reserved for XRP and cannot be used by issued currencies. -4. The next 8 bits indicate the currency version. If the same currency is reissued with a different value, you can increment this value to keep the currencies separate. -5. The next 24 bits are reserved and should be all `0`s. +4. The next 40 bits are reserved and should be all `0`'s. + +In the rare case that a field specifies a currency code for XRP, the currency code should be all zeroes. ### Nonstandard Currency Codes diff --git a/img/currency-code-format.png b/img/currency-code-format.png index c76a9df58f0d377fac4de63b1be54074e32b04ef..aba97c1926f923c0fcba5570b6231d0560f53b4b 100644 GIT binary patch literal 15055 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 GKmH%1G{w&V literal 12848 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 O9y#e-QhC=59{qp37VBmJ literal 8817 zcmb`Nc|4ST`}ajdg_NsCt|XP6K@`a@`(F03R`z{Kb|NJaVQf(&OZFuO*{STiY++LN zCHubrj;ZUq?&rCm=k>bpKYsJaFyowazUTKmj?eKvK8GMR6E&-c+e@bsI-D0O?e|7$;rnZxeI(ApPa-to$>In+B_iPI z5t8uwf9=hRHS`iW(U#abWg;S!G3(JpZa8_3+A(n>*oa4OPd%z4eEF?QMBYb;I{jlz zSofAbQ8m0c-*5pXR_U?+O3;~kov^44_n+mr94d?jEs!zMFpO`5P|yo^{b{9IY!tzTv*$umy+&=!)#9mTx`u; zE<(Wmo6R6@Mrg4jGCEpIP0eAhF9%M)`Sa`Q%$GFoWaJGYq4M(bkt*+9rfz?lUiMC6 zqDPrY2+xh5GXw9Fv$Cw!)H;)-gE8l_%WqqZRPB$}1@}Jq=6mRUy*?&7n#-U}BW}9H z4)1|4b7_8feChV>+b**`%d4xqTVr8lRP;9T||{=wchTu1e>r_T~!r{hf6~L&LhdIxCfr zpFS}Sm0c>fAE~OXt^I>piKm}on7wF^`)hkHF*iVo*Oo&pX5~^?ELr?C>u%_ z6ciNx!rk4S`moq`=pCK&;y01wl|rryJ-z-u`#V7f@^85eD=Z?BJ?Xdae|e`Iv29TP zP+o$u%4fY-yP(WvPOE8tdv&V!3X?>5aY6ze8)jU~rY14J?E3u|$ky1a$?}oRmX?;A zizBKkD$$pXDm{7=S8`gbKh6)8G=yE`ruA7FKdwqnL}Zwc)Gu|C-Y_#YwcMPwyLPgJ zw=QPJ*vcxiOwnI`@muBU>Z)n+ewgpxt*@-Ns^O7~Ot|Tyz_pX-yWesW_0qj`!#ENZ zz4DGOl_*8!QPPBHmPFMQvD|lDB=g3CMjyEEKR2S_c zk&PO9_}*e$y{4$L!ED_^?y4@!7t;vyd8JDAG!=#UATpcb54S}) zZ`{zK94d>lH$BiiK~7%Bm~w=0Pq}r-6%-YBHy0PDrUblq9>lFHoGHO|-4Mp!aFoow zGbYG;1tXZ0O-f4oM#NJK`I)aros{y=lq>{`>Kn|J68jOmK%`PUe;XsOWrzWuwyazl_rZ$z>N!kV23YDJu0VYzp073;jxykzr6J0Q=hdTzoJ3e zgE%4ATsx7*@Y(Yxe$@DpG|T!&pUBeFHWfwPa9v19NfcgEdlnP~`5GoMp%>|EdG7Ar zyO0zLClTv!$w9@IKH|i~iGo-Q&DyN`b6=-F3OJ&8zHRL5v(r~FZV!JBTrGX>5&Jv| zG0SI8f@*AQD>`8E_rRNb7=4Sgfh=6TqKQ&ddB1i~k9Tz@4Qpm%68l-v0Hv1X1Bp$6 zt4X{;tyLsu&eP=|^asl;i`v@9WT>+ny1GVevsQjiWJPr$p`lvXQyAUtvhA3@UYw*(lcL_`F-$SOnT8Hihj9IBHV9v3g#=f9T?qpv>PU+gvDHP9N3Tj}v`ieO@% znw*+~yc&8HbL`{GOSd?^oh)X``lOf@-T69+Coo0U{j-zK6U|XM=%QD`?oMzhrDS#{ zLTqp8aezqa%S=QcO@j`(lHuiNHMD2?L{VynmqGjF@!fB4k0aQE(8sZLN`#aQ>9wTxPqmJlUU_rer}e}FAFcish|hvSozAc-2=<7$^!SQ1BG zN8S>`C4Ttu0i-})ULIs3O%;pe=(h5^7SY+Mh7Y^k1vR8EkpC{AYK(@>x&@ox3y!aF3 zlXg%1_Dgj}_M@bv3YU2|FWhkW4pk&1&-w)tlEDv&iH<&)QT2^Tkh|eKms6s2klzt_ z(T9~OBHb(%**F0;D%r|!z3yrsamK*uD>BcjUjN^ieu)j9*MFRm@@(5Ycx3#E_0X#y!gv2OWcAhXW8m!SNt!lqdokupz0hDnISga(rN3gk)q8k_zK4paV&%R;R39-}oXS}xTEi2v zlLy2#9AbTM5doCn4~U8GUqFiw5G`;M@xWUaM;v^QJbHf;B~Jcmmz*fXh46*L1b!ew zrF#_=7FJeP+7ExYyU+F;7~U=9LOiOzy4LiLA_O9+Jwb5TDE-<`i`38s^{BqFp9^+` zmFFFUasm;+pD_$Cp7o!&j!n5 z@8G`Ylzc0A;3Xp?0~Kq;YgKs{R}&gB*pDZIy-;F9p+F!lgOMl`W>~_U%UmDZkni5I ztdY?OBp_Q>n#$`4l43i2=7UMcvHB;0fu0cf9v;lh%+VMOYv9?lXPFoo8-sZL0|Ekm z;>)$?4*^k5pFS-rDoS~tKjg&=&8fL)USo&8>8|9WFBquyv1izsn3z~uDiy9%`GZ=u(Lkb9c^MbH#Jq_G@-EGI6ZBVDlPvha>IS5n@Onb(VznAx*UE! zn#*=LEu`psSF)^q#d1C9qkYhHJ=$0{ENfta6ym}7`OyP@+rgByG!UvSC=}gdB{pA^ zPF^mu>fISRJcz+!xf?=g`DEr>osQ4E6ciM6dLE)h-5+JZXVz-bog$A$55f%raAfL+ z+}0FK^;n-h&u;@2A9><*Lg_Mco87uTIF9|nqH+d_q!)Hm zBTcj&DxNucC%V~mNlslxoQ8&mc9iMxHw{I&M-->*e()sz0-@(Z&i zWBJ4ROs$+(TeaFo-b`8d2D*!jBJEx7i2Cfg&74+!BmBOIoHeKC&f{wq>18qe3+m7R z;!;J`)7Tr{JGipBlIs1OZlmTNVm(j&C$0kGCrzk(5G-~LKR8q@MH5YCJGb|eF=ww^GDKW$B zVJ+FkX9fDzJ_g0Xq(ydk^dxnkg z7S0#U0WJ)-3*Y^C)J5}}QMfXsh<=}xcNw; z+u7C0C2!p-x)saV4JDb)zm;cW0Y5i0Q|h(tgqKh#(XU6VK}1yh`ihBFgL*Cwm#WiJ zb`kT~*ZjpKWrJ1Tp2q{4SH2dSfBN{bqM`!B#UQ6w@Yl`4;qcw5FLp7ja=WK(&jz-) zwsLZDMI-gHv~mDvhXxTnT2>hnuj~ar;3Tl!sX!!GWJ58|E{Dk#*8RDf8h>Zq5}(Ni z=Ot$Vlrm4#*y)~($Or2kqPy7ubhD3zR%Ly=1+n`hiUG>;{2AppA514!Np)VpLtODN zpQPnwv9`h=<5@Ipyf;+Am7~@|qsb;%?g&TWGPUw^7wXyfODg_*#RY3PakC}nAzSYtW9u*u-(OP9 zBVEr%MHL3=7o5@(a*2t_wALSCwPgdjuc8tv)dyq%0;;^NqO-3y4fUfrP;$1gla|ly znspzih=@V^D>2`yjmTSy$?+1T6z$YQ$0#W^#awwV2?-4~HOar00YqTsKE1NKx;Z~I zH8aDu-E$#@GfGiNE>8a@3T3;uwG3!{h6DPdrS>jI0qM(idWs&ucgw#$U^fD zE>6yWT^>4AxBOua#WEKcSHvNt9{UO=Dyk04CrO^&MSSV{b9y2OU3B|KW ztiVy!!+^3ad0;sv%H*|)cZK-Q0hLLXc`@E?-kxw(ELDkcU9Uwvi|_r)eTh1%hnkUa zNR!SgabOTsvmoD!kWHFIs|_~U2fq}rUz*&oH`kwF6%eZXgR?*{oy53D`4ZYcfGFV2 zQ~cBHfDIsz#2-lwo&ZWf;rJJ3{6ijKH*C@notuMC6Md*As?iCA^VRGlh}=qxYV4XT z>;PFZiQ!CcZ4G6aS%`WQb8{iNWV#q$a8+6khH>mxwG%BdBErH8-zxQf^#1sO0e7X7 zI8a~c^5rC0`~CWmjHOuz{bpb&3yC@-p(|HD_4f-12?;SUd>^u}&Z#N;>yLi7a`DNs zVb`tu8b9V5lr#F!oH?VRVQ_=X6h4Ye9L=jV?|74#mG^)8HW?7?`1trWn*lX{Tq+5YOMh#jd{HZduo;Hsfs|3saUfo?vF9F>VC+c`H%h8C zU;o-D|L3yrR@&R!`-C@Nx>qavmJB$ukpOifqTKEV?$ea)O_dTh?mtrJe+j4m*I^Zs zXdbtv@6haPYFPcoNwaNk%Gr>nmXAw?Ip z@|cY3opL<#)T!^Iqut;^fSb?~O_PrJi!vo{{-(^?*%%|AuLY)xEG#TddvJ$^@MO+W-w4~K+|0TBKP+8fXViL zQ2B2CEbO2QwOkS zGy&|ALT#9hyn*`(a1(#s8hPtH?D3)4#7d%aW`4ff@hsE!ZF(^uVYAkAuCA_72*bn< zbRNoY-5&GS(9n>Q3J42Rg^0R;|2|gK8}h(O!OiVMOiWB#n)$tZ_vGb+nx4pn(dV>f zT0ED(%*MthAt5n%4P3d*+@}Ena{M;DXB7pxQK+*W;NnRGPeOWELgnC{yL9s=x~Ujr zSM%sd441*3;&>Vb)Z(k_))keNSYh`hvzf1n;d^W$*L{qSKx zhulP>ej0FYZ|#dJV1G=vWl`ck5U8xGy1BHZQ|(h}*BD;N=mdccUZVKN{E*#A8s0bh zq2SYuH-=kH;)jQ$xs7rcUJE+E`;*5+(o#NTV{ydDtbM92zW<%_`LC?>45d*#rKT;& zF^^8s?sH;36$!bd!iwCd7e=bN{T_m|*}PFvAsm!Gdnzy1cfc-|9ZKH?2UL$goOCW+4XI%BAd5aAP^@!p|kXp++L#_45K{r3J~_FKkOm}K0`4JA7$-$ahBkX z^%BpQ1dyV697jJpS@|hVfBN((YT|@@P-49EL?pq|jnl^`(lhcw?nk-B#l`9B>vLY$ z{mo=C83&0qShSolSqz2_5l@}j8C-=L_u=ugKSRASw)vM1hD zxDGwia#YN*y>kS6z1bN0L|#Ep@X`773@__sAegDrnV!cs1YNrI^mBbZy7?PyPP~A9 zuCjWlwlyiaTSKrl+R^eP*b}=kycD(KHu9Gr{Puprq+bnO^zwb36zLoccSEjMQ{La zdwErag@rXyoiSa6N;6bq&;3G{SI~7qpGmu304H46(cC=RL3;#dGDWOFw!N8AH~aHU zK)RVEve=J4rO~9auih`-xh`IJZvva(;rDE!^^HipBPB#2O^DJd(~XU>FflW8b5*RU zfmz_Bn4;$ex1zbXv(`WcXf>wBjt(rZ>GSGpUnsz3u8VKpygBeFPSY-@2TzJXZv^%M zV~Xhi`+{IsK^_vG2>unp$08g^`1L=&xh44T4pQ@jfBYqhD6Q-Dzf1lsA(@{4fQ}7& z-C7IU2Yn5HtPQP*2aXe@Ije#0<^wsrbq&}MV8LXT&p`)SeXyPfmAeN8J&PU0zmif& zL8iV&x^AJFxOffD@(Y-pDfHR+Ay8LPG(iJ_)eTEOiT1OXuUr`$9qsAmuHJ+3Pc&c_ z*bMmh_XF39Z1t%&H2tqa&w%wkaEHn|{+YlHlEDS#v;*3Et*uG|0s~)u|4Sta8`I=tjnW*ka}V{f6v3hsPfIdDJ1gzX^jeP*Z}O zPGgT?yYd;=5I@q^C8rC#j_!m3!T0aRE^7Q;{z*wm0RcxLdyYqgM)1m5vpAoi;nL^f z?guTJ>&dwCrJN8>V5~-DZztw4sILNMp$CObo6nf$T}LxWToo1`ZfR-x@Vvq13&8h`}e$f z0Sl4|8`6g~1a%rkQs@vZHCsuTCS@Ub_Xi8j!&)D6!~7^0@sD5hN+|~HBIt*`*Jpdp zwS=Do%gh5fSXiVda0OYo#!>71gU`Li}KHFoy@6t zj;>0>N)O;4oKw|Msk6C@%kpR)Oje7nB*3C!JjT{Sbx{fszgVn z9XoOL>Q&zDLSA~%20j0D2+y5N!^-rBA8(p8o}%4v+ho6(tPBFN&-%8t=AE|~>W36{ zcqd`VRnaF-9?hu>x@Kn0G}rg|G5cF#^vl@T^jrlO`Bd5xzm;nw<-uXUhQ_pnS%A7n z9EWw$_n%)2nJ)obmcfv;@AG5W{>In??BN~@C+ANPQVk;w>nVR;Z%iUbWEZrfuNI5W z9=91}EAmD&6pk+~IhdA8Le0#COZLx2>TFX>?AE@^M3CAh3b)lPjB;?F-nvRmxZHmK zi#}U#wQ|tZ=V9PtL81hiiQ!@RQVvsG#ir(<>b(i>*RnY0-Por?055pAdqdWvvDb zWnoFfoV;43qWsYKRvrYh2C zYiq9>y}KanmJf+NNH+5kJc*kwvndr~{1?|?ym?6;pdc#&eTtTrjV6Lf9n5i1iS_Uz zEpiH{T!x_Z|ECb@U@wk& Date: Tue, 4 Dec 2018 15:02:23 -0800 Subject: [PATCH 2/2] Clarify XRP currency code --- .../references/rippled-api/api-conventions/currency-formats.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/references/rippled-api/api-conventions/currency-formats.md b/content/references/rippled-api/api-conventions/currency-formats.md index 6049f893d7..ceb6babcd3 100644 --- a/content/references/rippled-api/api-conventions/currency-formats.md +++ b/content/references/rippled-api/api-conventions/currency-formats.md @@ -60,7 +60,7 @@ The standard currency mapping allocates the bits as follows: Ripple recommends using [ISO 4217](http://www.xe.com/iso4217.php) codes, or popular pseudo-ISO 4217 codes such as "BTC". However, any combination of the following characters is permitted: all uppercase and lowercase letters, digits, as well as the symbols `?`, `!`, `@`, `#`, `$`, `%`, `^`, `&`, `*`, `<`, `>`, `(`, `)`, `{`, `}`, `[`, `]`, and |. The currency code `XRP` (all-uppercase) is reserved for XRP and cannot be used by issued currencies. 4. The next 40 bits are reserved and should be all `0`'s. -In the rare case that a field specifies a currency code for XRP, the currency code should be all zeroes. +Usually, XRP amounts are not specified with currency codes. In the rare case that a field specifies a currency code for XRP, the currency code's binary format is all zeroes. ### Nonstandard Currency Codes