{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"HelloNear","description":"Documentation for HelloNear: AI agents on NEAR whose money rules sit outside the model.","colors":{"primary":"#3E5C00","light":"#D8F04A","dark":"#3E5C00"},"logo":{"light":"https://mintcdn.com/hellonear/gLbgCXiz1DXI4ips/logo/light.svg?fit=max\u0026auto=format\u0026n=gLbgCXiz1DXI4ips\u0026q=85\u0026s=412247e5cf6372e4d8b2d22f033c1480","dark":"https://mintcdn.com/hellonear/gLbgCXiz1DXI4ips/logo/dark.svg?fit=max\u0026auto=format\u0026n=gLbgCXiz1DXI4ips\u0026q=85\u0026s=1459b404fb4b59f6ded9856bfea95e7d","href":"https://docs.hellonear.xyz"},"favicon":"https://mintcdn.com/hellonear/gLbgCXiz1DXI4ips/favicon.svg?fit=max\u0026auto=format\u0026n=gLbgCXiz1DXI4ips\u0026q=85\u0026s=5763c5cc55b06e5d22766a294222b47d","background":{"color":{"light":"#F3F2EE","dark":"#11110F"}},"navbar":{"links":[{"href":"https://trust.hellonear.xyz","label":"Trust"},{"href":"https://status.hellonear.xyz","label":"Status"},{"href":"https://github.com/Hellonear-AI/hellonear","type":"github"}]},"footer":{"socials":{"x":"https://x.com/hellonearai","github":"https://github.com/Hellonear-AI/hellonear"}},"fonts":{"family":"Geist"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"hellonear","hasAudioNarration":false,"actualSubdomain":"hellonear","customDomains":["docs.hellonear.xyz"],"gitSource":{"type":"github","owner":"hellonear-ai","repo":"hellonear","deployBranch":"main","contentDirectory":"apps/docs","isPrivate":false,"mountPath":"","label":"","_id":"6af6353f1e17d5bfbafe1fce"},"entitlements":{},"buildId":"6af6af69753969264115fe54","clientVersion":"0.0.4124","searchFilterCounts":[{"language":"default","tag":"Endpoints","count":63},{"language":"default","tag":"Documentation","count":29},{"language":"default","tag":"Concepts","count":9},{"language":"default","tag":"Autopilot","count":9},{"language":"default","tag":"Wallet","count":8},{"language":"default","tag":"Track features","count":7},{"language":"default","tag":"API","count":5},{"language":"default","tag":"Auth","count":5},{"language":"default","tag":"Chat","count":5},{"language":"default","tag":"Minds","count":5}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[{"filePath":"style.css","content":":root{--hn-scrollbar-thumb: rgb(22 22 20 / 0.22);--hn-scrollbar-thumb-hover: rgb(22 22 20 / 0.38)}html.dark{--hn-scrollbar-thumb: rgb(242 241 236 / 0.22);--hn-scrollbar-thumb-hover: rgb(242 241 236 / 0.38)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track,::-webkit-scrollbar-corner{background:transparent}::-webkit-scrollbar-button{display:none}::-webkit-scrollbar-thumb{border-radius:9999px;background:var(--hn-scrollbar-thumb)}::-webkit-scrollbar-thumb:hover{background:var(--hn-scrollbar-thumb-hover)}@supports (-moz-appearance: none){*{scrollbar-width:thin;scrollbar-color:var(--hn-scrollbar-thumb) transparent}}:root{--hn-node: #ffffff;--hn-node-line: #e0ded6;--hn-ours: #f6fadf;--hn-ours-line: #c4d968;--hn-text: #161614;--hn-sub: #5c5a54;--hn-edge: #b9b6ad;--hn-dot: #5b7a00;--hn-pill: #f3f2ee;--hn-group: rgb(22 22 20 / 0.03);--hn-group-line: #d6d3c9;--hn-bad: #bf3220}html.dark{--hn-node: #1a1a18;--hn-node-line: #2e2e2b;--hn-ours: rgb(216 240 74 / 0.07);--hn-ours-line: rgb(216 240 74 / 0.35);--hn-text: #f2f1ec;--hn-sub: #a6a39b;--hn-edge: #4c4b46;--hn-dot: #d8f04a;--hn-pill: #11110f;--hn-group: rgb(242 241 236 / 0.025);--hn-group-line: #2e2e2b;--hn-bad: #ff6a55}.hn-diagram{margin:24px 0 8px}.hn-canvas{display:block;width:100%;height:auto;overflow:visible;font-family:inherit}.hn-node{fill:var(--hn-node);stroke:var(--hn-node-line);stroke-width:1}.hn-ours{fill:var(--hn-ours);stroke:var(--hn-ours-line)}.hn-title{fill:var(--hn-text);font-size:13px;font-weight:600}.hn-sub{fill:var(--hn-sub);font-size:11px}.hn-mono{font-family:ui-monospace, SFMono-Regular, Menlo, monospace;font-size:10.5px}.hn-edge{fill:none;stroke:var(--hn-edge);stroke-width:1.5}.hn-dashed{stroke-dasharray:4 4}.hn-head{fill:none;stroke:var(--hn-edge);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.hn-dot{fill:var(--hn-dot)}.hn-pill{fill:var(--hn-pill);stroke:var(--hn-node-line);stroke-width:1}.hn-label{fill:var(--hn-sub);font-size:10.5px;font-weight:500}.hn-group{fill:var(--hn-group);stroke:var(--hn-group-line);stroke-width:1;stroke-dasharray:5 5}.hn-glabel{fill:var(--hn-sub);font-size:11px;font-weight:600}.hn-life{stroke:var(--hn-node-line);stroke-width:1;stroke-dasharray:3 5}.hn-num{fill:var(--hn-node);stroke:var(--hn-edge);stroke-width:1}.hn-numtext{fill:var(--hn-sub);font-size:9.5px;font-weight:600}.hn-note{fill:var(--hn-ours);stroke:var(--hn-ours-line);stroke-width:1}.hn-notetext{fill:var(--hn-text);font-size:11px;font-weight:500}.hn-alt{fill:var(--hn-sub);font-size:11px;font-weight:600}.hn-alt.hn-bad,.hn-steps .hn-bad{fill:var(--hn-bad);color:var(--hn-bad)}.hn-badline{stroke:var(--hn-bad)}.hn-label.hn-bad{fill:var(--hn-bad)}.hn-start{fill:var(--hn-edge)}.hn-badfill{fill:var(--hn-bad)}.hn-frame{fill:var(--hn-group);stroke:var(--hn-group-line);stroke-width:1;stroke-dasharray:5 5}.hn-frame-split{stroke:var(--hn-group-line);stroke-width:1;stroke-dasharray:5 5}@media (prefers-reduced-motion: reduce){.hn-dot{display:none}}.hn-diagram .hn-narrow{display:none}@media (max-width: 767px){.hn-diagram .hn-wide{display:none}.hn-diagram .hn-narrow{display:block}.hn-diagram .hn-steps.hn-narrow{display:flex}}.hn-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px;counter-reset:hn}.hn-step{counter-increment:hn;display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding-left:30px;position:relative}.hn-step::before{content:counter(hn);position:absolute;left:0;top:1px;width:20px;height:20px;border-radius:999px;border:1px solid var(--hn-edge);color:var(--hn-sub);font-size:11px;font-weight:600;display:flex;align-items:center;justify-content:center}.hn-chip{font-size:12px;font-weight:600;padding:2px 8px;border-radius:999px;background:var(--hn-node);border:1px solid var(--hn-node-line);color:var(--hn-text)}.hn-chip-ours{background:var(--hn-ours);border-color:var(--hn-ours-line)}.hn-arrow{color:var(--hn-sub);font-size:12px}.hn-steptext{flex-basis:100%;font-size:14px;color:var(--hn-text)}.hn-steps-alt{font-size:12px;font-weight:600;color:var(--hn-sub);padding-top:4px}.hn-steps-note{font-size:13px;color:var(--hn-text);background:var(--hn-ours);border:1px solid var(--hn-ours-line);border-radius:10px;padding:8px 12px}.hn-tech td:first-child{padding-left:96px!important;text-indent:-84px}.hn-logo,.hn-logo-space{display:inline-block;width:72px;height:18px;margin:0 8px 0 0;vertical-align:-4px;text-indent:0}.hn-logo{object-fit:contain;object-position:left center}.hn-word{height:16px;vertical-align:-3px}.hn-mark{height:22px;vertical-align:-6px}.hn-on-dark{display:none}html.dark .hn-on-light{display:none}html.dark .hn-on-dark{display:inline-block}html.dark .hn-invert{filter:invert(1)}@media (max-width: 767px){.hn-tech td:first-child{padding-left:12px!important;text-indent:0}.hn-logo-space{display:none}.hn-logo{display:block;margin:0 0 6px}.hn-logo.hn-on-dark{display:none}html.dark .hn-logo.hn-on-light{display:none}html.dark .hn-logo.hn-on-dark{display:block}}.hn-icons td:first-child{padding-left:48px!important;text-indent:-36px}.hn-icons .hn-logo,.hn-icons .hn-logo-space{width:24px;height:24px;margin-right:8px;vertical-align:-7px}@media (max-width: 767px){.hn-icons td:first-child{padding-left:48px!important;text-indent:-36px}.hn-icons .hn-logo,.hn-icons .hn-logo-space{display:inline-block;margin:0 8px 0 0}}table thead:not(:has(th:not(:empty))){display:none}"}],"page":{"pagePath":"how-it-works","slug":"/how-it-works","pageMetadata":{"title":"How it works","description":"The parts of HelloNear and how one payment goes from a chat message to a NEAR transaction.","href":"/how-it-works"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"The parts of HelloNear and how one payment goes from a chat message to a NEAR transaction.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];const __snippet_ACTORS_imvo1i=[`Owner`,`Mind`,`NEAR AI Cloud`,`Backend`,`OutLayer`,`NEAR testnet`];const __snippet_STEPS_imvo1i=[{f:0,t:1,text:`\"Pay 0.01 NEAR to alice.testnet\"`},{f:1,t:2,text:`model call (streamed)`},{f:2,t:1,text:`tool call near_view_account`,back:true},{f:1,t:5,text:`RPC view_account alice.testnet`},{f:5,t:1,text:`account exists`,back:true},{f:2,t:1,text:`tool call send_payment`,back:true},{note:1,text:`requireApproval: the run pauses (unless an owner rule covers it)`},{f:1,t:0,text:`approval card: amount, recipient, checks`,back:true},{f:0,t:3,text:`Approve`},{f:3,t:1,text:`resume the run`},{f:1,t:3,text:`/internal/v1/wallet/send_payment (wallet token)`},{f:3,t:4,text:`transfer request`},{alt:`Inside the policy`},{f:4,t:5,text:`signed transfer`},{f:5,t:4,text:`tx hash`,back:true},{f:4,t:1,text:`sent + txHash`,back:true},{alt:`Over the limit, not on the list, or frozen`,bad:true},{f:4,t:1,text:`policy_denied / wallet_frozen, no tx`,back:true,bad:true},{end:true},{f:1,t:0,text:`receipt (or \"refused before signing\")`,back:true},{f:1,t:2,text:`fetch signatures + attestation`},{note:1,text:`run.verified: the badge shows only if every step matches the attested key`}];const PaymentSteps=()=>{const W=800;const gutter=40;const colX=i=>gutter+64+i*128;const row=34;let y=60;const rows=__snippet_STEPS_imvo1i.map(s=>{const r={s,y};y+=s.end?14:s.alt?28:row;return r});const height=y+16;const altStart=rows.find(r=>r.s.alt\u0026\u0026!r.s.bad);const altElse=rows.find(r=>r.s.alt\u0026\u0026r.s.bad);const altEnd=rows.find(r=>r.s.end);let n=0;return _jsxs(`div`,{className:`hn-diagram not-prose`,children:[_jsxs(`svg`,{viewBox:`0 0 ${W} ${height}`,className:`hn-canvas hn-wide`,role:`img`,\"aria-label\":`One payment, call by call: the steps listed below for phones and screen readers.`,children:[__snippet_ACTORS_imvo1i.map((a,i)=>_jsxs(`g`,{children:[_jsx(`line`,{x1:colX(i),y1:42,x2:colX(i),y2:height-6,className:`hn-life`}),_jsx(`rect`,{x:colX(i)-56,y:6,width:`112`,height:`34`,rx:`10`,className:i===1||i===3?`hn-node hn-ours`:`hn-node`}),_jsx(`text`,{x:colX(i),y:27.5,textAnchor:`middle`,className:`hn-title`,children:a})]},a)),altStart\u0026\u0026altEnd?_jsxs(`g`,{children:[_jsx(`rect`,{x:gutter+4,y:altStart.y+2,width:W-gutter-8,height:altEnd.y-altStart.y+4,rx:`12`,className:`hn-frame`}),altElse?_jsx(`line`,{x1:gutter+4,y1:altElse.y+2,x2:W-4,y2:altElse.y+2,className:`hn-frame-split`}):null]}):null,rows.map(({s,y},i)=>{if(s.end)return null;if(s.alt)return _jsxs(`text`,{x:gutter+16,y:y+19,className:s.bad?`hn-alt hn-bad`:`hn-alt`,children:[s.bad?`Otherwise: `:``,s.alt]},i);if(s.note!==undefined)return _jsxs(`g`,{children:[_jsx(`rect`,{x:colX(s.note)-56,y:y+5,width:W-colX(s.note)+56-120,height:`24`,rx:`8`,className:`hn-note`}),_jsx(`text`,{x:colX(s.note)-44,y:y+21,className:`hn-notetext`,children:s.text})]},i);n+=1;const x1=colX(s.f),x2=colX(s.t),dir=x2>x1?1:-1,yy=y+24;const w=s.text.length*5.7;const cx=Math.min(W-6-w/2,Math.max(gutter+8+w/2,(x1+x2)/2));return _jsxs(`g`,{children:[_jsx(`circle`,{cx:gutter/2,cy:yy-4,r:`9`,className:`hn-num`}),_jsx(`text`,{x:gutter/2,y:yy-.5,textAnchor:`middle`,className:`hn-numtext`,children:n}),_jsx(`circle`,{cx:x1,cy:yy,r:`3`,className:s.bad?`hn-start hn-badfill`:`hn-start`}),_jsx(`line`,{x1,y1:yy,x2:x2-dir*2,y2:yy,className:`hn-edge ${s.back?`hn-dashed`:``} ${s.bad?`hn-badline`:``}`}),_jsx(`path`,{d:`M${x2-dir*8},${yy-4} L${x2},${yy} L${x2-dir*8},${yy+4}`,className:`hn-head ${s.bad?`hn-badline`:``}`}),_jsx(`text`,{x:cx,y:yy-8,textAnchor:`middle`,className:s.bad?`hn-label hn-bad`:`hn-label`,children:s.text})]},i)})]}),_jsx(`ol`,{className:`hn-narrow hn-steps`,children:__snippet_STEPS_imvo1i.filter(s=>!s.end).map((s,i)=>s.alt?_jsxs(`li`,{className:s.bad?`hn-steps-alt hn-bad`:`hn-steps-alt`,children:[s.bad?`Otherwise: `:``,s.alt]},i):s.note!==undefined?_jsx(`li`,{className:`hn-steps-note`,children:s.text},i):_jsxs(`li`,{className:`hn-step`,children:[_jsx(`span`,{className:`hn-chip ${s.f===1||s.f===3?`hn-chip-ours`:``}`,children:__snippet_ACTORS_imvo1i[s.f]}),_jsx(`span`,{className:`hn-arrow`,\"aria-label\":`to`,children:`→`}),_jsx(`span`,{className:`hn-chip ${s.t===1||s.t===3?`hn-chip-ours`:``}`,children:__snippet_ACTORS_imvo1i[s.t]}),_jsx(`span`,{className:`hn-steptext ${s.bad?`hn-bad`:``}`,children:s.text})]},i))})]})};const __snippet_anchor_imvo1i=(n,side,f=.5)=>side===`l`?[n.x,n.y+n.h*f,-1,0]:side===`r`?[n.x+n.w,n.y+n.h*f,1,0]:side===`t`?[n.x+n.w*f,n.y,0,-1]:[n.x+n.w*f,n.y+n.h,0,1];const __snippet_link_imvo1i=(e,a,b)=>{const[x1,y1,dx1,dy1]=__snippet_anchor_imvo1i(a,e.fs,e.ff);const[x2,y2,dx2,dy2]=__snippet_anchor_imvo1i(b,e.ts,e.tf);const k=Math.max(28,Math.hypot(x2-x1,y2-y1)*.4);const c1=[x1+dx1*(e.k1??k),y1+dy1*(e.k1??k)];const c2=[x2+dx2*(e.k2??k),y2+dy2*(e.k2??k)];const t=e.t??.5,u=1-t;const at=(p,q,r,s2)=>u*u*u*p+3*u*u*t*q+3*u*t*t*r+t*t*t*s2;const mid=[at(x1,c1[0],c2[0],x2),at(y1,c1[1],c2[1],y2)];return{d:`M${x1},${y1} C${c1[0]},${c1[1]} ${c2[0]},${c2[1]} ${x2},${y2}`,mid,end:[x2,y2,dx2,dy2]}};const __snippet_Node_imvo1i=({n})=>_jsxs(`g`,{children:[_jsx(`rect`,{x:n.x,y:n.y,width:n.w,height:n.h,rx:`12`,className:n.ours?`hn-node hn-ours`:`hn-node`}),_jsx(`text`,{x:n.x+14,y:n.y+(n.sub?22:n.h/2+4.5),className:`hn-title`,children:n.title}),(n.sub||[]).map((line,i)=>_jsx(`text`,{x:n.x+14,y:n.y+38+i*14,className:n.mono?`hn-sub hn-mono`:`hn-sub`,children:line},i))]});const __snippet_Edge_imvo1i=({e,nodes,i})=>{const{d,mid,end}=__snippet_link_imvo1i(e,nodes[e.from],nodes[e.to]);const[x,y,dx,dy]=end;const ax=-dx,ay=-dy,px=-ay,py=ax;const head=`M${x+dx*7+px*4},${y+dy*7+py*4} L${x},${y} L${x+dx*7-px*4},${y+dy*7-py*4}`;const w=e.label?e.label.length*5.6+12:0;return _jsxs(`g`,{children:[_jsx(`path`,{d,className:e.dashed?`hn-edge hn-dashed`:`hn-edge`}),_jsx(`path`,{d:head,className:`hn-head`}),e.dashed?null:_jsx(`circle`,{r:`2.6`,className:`hn-dot`,children:_jsx(`animateMotion`,{dur:`${2.6+i%4*.35}s`,begin:`${i*.45%2.4}s`,repeatCount:`indefinite`,path:d})}),e.label?_jsxs(`g`,{children:[_jsx(`rect`,{x:mid[0]-w/2,y:mid[1]-9,width:w,height:`18`,rx:`9`,className:`hn-pill`}),_jsx(`text`,{x:mid[0],y:mid[1]+3.5,textAnchor:`middle`,className:`hn-label`,children:e.label})]}):null]})};const __snippet_Group_imvo1i=({g})=>_jsxs(`g`,{children:[_jsx(`rect`,{x:g.x,y:g.y,width:g.w,height:g.h,rx:`16`,className:`hn-group`}),_jsx(`text`,{x:g.end?g.x+g.w-14:g.x+14,y:g.y+20,textAnchor:g.end?`end`:`start`,className:`hn-glabel`,children:g.label})]});const __snippet_Canvas_imvo1i=({width,height,nodes,edges,groups,label,className})=>_jsxs(`svg`,{viewBox:`0 0 ${width} ${height}`,className:`hn-canvas ${className}`,role:`img`,\"aria-label\":label,children:[(groups||[]).map((g,i)=>_jsx(__snippet_Group_imvo1i,{g},i)),edges.map((e,i)=>_jsx(__snippet_Edge_imvo1i,{e,nodes,i},i)),Object.values(nodes).map((n,i)=>_jsx(__snippet_Node_imvo1i,{n},i))]});const __snippet_ARCH_LABEL_imvo1i=`HelloNear's parts. The owner chats and approves in the web app or Telegram, which talk to the backend API; Meteor signs the wallet policy and Freeze on OutLayer. The backend sends each Mind's config and skills to the engine (Mastra): one generic Mind agent, 53 tools granted by equipped skills, and Builder workflows with Autopilot. The engine calls NEAR AI Cloud for every model call, NEAR Intents for dry quotes, Composio for apps, and NEAR RPC. The backend sends transfers to OutLayer, which checks the policy in a TEE and signs for NEAR testnet, uploads Intel quotes to Phala's TEE Explorer, and writes the Mind registry.`;const Architecture=()=>{const D={web:{x:0,y:30,w:132,h:54,title:`Web app`,sub:[`chat, approve`],ours:true},tg:{x:0,y:98,w:132,h:54,title:`Telegram bot`,sub:[`chat, approve`],ours:true},meteor:{x:0,y:166,w:132,h:54,title:`Meteor wallet`,sub:[`the owner signs`]},be:{x:200,y:64,w:150,h:70,title:`Backend API`,sub:[`NEP-413 sign-in,`,`runs, approvals`],ours:true},agent:{x:445,y:40,w:150,h:56,title:`Mind agent`,sub:[`persona, memory, skills`],ours:true},tools:{x:445,y:110,w:150,h:56,title:`53 tools`,sub:[`only equipped skills`],ours:true},wf:{x:445,y:180,w:150,h:56,title:`Workflows`,sub:[`Builder, Autopilot`],ours:true},nai:{x:670,y:16,w:150,h:54,title:`NEAR AI Cloud`,sub:[`TEE inference`]},intents:{x:670,y:82,w:150,h:54,title:`NEAR Intents`,sub:[`1Click quotes`]},composio:{x:670,y:148,w:150,h:54,title:`Composio`,sub:[`Gmail, Calendar, more`]},rpc:{x:670,y:214,w:150,h:54,title:`NEAR RPC`,sub:[`view_account, tx`]},near:{x:0,y:344,w:132,h:54,title:`NEAR testnet`,sub:[`signed transfers`]},ol:{x:200,y:336,w:150,h:70,title:`OutLayer`,sub:[`policy checked`,`in a TEE`]},phala:{x:445,y:336,w:150,h:70,title:`Phala TEE`,sub:[`Explorer`]},reg:{x:670,y:336,w:150,h:70,title:`Mind registry`,sub:[`hellonear-registry`,`.testnet`],mono:true}};const E=[{from:`web`,fs:`r`,to:`be`,ts:`l`,tf:.35},{from:`tg`,fs:`r`,to:`be`,ts:`l`,tf:.65},{from:`be`,fs:`r`,ff:.35,to:`agent`,ts:`l`,label:`config + skills`,t:.45},{from:`tools`,fs:`l`,to:`be`,ts:`r`,tf:.75,label:`wallet routes`,dashed:true,t:.5},{from:`agent`,fs:`b`,to:`tools`,ts:`t`},{from:`wf`,fs:`t`,to:`tools`,ts:`b`},{from:`agent`,fs:`r`,to:`nai`,ts:`l`,label:`model calls`},{from:`tools`,fs:`r`,ff:.3,to:`intents`,ts:`l`,label:`dry quote`},{from:`tools`,fs:`r`,ff:.55,to:`composio`,ts:`l`},{from:`tools`,fs:`r`,ff:.8,to:`rpc`,ts:`l`},{from:`meteor`,fs:`b`,to:`ol`,ts:`t`,tf:.25,label:`policy, freeze`,t:.45},{from:`be`,fs:`b`,ff:.6,to:`ol`,ts:`t`,tf:.65,label:`transfer`},{from:`ol`,fs:`l`,to:`near`,ts:`r`},{from:`be`,fs:`b`,ff:.85,to:`phala`,ts:`t`,k1:170,k2:40,label:`Intel quote`,t:.72},{from:`be`,fs:`b`,ff:.95,to:`reg`,ts:`t`,k1:185,k2:40,label:`registry`,dashed:true,t:.8}];const DG=[{x:430,y:0,w:180,h:250,label:`Engine (Mastra 1.81)`}];const M={web:{x:0,y:0,w:108,h:40,title:`Web app`,ours:true},tg:{x:122,y:0,w:108,h:40,title:`Telegram`,ours:true},meteor:{x:244,y:0,w:116,h:40,title:`Meteor`},be:{x:50,y:92,w:180,h:70,title:`Backend API`,sub:[`NEP-413 sign-in,`,`runs, approvals`],ours:true},agent:{x:24,y:244,w:150,h:56,title:`Mind agent`,sub:[`persona, memory`],ours:true},tools:{x:186,y:244,w:150,h:56,title:`53 tools`,sub:[`equipped skills`],ours:true},wf:{x:186,y:314,w:150,h:56,title:`Workflows`,sub:[`Builder, Autopilot`],ours:true},nai:{x:0,y:432,w:172,h:54,title:`NEAR AI Cloud`,sub:[`TEE inference`]},intents:{x:188,y:432,w:172,h:54,title:`NEAR Intents`,sub:[`1Click quotes`]},composio:{x:0,y:498,w:172,h:54,title:`Composio`,sub:[`Gmail, Calendar`]},rpc:{x:188,y:498,w:172,h:54,title:`NEAR RPC`,sub:[`view_account, tx`]},ol:{x:0,y:610,w:172,h:54,title:`OutLayer`,sub:[`policy signed in Meteor`]},near:{x:188,y:610,w:172,h:54,title:`NEAR testnet`},phala:{x:0,y:676,w:172,h:54,title:`Phala TEE`,sub:[`Explorer`]},reg:{x:188,y:676,w:172,h:54,title:`Mind registry`,sub:[`hellonear-registry`],mono:true}};const ME=[{from:`web`,fs:`b`,to:`be`,ts:`t`},{from:`tg`,fs:`b`,to:`be`,ts:`t`,label:`chat, approve`},{from:`be`,fs:`b`,to:`agent`,ts:`t`,label:`config + skills`},{from:`agent`,fs:`r`,to:`tools`,ts:`l`},{from:`wf`,fs:`t`,to:`tools`,ts:`b`},{from:`agent`,fs:`b`,to:`nai`,ts:`t`,label:`model calls`,t:.72},{from:`tools`,fs:`r`,to:`intents`,ts:`t`,tf:.88,k1:22,k2:70},{from:`ol`,fs:`r`,to:`near`,ts:`l`}];const MG=[{x:10,y:206,w:340,h:176,label:`Engine (Mastra 1.81)`,end:true},{x:-6,y:586,w:372,h:152,label:`Wallet, proofs and registry (from the backend)`}];return _jsxs(`div`,{className:`hn-diagram not-prose`,children:[_jsx(__snippet_Canvas_imvo1i,{width:820,height:410,nodes:D,edges:E,groups:DG,label:__snippet_ARCH_LABEL_imvo1i,className:`hn-wide`}),_jsx(__snippet_Canvas_imvo1i,{width:360,height:740,nodes:M,edges:ME,groups:MG,label:__snippet_ARCH_LABEL_imvo1i,className:`hn-narrow`})]})};function _createMdxContent(props){const _components={hr:`hr`,..._provideComponents(),...props.components},{Heading,_MdxComponentBoundary}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!_MdxComponentBoundary)_missingMdxReference(`_MdxComponentBoundary`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`the-parts`,children:`The parts`}),`\n`,_jsx(_MdxComponentBoundary,{name:`Architecture`,children:_jsx(Architecture,{})}),`\n`,_jsx(Heading,{level:`2`,id:`one-payment-call-by-call`,children:`One payment, call by call`}),`\n`,_jsx(_MdxComponentBoundary,{name:`PaymentSteps`,children:_jsx(PaymentSteps,{})}),`\n`,_jsx(_components.hr,{})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{__snippet_ACTORS_imvo1i,__snippet_STEPS_imvo1i,PaymentSteps,__snippet_anchor_imvo1i,__snippet_link_imvo1i,__snippet_Node_imvo1i,__snippet_Edge_imvo1i,__snippet_Group_imvo1i,__snippet_Canvas_imvo1i,__snippet_ARCH_LABEL_imvo1i,Architecture,default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"How it works","description":"The parts of HelloNear and how one payment goes from a chat message to a NEAR transaction.","href":"/how-it-works"}}},"mdxSourceWithNoJs":null,"noJsSplices":[[158,11782,"undefined;const __snippet_STEPS_imvo1i=undefined;const PaymentSteps=()=>null;const __snippet_anchor_imvo1i=()=>null;const __snippet_link_imvo1i=()=>null;const __snippet_Node_imvo1i=()=>null;const __snippet_Edge_imvo1i=()=>null;const __snippet_Group_imvo1i=()=>null;const __snippet_Canvas_imvo1i=()=>null;const __snippet_ARCH_LABEL_imvo1i=undefined;const Architecture=()=>null;func"]]},"mdxExtracts":{"tableOfContents":[{"title":"The parts","slug":"the-parts","depth":2,"children":[]},{"title":"One payment, call by call","slug":"one-payment-call-by-call","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/hellonear/35f2a7c8e94303df/title.js"],"subdomain":"hellonear","siteName":"HelloNear","title":"How it works - HelloNear","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-13T03:27:20.547Z","originalFileLocation":"how-it-works.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"The parts of HelloNear and how one payment goes from a chat message to a NEAR transaction.\">\u003cmeta data-mint-head name=\"application-name\" content=\"HelloNear\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/hellonear/SG42WlqR9QhW-wTA/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/hellonear/SG42WlqR9QhW-wTA/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/hellonear/SG42WlqR9QhW-wTA/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/hellonear/SG42WlqR9QhW-wTA/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/hellonear/SG42WlqR9QhW-wTA/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/hellonear/SG42WlqR9QhW-wTA/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/hellonear/SG42WlqR9QhW-wTA/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/hellonear/SG42WlqR9QhW-wTA/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/hellonear/SG42WlqR9QhW-wTA/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"How it works - HelloNear\">\u003cmeta data-mint-head property=\"og:description\" content=\"The parts of HelloNear and how one payment goes from a chat message to a NEAR transaction.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"HelloNear\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.hellonear.xyz/how-it-works\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://hellonear.mintlify.site/_mintlify/api/og/v2?division=Get+started\u0026amp;title=How+it+works\u0026amp;description=The+parts+of+HelloNear+and+how+one+payment+goes+from+a+chat+message+to+a+NEAR+transaction.\u0026amp;theme=7004aec1138718a98ecffb09\u0026amp;signature=778d2037bed22a500b85818635c42a7358b2cc7a553918c04a8226101db7ac0e\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"How it works - HelloNear\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"The parts of HelloNear and how one payment goes from a chat message to a NEAR transaction.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://hellonear.mintlify.site/_mintlify/api/og/v2?division=Get+started\u0026amp;title=How+it+works\u0026amp;description=The+parts+of+HelloNear+and+how+one+payment+goes+from+a+chat+message+to+a+NEAR+transaction.\u0026amp;theme=7004aec1138718a98ecffb09\u0026amp;signature=778d2037bed22a500b85818635c42a7358b2cc7a553918c04a8226101db7ac0e\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/hellonear/SG42WlqR9QhW-wTA/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"HelloNear\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#3E5C00\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.hellonear.xyz/how-it-works\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/how-it-works.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.hellonear.xyz/#organization\",\"name\":\"HelloNear\",\"url\":\"https://docs.hellonear.xyz\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/hellonear/gLbgCXiz1DXI4ips/logo/light.svg?fit=max\u0026auto=format\u0026n=gLbgCXiz1DXI4ips\u0026q=85\u0026s=412247e5cf6372e4d8b2d22f033c1480\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.hellonear.xyz#website\",\"name\":\"HelloNear\",\"url\":\"https://docs.hellonear.xyz\",\"publisher\":{\"@id\":\"https://docs.hellonear.xyz/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.hellonear.xyz/how-it-works#webpage\",\"url\":\"https://docs.hellonear.xyz/how-it-works\",\"name\":\"How it works\",\"description\":\"The parts of HelloNear and how one payment goes from a chat message to a NEAR transaction.\",\"dateModified\":\"2026-11-13T03:27:20.547Z\",\"isPartOf\":{\"@id\":\"https://docs.hellonear.xyz#website\"},\"breadcrumb\":{\"@id\":\"https://docs.hellonear.xyz/how-it-works#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.hellonear.xyz/how-it-works#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Get started\",\"item\":\"https://docs.hellonear.xyz\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How it works\",\"item\":\"https://docs.hellonear.xyz/how-it-works\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.hellonear.xyz/how-it-works#article\",\"headline\":\"How it works\",\"name\":\"How it works\",\"description\":\"The parts of HelloNear and how one payment goes from a chat message to a NEAR transaction.\",\"url\":\"https://docs.hellonear.xyz/how-it-works\",\"mainEntityOfPage\":{\"@id\":\"https://docs.hellonear.xyz/how-it-works#webpage\"},\"dateModified\":\"2026-11-13T03:27:20.547Z\",\"publisher\":{\"@id\":\"https://docs.hellonear.xyz/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.hellonear.xyz#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"HelloNear\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"HelloNear\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/how-it-works.md","siteName":"HelloNear","nav":{"global":null,"tabs":[{"tab":"Documentation","groups":[{"group":"Get started","pages":[{"title":"Introduction","href":""},{"title":"Quickstart","description":"Try HelloNear in the web app as a guest, or drive it with curl through the public API.","href":"/quickstart"},{"title":"How it works","href":"/how-it-works"},{"title":"Tech stack","description":"What is used where: NEAR, NEAR AI Cloud, NEAR Intents, OutLayer, Mastra and the rest.","href":"/tech-stack"}]},{"group":"Concepts","pages":[{"title":"Minds and templates","href":"/minds"},{"title":"Skills and tools","href":"/skills"},{"title":"Wallet, limits and approvals","href":"/wallet-and-approvals"},{"title":"Verified replies","href":"/verified-replies"},{"title":"Privacy: what is kept","href":"/privacy"},{"title":"Autopilot and Builder","href":"/autopilot"},{"title":"Telegram","href":"/telegram"},{"title":"Connections and keys","href":"/connections"},{"title":"The agent","href":"/agent"}]},{"group":"Track features","pages":[{"title":"The six tracks","href":"/tracks"},{"title":"Haggling with a seller","href":"/haggling"},{"title":"Hire on Agent Market","href":"/agent-market"},{"title":"Contract check before paying","href":"/contract-check"},{"title":"Payments CSV","href":"/payments-csv"},{"title":"Gas relayer (NEP-366)","href":"/relayer"},{"title":"Swarm auction","href":"/swarm-auction"}]},{"group":"API","pages":[{"title":"API reference","href":"/api-reference"},{"title":"API overview","href":"/api"},{"title":"Streaming events","href":"/events"},{"title":"Errors","href":"/errors"},{"title":"Status","href":"/status"}]},{"group":"Smart contracts","pages":[{"title":"Receipts and smart contracts","href":"/contracts"}]},{"group":"More","pages":[{"title":"Run locally","href":"/run-locally"},{"title":"Connectors","href":"/connectors"},{"title":"Hackathon phase and roadmap","href":"/hackathon-phase"}]}]},{"tab":"Endpoints","pages":[{"title":"Endpoints","href":"/api-reference/system/health-of-the-backend-and-the-engine"}]}]},"basePath":"","title":"How it works - HelloNear","buildId":"dpl_8hoxaqFTU7hTr6A2fUraxAyjuiZo","deploymentId":"dpl_8hoxaqFTU7hTr6A2fUraxAyjuiZo","dynamics":[],"chunks":[]}