Partial URL-Encoding

Use Data URL in the Metadata of your NFTs

Fully on-chain CNFTs are typically implemented by assigning appropriate Base64-encoded dataURIs to the token metadata's src and image fields. DataURIs can encode a variety of data types like HTML, audio, image etc. As a result, a fully on-chain NFT can virtually encode any type of media file as long as its metadata is no larger than 16Kb. This is a standard and general approach, with the main disadvantage being the same Base64 encoding, which may make the original data 30% larger (on average). This is a difficult limitation because the 16Kb limit is a hard constraint that must always be met.

To overcome this problem, a possible, non-standard solution that works well with textual data (e.g., html and svg) is to replace base64 encoding with a variant of the original plain text in which some special characters have been substituted by their url-encoded version.

In specific, there are the following replacements:

% is replaced by %25
is replaced by %23
< is replaced by %3C
> is replaced by %3E

Actually, to display the partially url-encoded, on-chain NFTs only characters % and # must be replaced. The substitution of characters < and > is only required by NMKR for minting.

Use case for URL encoding

This method is easy to implement and saves a lot of space, which allows to mint way more complex On-Chain NFTs to be encoded and minted. A common use case are interactive NFTs like games.

Example Metadata

{
  "721": {
    "4864e4cf3f7e7fd2318b3bb4a7060665278a47fc4a6216c55dcbbeb0": {
      "chrz2": {
        "Color": "Arctic white",
        "Enemy (Ambushman)": "Face with symbols on mouth",
        "Enemy (Happy Stoner)": "Zany face",
        "Enemy (Professor)": "Exploding head",
        "Enemy (Shadowman)": "Cowboy hat face",
        "Hero": "Face without mouth",
        "Keyboard controls": "Press any key to start, arrow keys to move hero",
        "Power-up": "Nazar amulet",
        "Special": "False",
        "Touch controls": "Tap to start, swipe up/down/left/right to move hero",
        "Twitter": "twitter.com/gamezonchain",
        "Variant": "Classic",
        "files": [
          {
            "mediaType": "text/html",
            "src": [
              "data:text/html;utf8,%3C!DOCTYPE html%3E%3Cmeta charset='utf-8'/%",
              "3E%3Cbody style='margin:0;touch-action:none;overscroll-behavior:",
              "contain;background:%23000;'%3E%3Ccanvas id='a' style='margin:aut",
              "o;display:block;'%3E%3C/canvas%3E%3Cscript%3Efunction aa(a){var ",
              "d=0;return function(){return d%3Ca.length?{done:!1,value:a[d++]}",
              ":{done:!0}}}function b(a){var d='undefined'!=typeof Symbol&&Symb",
              "ol.iterator&&a[Symbol.iterator];return d?d.call(a):{next:aa(a)}}",
              " var e,f,g,ba='ontouchstart'in window,h,l,n,p,q,r,t,u,v,w,x,y,ca",
              ",z,da=String.fromCodePoint(0x1F44E),ea=[String.fromCodePoint(129",
              "311),String.fromCodePoint(129304),String.fromCodePoint(128077),S",
              "tring.fromCodePoint(128074)],fa=String.fromCodePoint(0x1F9FF),B=",
              "[String.fromCodePoint(0x1F920),String.fromCodePoint(0x1F92C),Str",
              "ing.fromCodePoint(0x1F92F),String.fromCodePoint(0x1F92A),String.",
              "fromCodePoint(128064)],C=[String.fromCodePoint(127817),String.fr",
              "omCodePoint(127818),String.fromCodePoint(127826),String.fromCode",
              "Point(127827), String.fromCodePoint(128142)],D,ha=String.fromCod",
              "ePoint(128561),ia=String.fromCodePoint(0x1F636),E,ja,F,G,H,ka,I,",
              "la,ma,J,na,oa,pa,K,L,M,qa,ra,N=new AudioContext,O,P,Q,sa=[[1,1,1",
              ",1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[1",
              ",2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1",
              "],[1,4,1,1,1,1,2,1,1,1,1,1,1,1,1,2,1,2,1,1,1,1,1,1,1,1,2,1,1,1,1",
              ",4,1],[1,2,1,1,1,1,2,1,1,1,1,1,1,1,1,2,1,2,1,1,1,1,1,1,1,1,2,1,1",
              ",1,1,2,1],[1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2",
              ",2,2, 2,2,2,1],[1,2,1,1,1,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,",
              "2,1,2,1,1,1,1,2,1],[1,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,1,2,2,2,2,2,",
              "2,2,2,1,2,2,2,2,2,2,1],[1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,2,1,2,1,1,",
              "1,1,1,1,1,1,2,1,1,1,1,1,1],[0,0,0,0,0,1,2,1,2,2,2,2,2,2,2,2,2,2,",
              "2,2,2,2,2,2,2,1,2,1,0,0,0,0,0],[1,1,1,1,1,1,2,1,2,1,1,1,1,1,1,1,",
              "0,1,1,1,1,1,1,1,2,1,2,1,1,1,1,1,1],[2,2,2,2,2,2,2,2,2,1,0,5,5,0,",
              "0,0,0,0,0,0,5,5,0,1,2,2,2,2,2,2,2,2,2],[1,1,1,1,1,1,2,1,2,1,1,1,",
              "1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,1,1,1,1,1,1],[0,0,0,0,0,1,2,1, 2,2",
              ",2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,1,0,0,0,0,0],[1,1,1,1,1,1,2,1",
              ",2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,1,1,1,1,1,1],[1,2,2,2,2,2",
              ",2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1],[1,4,1,1",
              ",1,1,2,1,1,1,1,1,1,1,1,2,1,2,1,1,1,1,1,1,1,1,2,1,1,1,1,2,1],[1,2",
              ",2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,4,2,1],",
              "[1,1,1,1,2,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,1,2,1,1,1",
              ",1],[1,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,1,2,2,2,2",
              ",2,2,1],[1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,1,1,1, 1,1,1,1,1,1,",
              "1,1,1,1,2,1],[1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,",
              "2,2,2,2,2,2,2,1],[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,",
              "1,1,1,1,1,1,1,1,1,1]];function ta(){var a=lvl,d=0;for(i=0;i%3Ca.",
              "length;i++)d+=a[i].reduce(function(c,k){return 2==k?c+1:c},0);re",
              "turn d}function ua(a){return 0+Math.floor(Math.random()*(a-0+1))",
              "} function S(){z=0;qa=!1;y=!0;P=[];ma=[8,15];ja=[1,1,30,60];J=0;",
              "lvl=sa.map(function(d){return d.slice()});la=ta();H=ka=7;v=0;G=3",
              ";t=!1;var a=window.devicePixelRatio;e=document.getElementById('a",
              "');f=Math.min(window.innerWidth,window.innerHeight);e.width=e.he",
              "ight=f*a;g=e.getContext('2d');g.scale(a,a);e.style.width=e.style",
              ".height=f+'px';q=r=0==(f/33|0)%252?f/33|0:(f/33|0)-1;n=33*q;p=22",
              "*r;h=(f-n)/2;l=(f-p)/2;u={x:h+q+q/2,y:l+20*r+r/2,j:ia,speed:q/8,",
              "g:1,i:1,l:1};g.fillStyle='%23F4F3EF';g.strokeStyle='%23F4F3EF'; ",
              "F=(f-p)/2|0;g.font=4*r+'px Monospace';g.textAlign='center';g.tex",
              "tBaseline='bottom';g.strokeText('CHRZ',f/2,F);va();T(0,0,lvl.len",
              "gth,lvl[0].length);ba?window.addEventListener('touchstart',U,!0)",
              ":window.addEventListener('keydown',U);x=requestAnimationFrame(wa",
              ")}function xa(){g.clearRect(h,l+p,f/2,F/3);g.textAlign='left';g.",
              "o='top';g.font=1.5*q+'px Monospace';g.strokeText('SCORE:'+v,h,l+",
              "p+r+r/10);g.textAlign='center';g.font=q-4+'px serif'} function y",
              "a(){g.clearRect(.7*f,l+p,.3*f,F/3);g.textAlign='right';g.o='top'",
              ";g.font=1.5*q+'px Monospace';for(var a='',d=0;d%3CG;d++)a+=u.j;g",
              ".strokeText(a,h+n,l+p+r+r/10);g.textAlign='center';g.font=q-4+'p",
              "x serif'}function va(){E=[];var a=0;for(i=0;i%3Clvl.length;i++)f",
              "or(j=0;j%3Clvl[i].length;j++)5==lvl[i][j]&&(0==lvl[i][j],E.push(",
              "{x:h+j*q+q/2,y:l+i*r+r/2,type:a,j:B[a],speed:q/8,h:Math.floor(4*",
              "Math.random()),m:ja[a],status:1}),a++)} function V(a,d,c){var k=",
              "a.h;d=[Math.abs(a.x-d)+Math.abs(a.y-r-c),Math.abs(a.x-d)+Math.ab",
              "s(a.y+r-c),Math.abs(a.x-q-d)+Math.abs(a.y-c),Math.abs(a.x+q-d)+M",
              "ath.abs(a.y-c)];for(c=0;4%3Ec;c++)za(a.x,a.y,c)&&(d[c]=1E4);0==k",
              "&&(d[1]=1E4);1==k&&(d[0]=1E4);2==k&&(d[3]=1E4);3==k&&(d[2]=1E4);",
              "a=Math.min;k=a.apply;if(d instanceof Array)c=d;else{c=b(d);for(v",
              "ar m,A=[];!(m=c.next()).done;)A.push(m.value);c=A}a=k.call(a,Mat",
              "h,c);return d.indexOf(a)} function Aa(a){W(a)&&!a.status&&(a.spe",
              "ed=q/8);if(!W(a)||!za(a.x,a.y,a.h)){if(W(a)){var d=b(X(a.x,a.y))",
              ",c=d.next().value;d=d.next().value;10==c&&16==d&&(2==a.status&&(",
              "a.status=1,a.j=B[a.type]),!y&&0%3Ca.m&&(a.h=.5%3CMath.random()?2",
              ":3))}switch(a.h){case 0:a.y-=a.speed;break;case 1:a.y+=a.speed;b",
              "reak;case 2:a.x-=a.speed;break;case 3:a.x+=a.speed}Ba(a)}}functi",
              "on Ca(a,d){g.clearRect(h+d*q-q,l+a*r-r,3*q,3*r)}function Da(a){a",
              ".preventDefault();a.stopPropagation();a=a.touches[0];L=a.pageX;M",
              "=a.pageY} function Ea(a){a.preventDefault();a.stopPropagation();",
              "if(L&&M){var d=L-a.touches[0].pageX;a=M-a.touches[0].pageY;Math.",
              "abs(d)%3EMath.abs(a)?0%3Ed?(2==u.g&&(u.g=3),u.i=3):(3==u.g&&(u.g",
              "=2),u.i=2):0%3Ea?(0==u.g&&(u.g=1),u.i=1):(1==u.g&&(u.g=0),u.i=0)",
              ";M=L=null}}function Fa(a){'ArrowUp'==a.key&&(1==u.g&&(u.g=0),u.i",
              "=0);'ArrowDown'==a.key&&(0==u.g&&(u.g=1),u.i=1);'ArrowLeft'==a.k",
              "ey&&(3==u.g&&(u.g=2),u.i=2);'ArrowRight'==a.key&&(2==u.g&&(u.g=3",
              "),u.i=3);a.preventDefault()} function Ga(){var a=(u.y-l-r/2)/r|0",
              ",d=(u.x-h-q/2)/q|0;switch(lvl[a][d]){case 0:z=0;break;case 2:lvl",
              "[a][d]=0;z||(Y(30,150,'triangle'),z=1);la--;P.push([a,d]);0==la&",
              "&(ra=!0);E.forEach(function(c){c.m--;ja[c.type]--});v+=10;break;",
              "case 4:lvl[a][d]=0;clearInterval(ca);Y(40,1900,'square');t=!0;v+",
              "=50;H=ka;u.l=1;E.forEach(function(c){2!=c.status&&(c.status=1,c.",
              "j=ha,c.speed=q/16)});I=1E3;ca=setInterval(Ha,200);break;case 6:l",
              "vl[a][d]=0,Y(120,300,'square'),a=200+D*D*200,v+=a,g.font=4*r+'px",
              " Monospace',g.textAlign= 'center',g.textBaseline='bottom',g.fill",
              "Text(C[D]+a+C[D],f/2,F),setTimeout(function(){g.clearRect(0,0,f,",
              "l)},800),g.textBaseline='middle',g.font=q-4+'px serif'}}function",
              " Ha(){I-=200;t&&Ia(900,'sawtooth',10,100,.2);0==I&&(H--,I=1E3);2",
              "%3E=H&&E.forEach(function(a){2!=a.status&&(a.j=a.j==B[a.type]?ha",
              ":B[a.type])});0==H&&(H=ka,t=!1,E.forEach(function(a){2!=a.status",
              "&&(a.status=0,a.j=B[a.type])}),clearInterval(ca))}function X(a,d",
              "){return[(d-l-r/2)/r|0,(a-h-q/2)/q|0]} function za(a,d,c){d=b(X(",
              "a,d));a=d.next().value;var k=d=d.next().value,m=a;1==c&&(m=a+1);",
              "0==c&&(m=a-1);2==c&&(k=d-1);3==c&&(k=d+1);return 1==lvl[m][k]?!0",
              ":!1}function W(a){var d=a.y;return Number.isInteger((a.x-h+q/2)/",
              "q)&&Number.isInteger((d-l-r/2)/r)} function Ja(){if(u.g!=u.i&&W(",
              "u)){var a=b(X(u.x,u.y)),d=a.next().value;a=a.next().value;if(8==",
              "d&&16==a&&1==u.i){u.i=u.g;return}za(u.x,u.y,u.i)||(u.g=u.i)}if(!",
              "W(u)||!za(u.x,u.y,u.g)){u.x%3Eh+n&&(u.g=3);u.x%3Ch&&(u.g=2);swit",
              "ch(u.g){case 0:u.y-=u.speed;break;case 1:u.y+=u.speed;break;case",
              " 2:u.x-=u.speed;break;case 3:u.x+=u.speed}Ba(u)}}function Ba(a){",
              "a.x%3E=33*q+h&&(g.clearRect(a.x-q,a.y-r/2,2*q,r),a.x=h+q/2);a.x%",
              "3C=h&&(g.clearRect(a.x-q/2,a.y-r/2,q,r),a.x=h+32*q+q/2)} functio",
              "n wa(){qa&&(g.font=4*r+'px Monospace',g.textAlign='center',g.tex",
              "tBaseline='bottom',g.strokeText('OH'+String.fromCodePoint(128128",
              ")+'NO',f/2,F));E.forEach(function(a){var d=b(X(a.x,a.y));a=d.nex",
              "t().value;d=d.next().value;Ca(a,d);T(a-1,d-1,a+2,d+2)});E.forEac",
              "h(function(a){g.fillText(a.j,a.x,a.y);Aa(a);W(a)&&(a.h=V(a,ua(f)",
              ",ua(f)))});x=requestAnimationFrame(wa)}var Z=0,Ka; function La()",
              "{g.clearRect(0,0,f,f);T(0,0,lvl.length,lvl[0].length);g.font=4*r",
              "+'px Monospace';g.textAlign='center';g.textBaseline='bottom';4%3",
              "EZ?(g.strokeText(ea[Z++],f/2,F),Y(100,200,'triangle')):(Z=0,Y(10",
              "0,400,'triangle'),clearInterval(Ka),ra=!1,Q=null,g.textAlign='ce",
              "nter',g.font=q-4+'px serif',M=L=null,ba?(document.addEventListen",
              "er('touchstart',Da,!0),document.addEventListener('touchmove',Ea,",
              "!0)):window.addEventListener('keydown',Fa,!0),y=!1,g.clearRect(0",
              ",0,f,f),T(0,0,lvl.length,lvl[0].length),u.x= h+q+q/2,u.y=l+20*r+",
              "r/2,D=0,u.g=1,u.i=1,g.fillText(u.j,u.x,u.y),va(),O=K=0,pa=perfor",
              "mance.now(),w=requestAnimationFrame(Ma))}function U(){'running'!",
              "==N.state&&N.resume();window.removeEventListener('keydown',U);wi",
              "ndow.removeEventListener('touchstart',U,!0);cancelAnimationFrame",
              "(x);Ka=setInterval(La,500)} function Ma(){na=performance.now();o",
              "a=(na-pa)/1E3;pa=na;K+=oa;O+=oa;.5%3CO&&(O=0,Ia(200,'triangle',2",
              "0,380,.1));1==J&&4%3CK&&(null!=Q&&(lvl[P[Q][0]][P[Q][1]]=0),g.fi",
              "llStyle='%23000',null!=Q&&g.fillRect(P[Q][1]*q+h,P[Q][0]*r+l,q,r",
              "),g.fillStyle='%23F4F3EF',D=++D%25C.length);K%3E=ma[J]&&(K=0,Y(7",
              "0,800,'sine'),J||(Q=ua(P.length-1),lvl[P[Q][0]][P[Q][1]]=6,g.fil",
              "lText(C[D],P[Q][1]*q+h+q/2+r/12,P[Q][0]*r+l+r/2+r/12)),J=++J%252",
              ");var a=b(X(u.x,u.y)),d=a.next().value;a=a.next().value;Ca(d,a);",
              "ya();T(d-1,a-1,d+2,a+2);xa();E.forEach(function(c){var k= b(X(c.",
              "x,c.y));c=k.next().value;k=k.next().value;Ca(c,k);T(c-1,k-1,c+2,",
              "k+2)});g.fillText(u.j,u.x,u.y);Ga();Na();Ja();E.forEach(function",
              "(c){g.strokeText(c.j,c.x,c.y);Aa(c);if(W(c))if(2==c.status)c.spe",
              "ed=q/8,c.h=c.x%3C16*r+l+r/2?V(c,11*r+l+r/2,10*r+l+r/2):V(c,22*r+",
              "l+r/2,10*r+l+r/2);else if(J){0==c.type&&(c.h=V(c,u.x,u.y));1==c.",
              "type&&(0==u.g&&(c.h=V(c,u.x,u.y-5*q)),1==u.g&&(c.h=V(c,u.x,u.y+5",
              "*q)),2==u.g&&(c.h=V(c,u.x-5*q,u.y)),3==u.g&&(c.h=V(c,u.x+5*q,u.y",
              ")));if(2==c.type){if(0==u.g){var k=u.y-2*q;var m= u.x}1==u.g&&(k",
              "=u.y+2*q,m=u.x);2==u.g&&(m=u.x-2*q,k=u.y);3==u.g&&(m=u.x+2*q,k=u",
              ".y);c.h=V(c,m-(E[0].x-m),k-(E[0].y-k))}3==c.type&&(c.h=Math.sqrt",
              "(Math.pow(u.x-c.x,2)+Math.pow(u.y-c.y,2))%3E8*q?V(c,u.x,u.y):V(c",
              ",f,f))}else 0==c.type&&(c.h=V(c,0,0)),1==c.type&&(c.h=V(c,f,0)),",
              "2==c.type&&(c.h=V(c,0,f)),3==c.type&&(c.h=V(c,f,f))})}var Oa; fu",
              "nction Na(){var a=1;ra?Oa=setInterval(Pa,800):(E.forEach(functio",
              "n(d){Math.abs(u.y-d.y)%3C=r/2&&Math.abs(u.x-d.x)%3C=q/2&&(t?1==d",
              ".status&&(g.clearRect(0,0,f,l),Y(100,160,'triangle'),d.status=2,",
              "v+=200*u.l,u.l*=2,d.j=B[4],g.font=4*r+'px Monospace',g.textAlign",
              "='center',g.textBaseline='bottom',g.fillText(B[d.type]+200*u.l+B",
              "[d.type],f/2,F),setTimeout(function(){g.clearRect(0,0,f,l)},800)",
              ",g.textBaseline='middle',g.font=q-4+'px serif'):2!=d.status&&(G-",
              "-,a=0,ya()))}),a?w=requestAnimationFrame(Ma):0%3CG?(qa=!0, Y(400",
              ",50,'sawtooth'),ba?(document.removeEventListener('touchstart',Da",
              ",!0),document.removeEventListener('touchmove',Ea,!0)):window.rem",
              "oveEventListener('keydown',Fa,!0),null!=Q&&(lvl[P[Q][0]][P[Q][1]",
              "]=0),y=!0,cancelAnimationFrame(w),x=requestAnimationFrame(wa),se",
              "tTimeout(U,1500)):(g.font=4*r+'px Monospace',g.textAlign='center",
              "',g.textBaseline='bottom',Y(400,50,'sawtooth'),g.strokeText('GAM",
              "E'+da+'OVER',f/2,F),T(0,0,lvl.length,lvl[0].length),setTimeout(S",
              ",3E3)))} function Pa(){var a=String.fromCodePoint('0x274C'),d=St",
              "ring.fromCodePoint('0x1F3C6');g.clearRect(0,0,f,f);T(0,0,lvl.len",
              "gth,lvl[0].length);xa();g.font=4*r+'px Monospace';g.textAlign='c",
              "enter';g.textBaseline='bottom';4%3EZ?(g.strokeText(B[Z++],f/2,F)",
              ",setTimeout(function(){Y(200,40,'sawtooth');g.strokeText(a,f/2,F",
              ")},300)):(Z=0,Y(300,800,'triangle'),clearInterval(Oa),g.strokeTe",
              "xt(d+d+ia+d+d,f/2,F),setTimeout(S,3E3))} function T(a,d,c,k){g.t",
              "extBaseline='middle';for(g.font=q-4+'px serif';a%3Cc;a++)for(var",
              " m=d;m%3Ck;m++)1==lvl[a][m]&&g.fillRect(m*q+h,a*r+l,q,r),2==lvl[",
              "a][m]&&(g.beginPath(),g.arc(m*q+h+q/2,a*r+l+r/2,q/8,0,2*Math.PI,",
              "!0),g.stroke()),4==lvl[a][m]&&g.fillText(fa,m*q+h+q/2+r/12,a*r+l",
              "+r/2+r/12),6==lvl[a][m]&&g.fillText(C[D],m*q+h+q/2+r/12,a*r+l+r/",
              "2+r/12)} function Ia(a,d,c,k,m){var A=N.createGain(),R=N.createO",
              "scillator();A.connect(N.destination);A.gain.setValueAtTime(0,N.c",
              "urrentTime);A.gain.linearRampToValueAtTime(m,N.currentTime+c/1E3",
              ");A.gain.linearRampToValueAtTime(0,N.currentTime+k/1E3);R.freque",
              "ncy.value=a;R.type=d;R.connect(A);R.start(0);R.stop(N.currentTim",
              "e+k/1E3)}function Y(a,d,c){Ia(d,c,10,a,.8)}window.addEventListen",
              "er('resize',function(){clearInterval(Ka);cancelAnimationFrame(x)",
              ";cancelAnimationFrame(w);S()});S(); %3C/script%3E%3C/body%3E"
            ]
          }
        ],
        "image": [
          "data:image/svg+xml;utf8,%3Csvg width='500' height='560' viewBox=",
          "'0 0 500 560' xmlns='http://www.w3.org/2000/svg'%3E %3Crect widt",
          "h='500' height='560' fill='%23F4F3EF' /%3E %3Ccircle stroke='%23",
          "ba0001' stroke-width='10' cx='250' cy='250'  fill='%23000' r='24",
          "0'/%3E%3Cg text-anchor='middle' style='font:700 50pt monospace' ",
          "fill='%23ba0001'%3E%3Ctext x='50%25' y='25%25'%3E C H R Z %3C/te",
          "xt%3E %3Ctext x='50%25' y='240'%3E &%23x1F920; &%23x1F92C; &%23x",
          "1F92F; &%23x1F92A; %3C/text%3E %3Ctext x='50%25' y='330'%3E VS%3",
          "C/text%3E %3Ctext x='50%25' y='430'%3E &%23x1F636;%3C/text%3E %3",
          "Ctext x='50%25' y='550'%3E CLASSIC %3C/text%3E%3C/g%3E%3C/svg%3E"
        ],
        "mediaType": "image/svg+xml",
        "name": "CHRZ #2"
      }
    }
  }
}

The check metadata option in NMKR is not able to verify whether the metadata are syntactically correct. Please, if in doubt, mint a test NFT.

Example NFT

Special credits to Gamez On Chain for providing a lot of valuable information to this topic.

Last updated