[{"data":1,"prerenderedAt":4313},["ShallowReactive",2],{"navigation_docs":3,"-guides-crypto-checkin":315,"-guides-crypto-checkin-surround":4308},[4,30,87,208,252],{"title":5,"path":6,"stem":7,"children":8,"page":29},"Getting Started","\u002Fgetting-started","1.getting-started",[9,14,19,24],{"title":10,"path":11,"stem":12,"icon":13},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F1.introduction","i-lucide-rocket",{"title":15,"path":16,"stem":17,"icon":18},"API","\u002Fgetting-started\u002Fapi-docs","1.getting-started\u002F2.api-docs","i-lucide-book-open-text",{"title":20,"path":21,"stem":22,"icon":23},"MCP","\u002Fgetting-started\u002Fmcp","1.getting-started\u002F3.mcp","i-lucide-bot",{"title":25,"path":26,"stem":27,"icon":28},"Smart Contract","\u002Fgetting-started\u002Fcontracts","1.getting-started\u002F5.contracts","i-lucide-clock",false,{"title":31,"path":32,"stem":33,"children":34,"page":29},"Guides","\u002Fguides","2.guides",[35,72,82],{"title":36,"path":37,"stem":38,"children":39,"page":29},"Crypto","\u002Fguides\u002Fcrypto","2.guides\u002F1.crypto",[40,45,50,55,59,64,68],{"title":41,"path":42,"stem":43,"icon":44},"Belong CheckIn","\u002Fguides\u002Fcrypto\u002Fcheckin","2.guides\u002F1.crypto\u002FcheckIn","i-lucide-map-pin",{"title":46,"path":47,"stem":48,"icon":49},"EVM NFT Minting","\u002Fguides\u002Fcrypto\u002Fminting","2.guides\u002F1.crypto\u002Fminting","i-lucide-box",{"title":51,"path":52,"stem":53,"icon":54},"Sponsored Gas","\u002Fguides\u002Fcrypto\u002Fsponsorship","2.guides\u002F1.crypto\u002Fsponsorship","i-lucide-wallet",{"title":56,"path":57,"stem":58,"icon":49},"LONG Staking","\u002Fguides\u002Fcrypto\u002Fstaking","2.guides\u002F1.crypto\u002Fstaking",{"title":60,"path":61,"stem":62,"icon":63},"Starknet NFT Minting","\u002Fguides\u002Fcrypto\u002Fstarknet","2.guides\u002F1.crypto\u002Fstarknet","i-lucide-circuit-board",{"title":65,"path":66,"stem":67,"icon":49},"Sui NFT Minting","\u002Fguides\u002Fcrypto\u002Fsui","2.guides\u002F1.crypto\u002Fsui",{"title":69,"path":70,"stem":71,"icon":28},"LONG Vesting","\u002Fguides\u002Fcrypto\u002Fvesting","2.guides\u002F1.crypto\u002Fvesting",{"title":73,"path":74,"stem":75,"children":76,"page":29},"Media","\u002Fguides\u002Fmedia","2.guides\u002F2.media",[77],{"title":78,"path":79,"stem":80,"icon":81},"Media Upload","\u002Fguides\u002Fmedia\u002Fcollection","2.guides\u002F2.media\u002Fcollection","i-lucide-image",{"title":83,"path":84,"stem":85,"icon":86},"Whitelabel","\u002Fguides\u002Fwhitelabel","2.guides\u002F5.whitelabel","i-lucide-badge-check",{"title":41,"path":88,"stem":89,"children":90},"\u002Fbelong-checkin","3.belong-checkin",[91,94,99,104,109,114,118,123,127,132,137,171,175,180,185,189,194,199,203],{"title":92,"path":88,"stem":93,"icon":44},"Overview","3.belong-checkin\u002Findex",{"title":95,"path":96,"stem":97,"icon":98},"App Features","\u002Fbelong-checkin\u002Fapp-features","3.belong-checkin\u002F1.app-features","i-lucide-list-checks",{"title":100,"path":101,"stem":102,"icon":103},"Telegram Bot","\u002Fbelong-checkin\u002Ftelegram-bot","3.belong-checkin\u002F10.telegram-bot","i-lucide-send",{"title":105,"path":106,"stem":107,"icon":108},"Apple Wallet","\u002Fbelong-checkin\u002Fapple-wallet","3.belong-checkin\u002F11.apple-wallet","i-lucide-ticket",{"title":110,"path":111,"stem":112,"icon":113},"Payments","\u002Fbelong-checkin\u002Fpayments-and-onramp","3.belong-checkin\u002F12.payments-and-onramp","i-lucide-credit-card",{"title":51,"path":115,"stem":116,"icon":117},"\u002Fbelong-checkin\u002Fsponsored-gas","3.belong-checkin\u002F13.sponsored-gas","i-lucide-fuel",{"title":119,"path":120,"stem":121,"icon":122},"Fees & Staking","\u002Fbelong-checkin\u002Ffees-and-staking","3.belong-checkin\u002F14.fees-and-staking","i-lucide-percent",{"title":124,"path":125,"stem":126,"icon":23},"Connect AI Deploy","\u002Fbelong-checkin\u002Fconnect-ai-deploy","3.belong-checkin\u002F15.connect-ai-deploy",{"title":128,"path":129,"stem":130,"icon":131},"QR Signage Examples","\u002Fbelong-checkin\u002Fvenue-qr-signage-examples","3.belong-checkin\u002F16.venue-qr-signage-examples","i-lucide-qr-code",{"title":133,"path":134,"stem":135,"icon":136},"Whitepaper","\u002Fbelong-checkin\u002Fwhitepaper","3.belong-checkin\u002F18.whitepaper","i-lucide-file-text",{"title":138,"icon":139,"path":140,"stem":141,"children":142,"page":29},"Developer","i-lucide-code","\u002Fbelong-checkin\u002Fdeveloper","3.belong-checkin\u002F19.developer",[143,148,152,156,161,166],{"title":144,"path":145,"stem":146,"icon":147},"Integration Overview","\u002Fbelong-checkin\u002Fdeveloper\u002Fintegration-overview","3.belong-checkin\u002F19.developer\u002F1.integration-overview","i-lucide-plug",{"title":149,"path":150,"stem":151,"icon":18},"API Reference","\u002Fbelong-checkin\u002Fdeveloper\u002Fapi-reference","3.belong-checkin\u002F19.developer\u002F2.api-reference",{"title":153,"path":154,"stem":155,"icon":23},"MCP Tools","\u002Fbelong-checkin\u002Fdeveloper\u002Fmcp-tools","3.belong-checkin\u002F19.developer\u002F3.mcp-tools",{"title":157,"path":158,"stem":159,"icon":160},"Networks","\u002Fbelong-checkin\u002Fdeveloper\u002Fnetworks","3.belong-checkin\u002F19.developer\u002F4.networks","i-lucide-network",{"title":162,"path":163,"stem":164,"icon":165},"Enterprise Apps","\u002Fbelong-checkin\u002Fdeveloper\u002Fenterprise-whitelabel","3.belong-checkin\u002F19.developer\u002F5.enterprise-whitelabel","i-lucide-package",{"title":167,"path":168,"stem":169,"icon":170},"POS & Events","\u002Fbelong-checkin\u002Fdeveloper\u002Fwebhooks-and-pos","3.belong-checkin\u002F19.developer\u002F6.webhooks-and-pos","i-lucide-receipt",{"title":172,"path":173,"stem":174,"icon":131},"Check-In Modes","\u002Fbelong-checkin\u002Fcheck-in-modes","3.belong-checkin\u002F2.check-in-modes",{"title":176,"path":177,"stem":178,"icon":179},"Venue Quick Start","\u002Fbelong-checkin\u002Fvenue-quickstart","3.belong-checkin\u002F3.venue-quickstart","i-lucide-store",{"title":181,"path":182,"stem":183,"icon":184},"Customer Rewards","\u002Fbelong-checkin\u002Fcustomer_rewards_guide","3.belong-checkin\u002F4.customer_rewards_guide","i-lucide-gift",{"title":186,"path":187,"stem":188,"icon":54},"Promoter Earnings","\u002Fbelong-checkin\u002Fpromoter-earnings-guide","3.belong-checkin\u002F5.promoter-earnings-guide",{"title":190,"path":191,"stem":192,"icon":193},"Venue Partner","\u002Fbelong-checkin\u002Fvenue-partner","3.belong-checkin\u002F6.venue-partner","i-lucide-building",{"title":195,"path":196,"stem":197,"icon":198},"Event Creation","\u002Fbelong-checkin\u002Fevent-creation","3.belong-checkin\u002F7.event-creation","i-lucide-calendar-plus",{"title":200,"path":201,"stem":202,"icon":54},"Wallet & Sign-In","\u002Fbelong-checkin\u002Fwallet-and-auth","3.belong-checkin\u002F8.wallet-and-auth",{"title":204,"path":205,"stem":206,"icon":207},"AI & Voice","\u002Fbelong-checkin\u002Fai-and-voice","3.belong-checkin\u002F9.ai-and-voice","i-lucide-mic",{"title":209,"path":210,"stem":211,"children":212,"page":29},"MCP Cheat Sheet","\u002Fmcp","4.mcp",[213,216,220,224,228,232,236,240,244,248],{"title":92,"path":214,"stem":215,"icon":23},"\u002Fmcp\u002Foverview","4.mcp\u002Foverview",{"title":217,"path":218,"stem":219,"icon":23},"Addresses","\u002Fmcp\u002Ftools-addresses","4.mcp\u002Ftools-addresses",{"title":221,"path":222,"stem":223,"icon":23},"CheckIn","\u002Fmcp\u002Ftools-check-in","4.mcp\u002Ftools-check-In",{"title":225,"path":226,"stem":227,"icon":23},"Events","\u002Fmcp\u002Ftools-events","4.mcp\u002Ftools-events",{"title":229,"path":230,"stem":231,"icon":23},"Hubs","\u002Fmcp\u002Ftools-hubs","4.mcp\u002Ftools-hubs",{"title":233,"path":234,"stem":235,"icon":49},"Minting","\u002Fmcp\u002Ftools-minting","4.mcp\u002Ftools-minting",{"title":237,"path":238,"stem":239,"icon":23},"Notes","\u002Fmcp\u002Ftools-notes","4.mcp\u002Ftools-notes",{"title":241,"path":242,"stem":243,"icon":23},"Registration","\u002Fmcp\u002Ftools-registration","4.mcp\u002Ftools-registration",{"title":245,"path":246,"stem":247,"icon":23},"Starknet","\u002Fmcp\u002Ftools-starknet","4.mcp\u002Ftools-starknet",{"title":249,"path":250,"stem":251,"icon":28},"Vesting","\u002Fmcp\u002Ftools-vesting","4.mcp\u002Ftools-vesting",{"title":253,"icon":13,"path":254,"stem":255,"children":256,"page":29},"Belong AI Deploy","\u002Fai-deploy","5.ai-deploy",[257,260,265,270,275,295,300,305,310],{"title":92,"path":258,"stem":259,"icon":13},"\u002Fai-deploy\u002Foverview","5.ai-deploy\u002F1.overview",{"title":261,"path":262,"stem":263,"icon":264},"Quick Start","\u002Fai-deploy\u002Fquickstart","5.ai-deploy\u002F2.quickstart","i-lucide-zap",{"title":266,"path":267,"stem":268,"icon":269},"Cloud Providers","\u002Fai-deploy\u002Fcloud-providers","5.ai-deploy\u002F3.cloud-providers","i-lucide-cloud",{"title":271,"path":272,"stem":273,"icon":274},"AI Providers","\u002Fai-deploy\u002Fai-providers","5.ai-deploy\u002F4.ai-providers","i-lucide-brain",{"title":276,"icon":277,"path":278,"stem":279,"children":280,"page":29},"Channels","i-lucide-messages-square","\u002Fai-deploy\u002Fchannels","5.ai-deploy\u002F5.channels",[281,285,290],{"title":282,"path":283,"stem":284,"icon":103},"Telegram","\u002Fai-deploy\u002Fchannels\u002Ftelegram","5.ai-deploy\u002F5.channels\u002F1.telegram",{"title":286,"path":287,"stem":288,"icon":289},"WhatsApp","\u002Fai-deploy\u002Fchannels\u002Fwhatsapp","5.ai-deploy\u002F5.channels\u002F2.whatsapp","i-lucide-message-circle",{"title":291,"path":292,"stem":293,"icon":294},"Slack","\u002Fai-deploy\u002Fchannels\u002Fslack","5.ai-deploy\u002F5.channels\u002F3.slack","i-lucide-hash",{"title":296,"path":297,"stem":298,"icon":299},"Private Access","\u002Fai-deploy\u002Fprivate-access","5.ai-deploy\u002F6.private-access","i-lucide-shield",{"title":301,"path":302,"stem":303,"icon":304},"Troubleshooting","\u002Fai-deploy\u002Ftroubleshooting","5.ai-deploy\u002F7.troubleshooting","i-lucide-wrench",{"title":306,"path":307,"stem":308,"icon":309},"Enterprise & API","\u002Fai-deploy\u002Fenterprise-api","5.ai-deploy\u002F8.enterprise-api","i-lucide-server-cog",{"title":311,"path":312,"stem":313,"icon":314},"OVHcloud","\u002Fai-deploy\u002Fovhcloud","5.ai-deploy\u002F9.ovhcloud","i-lucide-cloud-cog",{"id":316,"title":317,"body":318,"description":4301,"extension":4302,"links":4303,"meta":4304,"navigation":4305,"path":42,"seo":4306,"stem":43,"__hash__":4307},"docs\u002F2.guides\u002F1.crypto\u002FcheckIn.md","Belong CheckIn Guide for MCP",{"type":319,"value":320,"toc":4276},"minimark",[321,325,364,377,381,398,513,516,520,525,528,544,547,590,594,604,628,632,646,789,794,832,836,842,864,868,879,883,897,918,927,973,975,979,985,987,991,995,1563,1567,2304,2308,2315,2570,2574,2794,2798,2939,2943,3569,3573,3699,3703,3828,3832,4158,4162,4169,4174,4199,4204,4263,4265,4272],[322,323,92],"h2",{"id":324},"overview",[326,327,328,329,333,334,333,337,333,340,343,344,347,348,350,351,354,355,358,359,363],"p",{},"This guide explains how to manage ",[330,331,332],"strong",{},"venue deposits",", ",[330,335,336],{},"customer payments",[330,338,339],{},"promoter distributions",[330,341,342],{},"venue rule updates",", and ",[330,345,346],{},"payment cancellations"," using MCP tools for the ",[330,349,41],{}," workflow on EVM-compatible blockchains.\nThe process supports ",[330,352,353],{},"bounty configurations"," (e.g., visit and spend bounties), ",[330,356,357],{},"referrals",", sponsored gas eligibility, and venue settings. For detailed tool specifications, see ",[360,361,362],"a",{"href":222},"CheckIn MCP Tools",".",[365,366,367],"blockquote",{},[326,368,369,372,373,376],{},[330,370,371],{},"Prerequisites:"," Make sure ",[360,374,375],{"href":21},"MCP integration"," is set up and your API key is configured.",[322,378,380],{"id":379},"process-flow","Process Flow",[382,383,384,387],"mermaid",{},[326,385,386],{},"flowchart TD;",[388,389,394],"pre",{"className":390,"code":392,"language":393},[391],"language-text","A[Start: Venue Setup] --> B[Venue Deposit]\nB --> C[Configure Rules]\nC --> D[Customer Payment to Venue]\nD --> E[Promoter Payment Distribution]\nE --> F[Rewards Distributed]\n\nstyle A fill:#e1f5fe\nstyle D fill:#fff3e0\nstyle E fill:#f3e5f5\n","text",[395,396,392],"code",{"__ignoreMap":397},"",[399,400,401,417],"table",{},[402,403,404],"thead",{},[405,406,407,411,414],"tr",{},[408,409,410],"th",{},"Enum",[408,412,413],{},"Description",[408,415,416],{},"Values",[418,419,420,449,471,493],"tbody",{},[405,421,422,428,431],{},[423,424,425],"td",{},[330,426,427],{},"PaymentTypes",[423,429,430],{},"Defines accepted payment tokens.",[423,432,433,436,437,440,441,444,445,448],{},[395,434,435],{},"0",": NoType · ",[395,438,439],{},"1",": USDC · ",[395,442,443],{},"2",": LONG · ",[395,446,447],{},"3",": Both",[405,450,451,456,459],{},[423,452,453],{},[330,454,455],{},"BountyTypes",[423,457,458],{},"Defines reward trigger types.",[423,460,461,436,463,465,466,468,469,448],{},[395,462,435],{},[395,464,439],{},": VisitBounty · ",[395,467,443],{},": SpendBounty · ",[395,470,447],{},[405,472,473,478,481],{},[423,474,475],{},[330,476,477],{},"BountyAllocationTypes",[423,479,480],{},"Defines bounty recipient.",[423,482,483,436,485,487,488,490,491,448],{},[395,484,435],{},[395,486,439],{},": ToPromoter · ",[395,489,443],{},": ToCustomer · ",[395,492,447],{},[405,494,495,500,503],{},[423,496,497],{},[330,498,499],{},"LongPaymentTypes",[423,501,502],{},"Defines LONG token handling logic.",[423,504,505,436,507,509,510,512],{},[395,506,435],{},[395,508,439],{},": AutoStake · ",[395,511,443],{},": AutoConvert",[514,515],"hr",{},[322,517,519],{"id":518},"important-notes","Important Notes",[521,522,524],"h3",{"id":523},"owner-vs-venue-address","Owner vs Venue Address",[326,526,527],{},"For venue management operations, the API now distinguishes two addresses:",[529,530,531,538],"ul",{},[532,533,534,537],"li",{},[395,535,536],{},"ownerAddress"," — the main EOA wallet used for ownership\u002Fauth checks. It must belong to the authenticated user.",[532,539,540,543],{},[395,541,542],{},"venueAddress"," — the target venue account used in on-chain calls and signatures.",[326,545,546],{},"Behavior notes:",[529,548,549,561,566,569,576,587],{},[532,550,551,554,555,558,559,363],{},[395,552,553],{},"venueDeposit"," and ",[395,556,557],{},"updateVenueSettings"," validate ownership using ",[395,560,536],{},[532,562,563,564,363],{},"Transactions are still prepared for ",[395,565,542],{},[532,567,568],{},"Existing venue records are protected: if a venue already belongs to another user, update\u002Fdeposit is rejected with ownership error.",[532,570,571,572,575],{},"Venue storage is keyed by ",[395,573,574],{},"venueAddress + chainId",", so one owner can manage multiple venue addresses.",[532,577,578,579,582,583,586],{},"Venue can be linked to one hub (",[395,580,581],{},"hubId",") and one activity (",[395,584,585],{},"activityId",").",[532,588,589],{},"Each hub\u002Factivity can reference only one venue.",[521,591,593],{"id":592},"gasless-venue-flag","Gasless Venue Flag",[326,595,596,554,598,600,601,363],{},[395,597,553],{},[395,599,557],{}," also support ",[395,602,603],{},"gasless?: boolean",[529,605,606,612,621],{},[532,607,608,611],{},[395,609,610],{},"gasless: true"," enables sponsorship eligibility checks for the venue.",[532,613,614,617,618,363],{},[395,615,616],{},"venue"," responses now include ",[395,619,620],{},"gasless",[532,622,623,624,363],{},"For sponsored flows, the venue flag is only one part of the check. The actual sponsor balance, allowed operations, and reservations are validated through the sponsorship API. See ",[360,625,627],{"href":626},".\u002Fsponsorship","Sponsored Gas Ledger",[521,629,631],{"id":630},"bounty-configuration-validation","Bounty Configuration Validation",[326,633,634,635,554,638,641,642,645],{},"The system validates bounty configurations based on ",[395,636,637],{},"bountyType",[395,639,640],{},"bountyAllocationType"," at the service layer (in ",[395,643,644],{},"getAndValidateBountyAllocations"," method):",[647,648,649,705,752],"ol",{},[532,650,651,654,655,657,658],{},[330,652,653],{},"Bounty Type Validation"," (",[395,656,637],{},"):",[529,659,660,676,686,695],{},[532,661,662,665,666,554,669,672,673,675],{},[395,663,664],{},"NoType (0)",": Both ",[395,667,668],{},"visitBountyAmount",[395,670,671],{},"spendBountyPercentage"," must be ",[395,674,435],{}," for all allocations",[532,677,678,681,682,672,684,675],{},[395,679,680],{},"VisitBounty (1)",": ",[395,683,671],{},[395,685,435],{},[532,687,688,681,691,672,693,675],{},[395,689,690],{},"SpendBounty (2)",[395,692,668],{},[395,694,435],{},[532,696,697,681,700,554,702,704],{},[395,698,699],{},"Both (3)",[395,701,668],{},[395,703,671],{}," must be non-negative. Active allocation can use visit, spend, or both.",[532,706,707,654,710,657,712],{},[330,708,709],{},"Bounty Allocation Type Validation",[395,711,640],{},[529,713,714,725,735,744],{},[532,715,716,681,719,672,722],{},[395,717,718],{},"ToPromoter (1)",[395,720,721],{},"toCustomerBounty",[395,723,724],{},"{ visitBountyAmount: 0, spendBountyPercentage: 0 }",[532,726,727,681,730,672,733],{},[395,728,729],{},"ToCustomer (2)",[395,731,732],{},"toPromoterBounty",[395,734,724],{},[532,736,737,665,739,554,741,743],{},[395,738,664],{},[395,740,721],{},[395,742,732],{}," must be zero",[532,745,746,748,749,751],{},[395,747,699],{},": Both can have non-zero values (subject to ",[395,750,637],{}," validation)",[532,753,754,654,757,657,760],{},[330,755,756],{},"During payment",[395,758,759],{},"payToVenue",[529,761,762,770,773,786],{},[532,763,764,765,554,767,769],{},"System validates that ",[395,766,721],{},[395,768,732],{}," are provided from the database",[532,771,772],{},"Validates venue token balance (must be > 0)",[532,774,775,776,778,779,782,783],{},"Validates promoter exists if ",[395,777,640],{}," is ",[395,780,781],{},"ToPromoter"," or ",[395,784,785],{},"Both",[532,787,788],{},"Validates customer address ownership",[326,790,791],{},[330,792,793],{},"Example error scenarios:",[529,795,796,814],{},[532,797,798,801,802,805,806,809],{},[395,799,800],{},"bountyType = 3"," (Both), ",[395,803,804],{},"bountyAllocationType = 1"," (ToPromoter), ",[395,807,808],{},"toPromoter = {visitBountyAmount: 1, spendBountyPercentage: -1}",[529,810,811],{},[532,812,813],{},"Result: Validation fails - values must be non-negative",[532,815,816,805,818,821],{},[395,817,804],{},[395,819,820],{},"toCustomerBounty = {visitBountyAmount: 5, spendBountyPercentage: 2}",[529,822,823],{},[532,824,825,826,828,829],{},"Result: Validation fails - ",[395,827,721],{}," must be zero when ",[395,830,831],{},"bountyAllocationType = ToPromoter",[521,833,835],{"id":834},"bounty-allocation-types","Bounty Allocation Types",[326,837,838,839,841],{},"The ",[395,840,640],{}," enum values match the contract:",[529,843,844,849,854,859],{},[532,845,846,848],{},[395,847,435],{},": NoType — No bounty allocation",[532,850,851,853],{},[395,852,439],{},": ToPromoter — Bounty goes to promoter only",[532,855,856,858],{},[395,857,443],{},": ToCustomer — Bounty goes to customer only",[532,860,861,863],{},[395,862,447],{},": Both — Bounty split between customer and promoter",[521,865,867],{"id":866},"long-payment-preconditions","LONG Payment Preconditions",[326,869,870,871,874,875,878],{},"For LONG token payments (",[395,872,873],{},"paymentIn = 2","), the system validates that the escrow contract has sufficient LONG token balance before processing the payment. If the escrow balance is insufficient, the request will fail with ",[395,876,877],{},"INSUFFICIENT_BALANCE"," error.",[521,880,882],{"id":881},"bounty-allocations","Bounty Allocations",[326,884,885,886,554,888,890,891,893,894,896],{},"The API requires ",[395,887,721],{},[395,889,732],{}," in ",[395,892,553],{},".\nIn ",[395,895,557],{},", these fields are optional and used when reward config must be changed. These fields define the bounty distribution:",[529,898,899,910],{},[532,900,901,903,904,906,907,909],{},[395,902,721],{},": Required object with ",[395,905,668],{}," (USDC, human-readable) and ",[395,908,671],{}," (0-100, human-readable)",[532,911,912,903,914,906,916,909],{},[395,913,732],{},[395,915,668],{},[395,917,671],{},[326,919,920,923,924,926],{},[330,921,922],{},"Validation:"," All bounty allocations are validated at the service layer using the ",[395,925,644],{}," method, which checks:",[529,928,929,968],{},[532,930,931,932,934,935],{},"Values must match the ",[395,933,640],{},":\n",[529,936,937,947,956,962],{},[532,938,939,940,942,943,672,945],{},"If ",[395,941,831],{},", then ",[395,944,721],{},[395,946,724],{},[532,948,939,949,942,952,672,954],{},[395,950,951],{},"bountyAllocationType = ToCustomer",[395,953,732],{},[395,955,724],{},[532,957,939,958,961],{},[395,959,960],{},"bountyAllocationType = NoType",", both must be zero",[532,963,939,964,967],{},[395,965,966],{},"bountyAllocationType = Both",", both can have non-zero values",[532,969,931,970,972],{},[395,971,637],{}," constraints (see Bounty Configuration Validation above)",[514,974],{},[322,976,978],{"id":977},"mcp-integration","MCP Integration",[326,980,981,982,984],{},"MCP tools for CheckIn live in the dedicated guide. See ",[360,983,362],{"href":222}," for configuration, inputs, and outputs.",[514,986],{},[322,988,990],{"id":989},"usage-examples","Usage Examples",[521,992,994],{"id":993},"venue-deposit","Venue Deposit",[388,996,1000],{"className":997,"code":998,"language":999,"meta":397,"style":397},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u002F*\n * venueDeposit(ownerAddress, venueAddress, rules, amount, referralAddress, toCustomerBounty, toPromoterBounty)\n * Deposits funds into a venue contract and configures payment rules.\n *\u002F\nconst depositResult = await mcp.callTool(\"\u002Fcrypto\u002Fevm\u002Fvenue-deposit\", {\n  method: \"POST\",\n  body: {\n    chainId: 56,\n    ownerAddress: \"0xOwnerEOA\", \u002F\u002F Required: EOA used for ownership check\n    venueAddress: \"0xVenueAddress\",\n    amount: 10, \u002F\u002F Deposit amount in USDC (human-readable format)\n    rules: {\n      paymentType: 3, \u002F\u002F Both (USDC + LONG)\n      bountyType: 3, \u002F\u002F Both (Visit + Spend)\n      bountyAllocationType: 3, \u002F\u002F Both (ToCustomer + ToPromoter)\n      longPaymentType: 1, \u002F\u002F AutoStake\n    },\n    referralAddress: \"0xPromoterAddress\", \u002F\u002F Optional: promoter address for affiliate tracking\n    toCustomerBounty: {\n      \u002F\u002F Required: customer bounty allocation\n      visitBountyAmount: 5, \u002F\u002F USDC (human-readable)\n      spendBountyPercentage: 2, \u002F\u002F 0-100 (human-readable)\n    },\n    toPromoterBounty: {\n      \u002F\u002F Required: promoter bounty allocation\n      visitBountyAmount: 3, \u002F\u002F USDC (human-readable)\n      spendBountyPercentage: 1, \u002F\u002F 0-100 (human-readable)\n    },\n    dailyLimits: 100, \u002F\u002F Optional: daily limits for venue\n    hubId: \"68da7c5fadf298b35a9b411b\", \u002F\u002F Optional: hub ID for venue (MongoDB ObjectId)\n    activityId: \"68da7c5fadf298b35a9b411b\", \u002F\u002F Optional: activity ID for venue (MongoDB ObjectId)\n    gasless: true, \u002F\u002F Optional: enable sponsorship eligibility checks for this venue\n  },\n});\n\n\u002F\u002F Response structure:\n\u002F\u002F {\n\u002F\u002F   address_token: string,      \u002F\u002F Token address for approval (USDC)\n\u002F\u002F   address: string,            \u002F\u002F Check-in contract address\n\u002F\u002F   venueAddress: string,\n\u002F\u002F   params: [venueInfo, protection],\n\u002F\u002F   method: { ... },            \u002F\u002F ABI-encoded method details\n\u002F\u002F   totalAmountToApprove: string \u002F\u002F Total amount needed for token approval (deposit amount + all fees)\n\u002F\u002F }\n\u002F\u002F venueInfo contains: rules, venue, amount, affiliateReferralCode, uri\n\u002F\u002F protection contains: nonce, deadline, signature\n\u002F\u002F venue-deposit is crypto-only and always returns signable transaction params.\n\n\u002F\u002F Sign and broadcast approve + deposit transaction\n","ts",[395,1001,1002,1011,1017,1023,1029,1075,1096,1106,1120,1140,1157,1173,1183,1199,1214,1229,1245,1251,1271,1281,1287,1303,1319,1324,1334,1340,1353,1366,1371,1387,1407,1426,1443,1449,1461,1468,1474,1480,1489,1498,1504,1510,1519,1528,1534,1540,1546,1552,1557],{"__ignoreMap":397},[1003,1004,1007],"span",{"class":1005,"line":1006},"line",1,[1003,1008,1010],{"class":1009},"sHwdD","\u002F*\n",[1003,1012,1014],{"class":1005,"line":1013},2,[1003,1015,1016],{"class":1009}," * venueDeposit(ownerAddress, venueAddress, rules, amount, referralAddress, toCustomerBounty, toPromoterBounty)\n",[1003,1018,1020],{"class":1005,"line":1019},3,[1003,1021,1022],{"class":1009}," * Deposits funds into a venue contract and configures payment rules.\n",[1003,1024,1026],{"class":1005,"line":1025},4,[1003,1027,1028],{"class":1009}," *\u002F\n",[1003,1030,1032,1036,1040,1044,1048,1051,1053,1057,1060,1063,1067,1069,1072],{"class":1005,"line":1031},5,[1003,1033,1035],{"class":1034},"spNyl","const",[1003,1037,1039],{"class":1038},"sTEyZ"," depositResult ",[1003,1041,1043],{"class":1042},"sMK4o","=",[1003,1045,1047],{"class":1046},"s7zQu"," await",[1003,1049,1050],{"class":1038}," mcp",[1003,1052,363],{"class":1042},[1003,1054,1056],{"class":1055},"s2Zo4","callTool",[1003,1058,1059],{"class":1038},"(",[1003,1061,1062],{"class":1042},"\"",[1003,1064,1066],{"class":1065},"sfazB","\u002Fcrypto\u002Fevm\u002Fvenue-deposit",[1003,1068,1062],{"class":1042},[1003,1070,1071],{"class":1042},",",[1003,1073,1074],{"class":1042}," {\n",[1003,1076,1078,1082,1085,1088,1091,1093],{"class":1005,"line":1077},6,[1003,1079,1081],{"class":1080},"swJcz","  method",[1003,1083,1084],{"class":1042},":",[1003,1086,1087],{"class":1042}," \"",[1003,1089,1090],{"class":1065},"POST",[1003,1092,1062],{"class":1042},[1003,1094,1095],{"class":1042},",\n",[1003,1097,1099,1102,1104],{"class":1005,"line":1098},7,[1003,1100,1101],{"class":1080},"  body",[1003,1103,1084],{"class":1042},[1003,1105,1074],{"class":1042},[1003,1107,1109,1112,1114,1118],{"class":1005,"line":1108},8,[1003,1110,1111],{"class":1080},"    chainId",[1003,1113,1084],{"class":1042},[1003,1115,1117],{"class":1116},"sbssI"," 56",[1003,1119,1095],{"class":1042},[1003,1121,1123,1126,1128,1130,1133,1135,1137],{"class":1005,"line":1122},9,[1003,1124,1125],{"class":1080},"    ownerAddress",[1003,1127,1084],{"class":1042},[1003,1129,1087],{"class":1042},[1003,1131,1132],{"class":1065},"0xOwnerEOA",[1003,1134,1062],{"class":1042},[1003,1136,1071],{"class":1042},[1003,1138,1139],{"class":1009}," \u002F\u002F Required: EOA used for ownership check\n",[1003,1141,1143,1146,1148,1150,1153,1155],{"class":1005,"line":1142},10,[1003,1144,1145],{"class":1080},"    venueAddress",[1003,1147,1084],{"class":1042},[1003,1149,1087],{"class":1042},[1003,1151,1152],{"class":1065},"0xVenueAddress",[1003,1154,1062],{"class":1042},[1003,1156,1095],{"class":1042},[1003,1158,1160,1163,1165,1168,1170],{"class":1005,"line":1159},11,[1003,1161,1162],{"class":1080},"    amount",[1003,1164,1084],{"class":1042},[1003,1166,1167],{"class":1116}," 10",[1003,1169,1071],{"class":1042},[1003,1171,1172],{"class":1009}," \u002F\u002F Deposit amount in USDC (human-readable format)\n",[1003,1174,1176,1179,1181],{"class":1005,"line":1175},12,[1003,1177,1178],{"class":1080},"    rules",[1003,1180,1084],{"class":1042},[1003,1182,1074],{"class":1042},[1003,1184,1186,1189,1191,1194,1196],{"class":1005,"line":1185},13,[1003,1187,1188],{"class":1080},"      paymentType",[1003,1190,1084],{"class":1042},[1003,1192,1193],{"class":1116}," 3",[1003,1195,1071],{"class":1042},[1003,1197,1198],{"class":1009}," \u002F\u002F Both (USDC + LONG)\n",[1003,1200,1202,1205,1207,1209,1211],{"class":1005,"line":1201},14,[1003,1203,1204],{"class":1080},"      bountyType",[1003,1206,1084],{"class":1042},[1003,1208,1193],{"class":1116},[1003,1210,1071],{"class":1042},[1003,1212,1213],{"class":1009}," \u002F\u002F Both (Visit + Spend)\n",[1003,1215,1217,1220,1222,1224,1226],{"class":1005,"line":1216},15,[1003,1218,1219],{"class":1080},"      bountyAllocationType",[1003,1221,1084],{"class":1042},[1003,1223,1193],{"class":1116},[1003,1225,1071],{"class":1042},[1003,1227,1228],{"class":1009}," \u002F\u002F Both (ToCustomer + ToPromoter)\n",[1003,1230,1232,1235,1237,1240,1242],{"class":1005,"line":1231},16,[1003,1233,1234],{"class":1080},"      longPaymentType",[1003,1236,1084],{"class":1042},[1003,1238,1239],{"class":1116}," 1",[1003,1241,1071],{"class":1042},[1003,1243,1244],{"class":1009}," \u002F\u002F AutoStake\n",[1003,1246,1248],{"class":1005,"line":1247},17,[1003,1249,1250],{"class":1042},"    },\n",[1003,1252,1254,1257,1259,1261,1264,1266,1268],{"class":1005,"line":1253},18,[1003,1255,1256],{"class":1080},"    referralAddress",[1003,1258,1084],{"class":1042},[1003,1260,1087],{"class":1042},[1003,1262,1263],{"class":1065},"0xPromoterAddress",[1003,1265,1062],{"class":1042},[1003,1267,1071],{"class":1042},[1003,1269,1270],{"class":1009}," \u002F\u002F Optional: promoter address for affiliate tracking\n",[1003,1272,1274,1277,1279],{"class":1005,"line":1273},19,[1003,1275,1276],{"class":1080},"    toCustomerBounty",[1003,1278,1084],{"class":1042},[1003,1280,1074],{"class":1042},[1003,1282,1284],{"class":1005,"line":1283},20,[1003,1285,1286],{"class":1009},"      \u002F\u002F Required: customer bounty allocation\n",[1003,1288,1290,1293,1295,1298,1300],{"class":1005,"line":1289},21,[1003,1291,1292],{"class":1080},"      visitBountyAmount",[1003,1294,1084],{"class":1042},[1003,1296,1297],{"class":1116}," 5",[1003,1299,1071],{"class":1042},[1003,1301,1302],{"class":1009}," \u002F\u002F USDC (human-readable)\n",[1003,1304,1306,1309,1311,1314,1316],{"class":1005,"line":1305},22,[1003,1307,1308],{"class":1080},"      spendBountyPercentage",[1003,1310,1084],{"class":1042},[1003,1312,1313],{"class":1116}," 2",[1003,1315,1071],{"class":1042},[1003,1317,1318],{"class":1009}," \u002F\u002F 0-100 (human-readable)\n",[1003,1320,1322],{"class":1005,"line":1321},23,[1003,1323,1250],{"class":1042},[1003,1325,1327,1330,1332],{"class":1005,"line":1326},24,[1003,1328,1329],{"class":1080},"    toPromoterBounty",[1003,1331,1084],{"class":1042},[1003,1333,1074],{"class":1042},[1003,1335,1337],{"class":1005,"line":1336},25,[1003,1338,1339],{"class":1009},"      \u002F\u002F Required: promoter bounty allocation\n",[1003,1341,1343,1345,1347,1349,1351],{"class":1005,"line":1342},26,[1003,1344,1292],{"class":1080},[1003,1346,1084],{"class":1042},[1003,1348,1193],{"class":1116},[1003,1350,1071],{"class":1042},[1003,1352,1302],{"class":1009},[1003,1354,1356,1358,1360,1362,1364],{"class":1005,"line":1355},27,[1003,1357,1308],{"class":1080},[1003,1359,1084],{"class":1042},[1003,1361,1239],{"class":1116},[1003,1363,1071],{"class":1042},[1003,1365,1318],{"class":1009},[1003,1367,1369],{"class":1005,"line":1368},28,[1003,1370,1250],{"class":1042},[1003,1372,1374,1377,1379,1382,1384],{"class":1005,"line":1373},29,[1003,1375,1376],{"class":1080},"    dailyLimits",[1003,1378,1084],{"class":1042},[1003,1380,1381],{"class":1116}," 100",[1003,1383,1071],{"class":1042},[1003,1385,1386],{"class":1009}," \u002F\u002F Optional: daily limits for venue\n",[1003,1388,1390,1393,1395,1397,1400,1402,1404],{"class":1005,"line":1389},30,[1003,1391,1392],{"class":1080},"    hubId",[1003,1394,1084],{"class":1042},[1003,1396,1087],{"class":1042},[1003,1398,1399],{"class":1065},"68da7c5fadf298b35a9b411b",[1003,1401,1062],{"class":1042},[1003,1403,1071],{"class":1042},[1003,1405,1406],{"class":1009}," \u002F\u002F Optional: hub ID for venue (MongoDB ObjectId)\n",[1003,1408,1410,1413,1415,1417,1419,1421,1423],{"class":1005,"line":1409},31,[1003,1411,1412],{"class":1080},"    activityId",[1003,1414,1084],{"class":1042},[1003,1416,1087],{"class":1042},[1003,1418,1399],{"class":1065},[1003,1420,1062],{"class":1042},[1003,1422,1071],{"class":1042},[1003,1424,1425],{"class":1009}," \u002F\u002F Optional: activity ID for venue (MongoDB ObjectId)\n",[1003,1427,1429,1432,1434,1438,1440],{"class":1005,"line":1428},32,[1003,1430,1431],{"class":1080},"    gasless",[1003,1433,1084],{"class":1042},[1003,1435,1437],{"class":1436},"sfNiH"," true",[1003,1439,1071],{"class":1042},[1003,1441,1442],{"class":1009}," \u002F\u002F Optional: enable sponsorship eligibility checks for this venue\n",[1003,1444,1446],{"class":1005,"line":1445},33,[1003,1447,1448],{"class":1042},"  },\n",[1003,1450,1452,1455,1458],{"class":1005,"line":1451},34,[1003,1453,1454],{"class":1042},"}",[1003,1456,1457],{"class":1038},")",[1003,1459,1460],{"class":1042},";\n",[1003,1462,1464],{"class":1005,"line":1463},35,[1003,1465,1467],{"emptyLinePlaceholder":1466},true,"\n",[1003,1469,1471],{"class":1005,"line":1470},36,[1003,1472,1473],{"class":1009},"\u002F\u002F Response structure:\n",[1003,1475,1477],{"class":1005,"line":1476},37,[1003,1478,1479],{"class":1009},"\u002F\u002F {\n",[1003,1481,1483,1486],{"class":1005,"line":1482},38,[1003,1484,1485],{"class":1009},"\u002F\u002F   address_token: string,",[1003,1487,1488],{"class":1009},"      \u002F\u002F Token address for approval (USDC)\n",[1003,1490,1492,1495],{"class":1005,"line":1491},39,[1003,1493,1494],{"class":1009},"\u002F\u002F   address: string,",[1003,1496,1497],{"class":1009},"            \u002F\u002F Check-in contract address\n",[1003,1499,1501],{"class":1005,"line":1500},40,[1003,1502,1503],{"class":1009},"\u002F\u002F   venueAddress: string,\n",[1003,1505,1507],{"class":1005,"line":1506},41,[1003,1508,1509],{"class":1009},"\u002F\u002F   params: [venueInfo, protection],\n",[1003,1511,1513,1516],{"class":1005,"line":1512},42,[1003,1514,1515],{"class":1009},"\u002F\u002F   method: { ... },",[1003,1517,1518],{"class":1009},"            \u002F\u002F ABI-encoded method details\n",[1003,1520,1522,1525],{"class":1005,"line":1521},43,[1003,1523,1524],{"class":1009},"\u002F\u002F   totalAmountToApprove: string",[1003,1526,1527],{"class":1009}," \u002F\u002F Total amount needed for token approval (deposit amount + all fees)\n",[1003,1529,1531],{"class":1005,"line":1530},44,[1003,1532,1533],{"class":1009},"\u002F\u002F }\n",[1003,1535,1537],{"class":1005,"line":1536},45,[1003,1538,1539],{"class":1009},"\u002F\u002F venueInfo contains: rules, venue, amount, affiliateReferralCode, uri\n",[1003,1541,1543],{"class":1005,"line":1542},46,[1003,1544,1545],{"class":1009},"\u002F\u002F protection contains: nonce, deadline, signature\n",[1003,1547,1549],{"class":1005,"line":1548},47,[1003,1550,1551],{"class":1009},"\u002F\u002F venue-deposit is crypto-only and always returns signable transaction params.\n",[1003,1553,1555],{"class":1005,"line":1554},48,[1003,1556,1467],{"emptyLinePlaceholder":1466},[1003,1558,1560],{"class":1005,"line":1559},49,[1003,1561,1562],{"class":1009},"\u002F\u002F Sign and broadcast approve + deposit transaction\n",[521,1564,1566],{"id":1565},"pay-to-venue","Pay to Venue",[388,1568,1570],{"className":997,"code":1569,"language":999,"meta":397,"style":397},"\u002F*\n * payToVenue(customer, venueToPayFor, promoter, amount, paymentIn)\n * Processes customer payments to a venue with automatic bounty distribution.\n * Note: promoter is optional, but required if bountyAllocationType is ToPromoter or Both.\n *\u002F\nlet promoter = testAddresses.promoter;\n\n\u002F\u002F Check if the promoter exists on-chain\nconst isExistsPromoter = await mcp.callTool(\"\u002Fcrypto\u002Fevm\u002Ffind-promoter\", {\n  method: \"POST\",\n  body: {\n    chainId: 56,\n    promoter,\n  },\n});\n\n\u002F\u002F If promoter does not exist, deploy a new one and use the user's address\nif (isExistsPromoter === \"failed\") {\n  \u002F\u002F You need to deploy a promoter first. See the guide here: Deploy Promoter\n  promoter = account.address.value!;\n}\n\n\u002F\u002F Fetch venue data to determine which tokens are available for payment\nconst venueData = await mcp.callTool(\"\u002Fcrypto\u002Fevm\u002Fvenue\", {\n  method: \"POST\",\n  body: {\n    address: \"0xVenueAddress\",\n    chainId: 56,\n  },\n});\n\n\u002F\u002F Prepare payment request body\n\u002F\u002F Note: Requires authentication - customer address must be owned by authenticated user\nconst body = {\n  chainId: 56,\n  customer: \"0xCustomerAddress\", \u002F\u002F Must be owned by authenticated user\n  venueToPayFor: \"0xVenueAddress\",\n  promoter: \"0xPromoterAddress\", \u002F\u002F Optional: required if bountyAllocationType is ToPromoter or Both\n  amount: 5, \u002F\u002F Payment amount in human-readable format\n  paymentIn: 1, \u002F\u002F 1 = USDC, 2 = LONG (enum PaymentTypes)\n};\n\n\u002F\u002F For LONG payments (paymentIn = 2), the system automatically validates\n\u002F\u002F that the escrow contract has sufficient LONG token balance.\n\u002F\u002F If balance is insufficient, the request will fail with INSUFFICIENT_BALANCE error.\n\n\u002F\u002F Get transaction parameters from MCP\nconst { params, address_token, address, method } = await mcp.callTool(\n  \"\u002Fcrypto\u002Fevm\u002Fpay-to-venue\",\n  {\n    method: \"POST\",\n    body,\n  },\n);\n\n\u002F\u002F params structure: [customerInfo, protection]\n\u002F\u002F customerInfo contains:\n\u002F\u002F   - paymentInUSDtoken: boolean (true = USDC, false = LONG)\n\u002F\u002F   - toCustomer: { visitBountyAmount: string, spendBountyPercentage: string }\n\u002F\u002F   - toPromoter: { visitBountyAmount: string, spendBountyPercentage: string }\n\u002F\u002F   - customer: address\n\u002F\u002F   - venueToPayFor: address\n\u002F\u002F   - promoterReferralCode: bytes32\n\u002F\u002F   - amount: string (in wei)\n\u002F\u002F protection contains: nonce, deadline, signature\n\n\u002F\u002F Convert amount to the correct token units (if needed for approval)\nconst parseAmount: bigint =\n  body.paymentIn === PaymentTypes.LONG\n    ? parseUnits(String(body.amount), 18) \u002F\u002F LONG has 18 decimals\n    : parseUnits(String(body.amount), 6); \u002F\u002F USDC has 6 decimals\n\n\u002F\u002F Approve the token for the payment contract (if using ERC20)\n\u002F\u002F Send the payment transaction and wait for confirmation\n",[395,1571,1572,1576,1581,1586,1591,1595,1615,1619,1624,1654,1668,1676,1686,1693,1697,1705,1709,1714,1738,1743,1767,1772,1776,1781,1811,1825,1833,1848,1858,1862,1870,1874,1879,1884,1895,1906,1925,1940,1957,1971,1985,1990,1994,1999,2004,2009,2013,2018,2058,2070,2076,2092,2100,2105,2112,2117,2123,2129,2135,2141,2147,2153,2159,2165,2171,2176,2181,2187,2204,2224,2256,2287,2292,2298],{"__ignoreMap":397},[1003,1573,1574],{"class":1005,"line":1006},[1003,1575,1010],{"class":1009},[1003,1577,1578],{"class":1005,"line":1013},[1003,1579,1580],{"class":1009}," * payToVenue(customer, venueToPayFor, promoter, amount, paymentIn)\n",[1003,1582,1583],{"class":1005,"line":1019},[1003,1584,1585],{"class":1009}," * Processes customer payments to a venue with automatic bounty distribution.\n",[1003,1587,1588],{"class":1005,"line":1025},[1003,1589,1590],{"class":1009}," * Note: promoter is optional, but required if bountyAllocationType is ToPromoter or Both.\n",[1003,1592,1593],{"class":1005,"line":1031},[1003,1594,1028],{"class":1009},[1003,1596,1597,1600,1603,1605,1608,1610,1613],{"class":1005,"line":1077},[1003,1598,1599],{"class":1034},"let",[1003,1601,1602],{"class":1038}," promoter ",[1003,1604,1043],{"class":1042},[1003,1606,1607],{"class":1038}," testAddresses",[1003,1609,363],{"class":1042},[1003,1611,1612],{"class":1038},"promoter",[1003,1614,1460],{"class":1042},[1003,1616,1617],{"class":1005,"line":1098},[1003,1618,1467],{"emptyLinePlaceholder":1466},[1003,1620,1621],{"class":1005,"line":1108},[1003,1622,1623],{"class":1009},"\u002F\u002F Check if the promoter exists on-chain\n",[1003,1625,1626,1628,1631,1633,1635,1637,1639,1641,1643,1645,1648,1650,1652],{"class":1005,"line":1122},[1003,1627,1035],{"class":1034},[1003,1629,1630],{"class":1038}," isExistsPromoter ",[1003,1632,1043],{"class":1042},[1003,1634,1047],{"class":1046},[1003,1636,1050],{"class":1038},[1003,1638,363],{"class":1042},[1003,1640,1056],{"class":1055},[1003,1642,1059],{"class":1038},[1003,1644,1062],{"class":1042},[1003,1646,1647],{"class":1065},"\u002Fcrypto\u002Fevm\u002Ffind-promoter",[1003,1649,1062],{"class":1042},[1003,1651,1071],{"class":1042},[1003,1653,1074],{"class":1042},[1003,1655,1656,1658,1660,1662,1664,1666],{"class":1005,"line":1142},[1003,1657,1081],{"class":1080},[1003,1659,1084],{"class":1042},[1003,1661,1087],{"class":1042},[1003,1663,1090],{"class":1065},[1003,1665,1062],{"class":1042},[1003,1667,1095],{"class":1042},[1003,1669,1670,1672,1674],{"class":1005,"line":1159},[1003,1671,1101],{"class":1080},[1003,1673,1084],{"class":1042},[1003,1675,1074],{"class":1042},[1003,1677,1678,1680,1682,1684],{"class":1005,"line":1175},[1003,1679,1111],{"class":1080},[1003,1681,1084],{"class":1042},[1003,1683,1117],{"class":1116},[1003,1685,1095],{"class":1042},[1003,1687,1688,1691],{"class":1005,"line":1185},[1003,1689,1690],{"class":1038},"    promoter",[1003,1692,1095],{"class":1042},[1003,1694,1695],{"class":1005,"line":1201},[1003,1696,1448],{"class":1042},[1003,1698,1699,1701,1703],{"class":1005,"line":1216},[1003,1700,1454],{"class":1042},[1003,1702,1457],{"class":1038},[1003,1704,1460],{"class":1042},[1003,1706,1707],{"class":1005,"line":1231},[1003,1708,1467],{"emptyLinePlaceholder":1466},[1003,1710,1711],{"class":1005,"line":1247},[1003,1712,1713],{"class":1009},"\u002F\u002F If promoter does not exist, deploy a new one and use the user's address\n",[1003,1715,1716,1719,1722,1725,1727,1730,1732,1735],{"class":1005,"line":1253},[1003,1717,1718],{"class":1046},"if",[1003,1720,1721],{"class":1038}," (isExistsPromoter ",[1003,1723,1724],{"class":1042},"===",[1003,1726,1087],{"class":1042},[1003,1728,1729],{"class":1065},"failed",[1003,1731,1062],{"class":1042},[1003,1733,1734],{"class":1038},") ",[1003,1736,1737],{"class":1042},"{\n",[1003,1739,1740],{"class":1005,"line":1273},[1003,1741,1742],{"class":1009},"  \u002F\u002F You need to deploy a promoter first. See the guide here: Deploy Promoter\n",[1003,1744,1745,1748,1751,1754,1756,1759,1761,1764],{"class":1005,"line":1283},[1003,1746,1747],{"class":1038},"  promoter",[1003,1749,1750],{"class":1042}," =",[1003,1752,1753],{"class":1038}," account",[1003,1755,363],{"class":1042},[1003,1757,1758],{"class":1038},"address",[1003,1760,363],{"class":1042},[1003,1762,1763],{"class":1038},"value",[1003,1765,1766],{"class":1042},"!;\n",[1003,1768,1769],{"class":1005,"line":1289},[1003,1770,1771],{"class":1042},"}\n",[1003,1773,1774],{"class":1005,"line":1305},[1003,1775,1467],{"emptyLinePlaceholder":1466},[1003,1777,1778],{"class":1005,"line":1321},[1003,1779,1780],{"class":1009},"\u002F\u002F Fetch venue data to determine which tokens are available for payment\n",[1003,1782,1783,1785,1788,1790,1792,1794,1796,1798,1800,1802,1805,1807,1809],{"class":1005,"line":1326},[1003,1784,1035],{"class":1034},[1003,1786,1787],{"class":1038}," venueData ",[1003,1789,1043],{"class":1042},[1003,1791,1047],{"class":1046},[1003,1793,1050],{"class":1038},[1003,1795,363],{"class":1042},[1003,1797,1056],{"class":1055},[1003,1799,1059],{"class":1038},[1003,1801,1062],{"class":1042},[1003,1803,1804],{"class":1065},"\u002Fcrypto\u002Fevm\u002Fvenue",[1003,1806,1062],{"class":1042},[1003,1808,1071],{"class":1042},[1003,1810,1074],{"class":1042},[1003,1812,1813,1815,1817,1819,1821,1823],{"class":1005,"line":1336},[1003,1814,1081],{"class":1080},[1003,1816,1084],{"class":1042},[1003,1818,1087],{"class":1042},[1003,1820,1090],{"class":1065},[1003,1822,1062],{"class":1042},[1003,1824,1095],{"class":1042},[1003,1826,1827,1829,1831],{"class":1005,"line":1342},[1003,1828,1101],{"class":1080},[1003,1830,1084],{"class":1042},[1003,1832,1074],{"class":1042},[1003,1834,1835,1838,1840,1842,1844,1846],{"class":1005,"line":1355},[1003,1836,1837],{"class":1080},"    address",[1003,1839,1084],{"class":1042},[1003,1841,1087],{"class":1042},[1003,1843,1152],{"class":1065},[1003,1845,1062],{"class":1042},[1003,1847,1095],{"class":1042},[1003,1849,1850,1852,1854,1856],{"class":1005,"line":1368},[1003,1851,1111],{"class":1080},[1003,1853,1084],{"class":1042},[1003,1855,1117],{"class":1116},[1003,1857,1095],{"class":1042},[1003,1859,1860],{"class":1005,"line":1373},[1003,1861,1448],{"class":1042},[1003,1863,1864,1866,1868],{"class":1005,"line":1389},[1003,1865,1454],{"class":1042},[1003,1867,1457],{"class":1038},[1003,1869,1460],{"class":1042},[1003,1871,1872],{"class":1005,"line":1409},[1003,1873,1467],{"emptyLinePlaceholder":1466},[1003,1875,1876],{"class":1005,"line":1428},[1003,1877,1878],{"class":1009},"\u002F\u002F Prepare payment request body\n",[1003,1880,1881],{"class":1005,"line":1445},[1003,1882,1883],{"class":1009},"\u002F\u002F Note: Requires authentication - customer address must be owned by authenticated user\n",[1003,1885,1886,1888,1891,1893],{"class":1005,"line":1451},[1003,1887,1035],{"class":1034},[1003,1889,1890],{"class":1038}," body ",[1003,1892,1043],{"class":1042},[1003,1894,1074],{"class":1042},[1003,1896,1897,1900,1902,1904],{"class":1005,"line":1463},[1003,1898,1899],{"class":1080},"  chainId",[1003,1901,1084],{"class":1042},[1003,1903,1117],{"class":1116},[1003,1905,1095],{"class":1042},[1003,1907,1908,1911,1913,1915,1918,1920,1922],{"class":1005,"line":1470},[1003,1909,1910],{"class":1080},"  customer",[1003,1912,1084],{"class":1042},[1003,1914,1087],{"class":1042},[1003,1916,1917],{"class":1065},"0xCustomerAddress",[1003,1919,1062],{"class":1042},[1003,1921,1071],{"class":1042},[1003,1923,1924],{"class":1009}," \u002F\u002F Must be owned by authenticated user\n",[1003,1926,1927,1930,1932,1934,1936,1938],{"class":1005,"line":1476},[1003,1928,1929],{"class":1080},"  venueToPayFor",[1003,1931,1084],{"class":1042},[1003,1933,1087],{"class":1042},[1003,1935,1152],{"class":1065},[1003,1937,1062],{"class":1042},[1003,1939,1095],{"class":1042},[1003,1941,1942,1944,1946,1948,1950,1952,1954],{"class":1005,"line":1482},[1003,1943,1747],{"class":1080},[1003,1945,1084],{"class":1042},[1003,1947,1087],{"class":1042},[1003,1949,1263],{"class":1065},[1003,1951,1062],{"class":1042},[1003,1953,1071],{"class":1042},[1003,1955,1956],{"class":1009}," \u002F\u002F Optional: required if bountyAllocationType is ToPromoter or Both\n",[1003,1958,1959,1962,1964,1966,1968],{"class":1005,"line":1491},[1003,1960,1961],{"class":1080},"  amount",[1003,1963,1084],{"class":1042},[1003,1965,1297],{"class":1116},[1003,1967,1071],{"class":1042},[1003,1969,1970],{"class":1009}," \u002F\u002F Payment amount in human-readable format\n",[1003,1972,1973,1976,1978,1980,1982],{"class":1005,"line":1500},[1003,1974,1975],{"class":1080},"  paymentIn",[1003,1977,1084],{"class":1042},[1003,1979,1239],{"class":1116},[1003,1981,1071],{"class":1042},[1003,1983,1984],{"class":1009}," \u002F\u002F 1 = USDC, 2 = LONG (enum PaymentTypes)\n",[1003,1986,1987],{"class":1005,"line":1506},[1003,1988,1989],{"class":1042},"};\n",[1003,1991,1992],{"class":1005,"line":1512},[1003,1993,1467],{"emptyLinePlaceholder":1466},[1003,1995,1996],{"class":1005,"line":1521},[1003,1997,1998],{"class":1009},"\u002F\u002F For LONG payments (paymentIn = 2), the system automatically validates\n",[1003,2000,2001],{"class":1005,"line":1530},[1003,2002,2003],{"class":1009},"\u002F\u002F that the escrow contract has sufficient LONG token balance.\n",[1003,2005,2006],{"class":1005,"line":1536},[1003,2007,2008],{"class":1009},"\u002F\u002F If balance is insufficient, the request will fail with INSUFFICIENT_BALANCE error.\n",[1003,2010,2011],{"class":1005,"line":1542},[1003,2012,1467],{"emptyLinePlaceholder":1466},[1003,2014,2015],{"class":1005,"line":1548},[1003,2016,2017],{"class":1009},"\u002F\u002F Get transaction parameters from MCP\n",[1003,2019,2020,2022,2025,2028,2030,2033,2035,2038,2040,2043,2045,2047,2049,2051,2053,2055],{"class":1005,"line":1554},[1003,2021,1035],{"class":1034},[1003,2023,2024],{"class":1042}," {",[1003,2026,2027],{"class":1038}," params",[1003,2029,1071],{"class":1042},[1003,2031,2032],{"class":1038}," address_token",[1003,2034,1071],{"class":1042},[1003,2036,2037],{"class":1038}," address",[1003,2039,1071],{"class":1042},[1003,2041,2042],{"class":1038}," method ",[1003,2044,1454],{"class":1042},[1003,2046,1750],{"class":1042},[1003,2048,1047],{"class":1046},[1003,2050,1050],{"class":1038},[1003,2052,363],{"class":1042},[1003,2054,1056],{"class":1055},[1003,2056,2057],{"class":1038},"(\n",[1003,2059,2060,2063,2066,2068],{"class":1005,"line":1559},[1003,2061,2062],{"class":1042},"  \"",[1003,2064,2065],{"class":1065},"\u002Fcrypto\u002Fevm\u002Fpay-to-venue",[1003,2067,1062],{"class":1042},[1003,2069,1095],{"class":1042},[1003,2071,2073],{"class":1005,"line":2072},50,[1003,2074,2075],{"class":1042},"  {\n",[1003,2077,2079,2082,2084,2086,2088,2090],{"class":1005,"line":2078},51,[1003,2080,2081],{"class":1080},"    method",[1003,2083,1084],{"class":1042},[1003,2085,1087],{"class":1042},[1003,2087,1090],{"class":1065},[1003,2089,1062],{"class":1042},[1003,2091,1095],{"class":1042},[1003,2093,2095,2098],{"class":1005,"line":2094},52,[1003,2096,2097],{"class":1038},"    body",[1003,2099,1095],{"class":1042},[1003,2101,2103],{"class":1005,"line":2102},53,[1003,2104,1448],{"class":1042},[1003,2106,2108,2110],{"class":1005,"line":2107},54,[1003,2109,1457],{"class":1038},[1003,2111,1460],{"class":1042},[1003,2113,2115],{"class":1005,"line":2114},55,[1003,2116,1467],{"emptyLinePlaceholder":1466},[1003,2118,2120],{"class":1005,"line":2119},56,[1003,2121,2122],{"class":1009},"\u002F\u002F params structure: [customerInfo, protection]\n",[1003,2124,2126],{"class":1005,"line":2125},57,[1003,2127,2128],{"class":1009},"\u002F\u002F customerInfo contains:\n",[1003,2130,2132],{"class":1005,"line":2131},58,[1003,2133,2134],{"class":1009},"\u002F\u002F   - paymentInUSDtoken: boolean (true = USDC, false = LONG)\n",[1003,2136,2138],{"class":1005,"line":2137},59,[1003,2139,2140],{"class":1009},"\u002F\u002F   - toCustomer: { visitBountyAmount: string, spendBountyPercentage: string }\n",[1003,2142,2144],{"class":1005,"line":2143},60,[1003,2145,2146],{"class":1009},"\u002F\u002F   - toPromoter: { visitBountyAmount: string, spendBountyPercentage: string }\n",[1003,2148,2150],{"class":1005,"line":2149},61,[1003,2151,2152],{"class":1009},"\u002F\u002F   - customer: address\n",[1003,2154,2156],{"class":1005,"line":2155},62,[1003,2157,2158],{"class":1009},"\u002F\u002F   - venueToPayFor: address\n",[1003,2160,2162],{"class":1005,"line":2161},63,[1003,2163,2164],{"class":1009},"\u002F\u002F   - promoterReferralCode: bytes32\n",[1003,2166,2168],{"class":1005,"line":2167},64,[1003,2169,2170],{"class":1009},"\u002F\u002F   - amount: string (in wei)\n",[1003,2172,2174],{"class":1005,"line":2173},65,[1003,2175,1545],{"class":1009},[1003,2177,2179],{"class":1005,"line":2178},66,[1003,2180,1467],{"emptyLinePlaceholder":1466},[1003,2182,2184],{"class":1005,"line":2183},67,[1003,2185,2186],{"class":1009},"\u002F\u002F Convert amount to the correct token units (if needed for approval)\n",[1003,2188,2190,2192,2195,2197,2201],{"class":1005,"line":2189},68,[1003,2191,1035],{"class":1034},[1003,2193,2194],{"class":1038}," parseAmount",[1003,2196,1084],{"class":1042},[1003,2198,2200],{"class":2199},"sBMFI"," bigint",[1003,2202,2203],{"class":1042}," =\n",[1003,2205,2207,2209,2211,2214,2216,2219,2221],{"class":1005,"line":2206},69,[1003,2208,1101],{"class":1038},[1003,2210,363],{"class":1042},[1003,2212,2213],{"class":1038},"paymentIn ",[1003,2215,1724],{"class":1042},[1003,2217,2218],{"class":1038}," PaymentTypes",[1003,2220,363],{"class":1042},[1003,2222,2223],{"class":1038},"LONG\n",[1003,2225,2227,2230,2233,2235,2238,2241,2243,2246,2248,2251,2253],{"class":1005,"line":2226},70,[1003,2228,2229],{"class":1042},"    ?",[1003,2231,2232],{"class":1055}," parseUnits",[1003,2234,1059],{"class":1038},[1003,2236,2237],{"class":1055},"String",[1003,2239,2240],{"class":1038},"(body",[1003,2242,363],{"class":1042},[1003,2244,2245],{"class":1038},"amount)",[1003,2247,1071],{"class":1042},[1003,2249,2250],{"class":1116}," 18",[1003,2252,1734],{"class":1038},[1003,2254,2255],{"class":1009},"\u002F\u002F LONG has 18 decimals\n",[1003,2257,2259,2262,2264,2266,2268,2270,2272,2274,2276,2279,2281,2284],{"class":1005,"line":2258},71,[1003,2260,2261],{"class":1042},"    :",[1003,2263,2232],{"class":1055},[1003,2265,1059],{"class":1038},[1003,2267,2237],{"class":1055},[1003,2269,2240],{"class":1038},[1003,2271,363],{"class":1042},[1003,2273,2245],{"class":1038},[1003,2275,1071],{"class":1042},[1003,2277,2278],{"class":1116}," 6",[1003,2280,1457],{"class":1038},[1003,2282,2283],{"class":1042},";",[1003,2285,2286],{"class":1009}," \u002F\u002F USDC has 6 decimals\n",[1003,2288,2290],{"class":1005,"line":2289},72,[1003,2291,1467],{"emptyLinePlaceholder":1466},[1003,2293,2295],{"class":1005,"line":2294},73,[1003,2296,2297],{"class":1009},"\u002F\u002F Approve the token for the payment contract (if using ERC20)\n",[1003,2299,2301],{"class":1005,"line":2300},74,[1003,2302,2303],{"class":1009},"\u002F\u002F Send the payment transaction and wait for confirmation\n",[521,2305,2307],{"id":2306},"distribute-promoter-payments","Distribute Promoter Payments",[326,2309,2310,2311,2314],{},"When a venue sponsor covers this operation, the backend can sign and broadcast\n",[395,2312,2313],{},"distributePromoterPayments"," itself and return only the transaction hash. If\nbackend submission is disabled or the sponsor is not eligible\u002Ffunded, the tool\nfalls back to the legacy client-submitted transaction params.",[388,2316,2318],{"className":997,"code":2317,"language":999,"meta":397,"style":397},"\u002F*\n * distributePromoterPayments(promoter, venue, paymentInUSDC)\n * Transfers accumulated promoter rewards from a venue contract.\n *\u002F\nconst distributeResult = await mcp.callTool(\n  \"\u002Fcrypto\u002Fevm\u002Fdistribute-promoter-payments\",\n  {\n    method: \"POST\",\n    body: {\n      chainId: 56,\n      promoter: \"0xPromoterAddress\",\n      venue: \"0xVenueAddress\",\n      paymentInUSDC: false, \u002F\u002F true = USDC, false = LONG\n    },\n  },\n);\n\n\u002F\u002F Backend-submitted response:\n\u002F\u002F {\n\u002F\u002F   address: \"0xCheckInAddress\",\n\u002F\u002F   submitted: true,\n\u002F\u002F   txHash: \"0x...\",\n\u002F\u002F   transactionStatus: \"success\" | \"pending\",\n\u002F\u002F   signatureExpiresAt?: string\n\u002F\u002F }\n\u002F\u002F\n\u002F\u002F In this case, do not ask the user to sign another transaction. Store\u002Fshow the\n\u002F\u002F txHash and refresh the rewards state.\n\n\u002F\u002F Client-submitted fallback response:\n\u002F\u002F {\n\u002F\u002F   address: \"0xCheckInAddress\",\n\u002F\u002F   params: [promoterInfo, protection],\n\u002F\u002F   method: { ... }\n\u002F\u002F }\n\u002F\u002F promoterInfo contains: paymentInUSDtoken, promoterReferralCode, venue, amountInUSD\n\u002F\u002F protection contains: nonce, deadline, signature\n\n\u002F\u002F For fallback responses only, sign and broadcast the distribution transaction.\n",[395,2319,2320,2324,2329,2334,2338,2357,2368,2372,2386,2394,2405,2420,2435,2450,2454,2458,2464,2468,2473,2477,2482,2487,2492,2497,2502,2506,2511,2516,2521,2525,2530,2534,2538,2543,2548,2552,2557,2561,2565],{"__ignoreMap":397},[1003,2321,2322],{"class":1005,"line":1006},[1003,2323,1010],{"class":1009},[1003,2325,2326],{"class":1005,"line":1013},[1003,2327,2328],{"class":1009}," * distributePromoterPayments(promoter, venue, paymentInUSDC)\n",[1003,2330,2331],{"class":1005,"line":1019},[1003,2332,2333],{"class":1009}," * Transfers accumulated promoter rewards from a venue contract.\n",[1003,2335,2336],{"class":1005,"line":1025},[1003,2337,1028],{"class":1009},[1003,2339,2340,2342,2345,2347,2349,2351,2353,2355],{"class":1005,"line":1031},[1003,2341,1035],{"class":1034},[1003,2343,2344],{"class":1038}," distributeResult ",[1003,2346,1043],{"class":1042},[1003,2348,1047],{"class":1046},[1003,2350,1050],{"class":1038},[1003,2352,363],{"class":1042},[1003,2354,1056],{"class":1055},[1003,2356,2057],{"class":1038},[1003,2358,2359,2361,2364,2366],{"class":1005,"line":1077},[1003,2360,2062],{"class":1042},[1003,2362,2363],{"class":1065},"\u002Fcrypto\u002Fevm\u002Fdistribute-promoter-payments",[1003,2365,1062],{"class":1042},[1003,2367,1095],{"class":1042},[1003,2369,2370],{"class":1005,"line":1098},[1003,2371,2075],{"class":1042},[1003,2373,2374,2376,2378,2380,2382,2384],{"class":1005,"line":1108},[1003,2375,2081],{"class":1080},[1003,2377,1084],{"class":1042},[1003,2379,1087],{"class":1042},[1003,2381,1090],{"class":1065},[1003,2383,1062],{"class":1042},[1003,2385,1095],{"class":1042},[1003,2387,2388,2390,2392],{"class":1005,"line":1122},[1003,2389,2097],{"class":1080},[1003,2391,1084],{"class":1042},[1003,2393,1074],{"class":1042},[1003,2395,2396,2399,2401,2403],{"class":1005,"line":1142},[1003,2397,2398],{"class":1080},"      chainId",[1003,2400,1084],{"class":1042},[1003,2402,1117],{"class":1116},[1003,2404,1095],{"class":1042},[1003,2406,2407,2410,2412,2414,2416,2418],{"class":1005,"line":1159},[1003,2408,2409],{"class":1080},"      promoter",[1003,2411,1084],{"class":1042},[1003,2413,1087],{"class":1042},[1003,2415,1263],{"class":1065},[1003,2417,1062],{"class":1042},[1003,2419,1095],{"class":1042},[1003,2421,2422,2425,2427,2429,2431,2433],{"class":1005,"line":1175},[1003,2423,2424],{"class":1080},"      venue",[1003,2426,1084],{"class":1042},[1003,2428,1087],{"class":1042},[1003,2430,1152],{"class":1065},[1003,2432,1062],{"class":1042},[1003,2434,1095],{"class":1042},[1003,2436,2437,2440,2442,2445,2447],{"class":1005,"line":1185},[1003,2438,2439],{"class":1080},"      paymentInUSDC",[1003,2441,1084],{"class":1042},[1003,2443,2444],{"class":1436}," false",[1003,2446,1071],{"class":1042},[1003,2448,2449],{"class":1009}," \u002F\u002F true = USDC, false = LONG\n",[1003,2451,2452],{"class":1005,"line":1201},[1003,2453,1250],{"class":1042},[1003,2455,2456],{"class":1005,"line":1216},[1003,2457,1448],{"class":1042},[1003,2459,2460,2462],{"class":1005,"line":1231},[1003,2461,1457],{"class":1038},[1003,2463,1460],{"class":1042},[1003,2465,2466],{"class":1005,"line":1247},[1003,2467,1467],{"emptyLinePlaceholder":1466},[1003,2469,2470],{"class":1005,"line":1253},[1003,2471,2472],{"class":1009},"\u002F\u002F Backend-submitted response:\n",[1003,2474,2475],{"class":1005,"line":1273},[1003,2476,1479],{"class":1009},[1003,2478,2479],{"class":1005,"line":1283},[1003,2480,2481],{"class":1009},"\u002F\u002F   address: \"0xCheckInAddress\",\n",[1003,2483,2484],{"class":1005,"line":1289},[1003,2485,2486],{"class":1009},"\u002F\u002F   submitted: true,\n",[1003,2488,2489],{"class":1005,"line":1305},[1003,2490,2491],{"class":1009},"\u002F\u002F   txHash: \"0x...\",\n",[1003,2493,2494],{"class":1005,"line":1321},[1003,2495,2496],{"class":1009},"\u002F\u002F   transactionStatus: \"success\" | \"pending\",\n",[1003,2498,2499],{"class":1005,"line":1326},[1003,2500,2501],{"class":1009},"\u002F\u002F   signatureExpiresAt?: string\n",[1003,2503,2504],{"class":1005,"line":1336},[1003,2505,1533],{"class":1009},[1003,2507,2508],{"class":1005,"line":1342},[1003,2509,2510],{"class":1009},"\u002F\u002F\n",[1003,2512,2513],{"class":1005,"line":1355},[1003,2514,2515],{"class":1009},"\u002F\u002F In this case, do not ask the user to sign another transaction. Store\u002Fshow the\n",[1003,2517,2518],{"class":1005,"line":1368},[1003,2519,2520],{"class":1009},"\u002F\u002F txHash and refresh the rewards state.\n",[1003,2522,2523],{"class":1005,"line":1373},[1003,2524,1467],{"emptyLinePlaceholder":1466},[1003,2526,2527],{"class":1005,"line":1389},[1003,2528,2529],{"class":1009},"\u002F\u002F Client-submitted fallback response:\n",[1003,2531,2532],{"class":1005,"line":1409},[1003,2533,1479],{"class":1009},[1003,2535,2536],{"class":1005,"line":1428},[1003,2537,2481],{"class":1009},[1003,2539,2540],{"class":1005,"line":1445},[1003,2541,2542],{"class":1009},"\u002F\u002F   params: [promoterInfo, protection],\n",[1003,2544,2545],{"class":1005,"line":1451},[1003,2546,2547],{"class":1009},"\u002F\u002F   method: { ... }\n",[1003,2549,2550],{"class":1005,"line":1463},[1003,2551,1533],{"class":1009},[1003,2553,2554],{"class":1005,"line":1470},[1003,2555,2556],{"class":1009},"\u002F\u002F promoterInfo contains: paymentInUSDtoken, promoterReferralCode, venue, amountInUSD\n",[1003,2558,2559],{"class":1005,"line":1476},[1003,2560,1545],{"class":1009},[1003,2562,2563],{"class":1005,"line":1482},[1003,2564,1467],{"emptyLinePlaceholder":1466},[1003,2566,2567],{"class":1005,"line":1491},[1003,2568,2569],{"class":1009},"\u002F\u002F For fallback responses only, sign and broadcast the distribution transaction.\n",[521,2571,2573],{"id":2572},"get-venue-data","Get Venue Data",[388,2575,2577],{"className":997,"code":2576,"language":999,"meta":397,"style":397},"const venueData = await mcp.callTool(\"\u002Fcrypto\u002Fevm\u002Fvenue\", {\n  method: \"POST\",\n  body: {\n    address: \"0xVenueAddress\",\n    chainId: 56,\n  },\n});\n\u002F\u002F Response: {\n\u002F\u002F   venue: \"0xVenueAddress\",\n\u002F\u002F   hubId: \"68da7c5fadf298b35a9b411b\",\n\u002F\u002F   activityId: \"68da7c5fadf298b35a9b411b\",\n\u002F\u002F   gasless: true,\n\u002F\u002F   rules: {...},\n\u002F\u002F   remainingCredits: number,\n\u002F\u002F   toCustomerBounty: { visitBountyAmount: number, spendBountyPercentage: number },\n\u002F\u002F   toPromoterBounty: { visitBountyAmount: number, spendBountyPercentage: number },\n\u002F\u002F   venueId: string,\n\u002F\u002F   venueTokenBalance: string,\n\u002F\u002F   usdTokenDeposits: string,\n\u002F\u002F   longDeposits: string\n\u002F\u002F }\n\u002F\u002F venueData.venue - Venue address\n\u002F\u002F venueData.hubId - Linked hub ID\n\u002F\u002F venueData.activityId - Linked activity ID\n\u002F\u002F venueData.gasless - Whether sponsorship eligibility checks are enabled for this venue\n\u002F\u002F venueData.rules - Current venue rules (paymentType, bountyType, etc.)\n\u002F\u002F venueData.remainingCredits - Number of free deposits without commission (limit is 2)\n\u002F\u002F venueData.toCustomerBounty - Customer bounty allocation from database\n\u002F\u002F venueData.toPromoterBounty - Promoter bounty allocation from database\n\u002F\u002F venueData.venueId - Venue ID (on-chain identifier)\n\u002F\u002F venueData.venueTokenBalance - Venue ERC-1155 credit balance in USD token units (human-readable format)\n\u002F\u002F venueData.usdTokenDeposits - Current USD token balance remaining in escrow (human-readable format)\n\u002F\u002F venueData.longDeposits - Current LONG balance remaining in escrow (human-readable format)\n",[395,2578,2579,2607,2621,2629,2643,2653,2657,2665,2670,2675,2680,2685,2690,2695,2700,2705,2710,2715,2720,2725,2730,2734,2739,2744,2749,2754,2759,2764,2769,2774,2779,2784,2789],{"__ignoreMap":397},[1003,2580,2581,2583,2585,2587,2589,2591,2593,2595,2597,2599,2601,2603,2605],{"class":1005,"line":1006},[1003,2582,1035],{"class":1034},[1003,2584,1787],{"class":1038},[1003,2586,1043],{"class":1042},[1003,2588,1047],{"class":1046},[1003,2590,1050],{"class":1038},[1003,2592,363],{"class":1042},[1003,2594,1056],{"class":1055},[1003,2596,1059],{"class":1038},[1003,2598,1062],{"class":1042},[1003,2600,1804],{"class":1065},[1003,2602,1062],{"class":1042},[1003,2604,1071],{"class":1042},[1003,2606,1074],{"class":1042},[1003,2608,2609,2611,2613,2615,2617,2619],{"class":1005,"line":1013},[1003,2610,1081],{"class":1080},[1003,2612,1084],{"class":1042},[1003,2614,1087],{"class":1042},[1003,2616,1090],{"class":1065},[1003,2618,1062],{"class":1042},[1003,2620,1095],{"class":1042},[1003,2622,2623,2625,2627],{"class":1005,"line":1019},[1003,2624,1101],{"class":1080},[1003,2626,1084],{"class":1042},[1003,2628,1074],{"class":1042},[1003,2630,2631,2633,2635,2637,2639,2641],{"class":1005,"line":1025},[1003,2632,1837],{"class":1080},[1003,2634,1084],{"class":1042},[1003,2636,1087],{"class":1042},[1003,2638,1152],{"class":1065},[1003,2640,1062],{"class":1042},[1003,2642,1095],{"class":1042},[1003,2644,2645,2647,2649,2651],{"class":1005,"line":1031},[1003,2646,1111],{"class":1080},[1003,2648,1084],{"class":1042},[1003,2650,1117],{"class":1116},[1003,2652,1095],{"class":1042},[1003,2654,2655],{"class":1005,"line":1077},[1003,2656,1448],{"class":1042},[1003,2658,2659,2661,2663],{"class":1005,"line":1098},[1003,2660,1454],{"class":1042},[1003,2662,1457],{"class":1038},[1003,2664,1460],{"class":1042},[1003,2666,2667],{"class":1005,"line":1108},[1003,2668,2669],{"class":1009},"\u002F\u002F Response: {\n",[1003,2671,2672],{"class":1005,"line":1122},[1003,2673,2674],{"class":1009},"\u002F\u002F   venue: \"0xVenueAddress\",\n",[1003,2676,2677],{"class":1005,"line":1142},[1003,2678,2679],{"class":1009},"\u002F\u002F   hubId: \"68da7c5fadf298b35a9b411b\",\n",[1003,2681,2682],{"class":1005,"line":1159},[1003,2683,2684],{"class":1009},"\u002F\u002F   activityId: \"68da7c5fadf298b35a9b411b\",\n",[1003,2686,2687],{"class":1005,"line":1175},[1003,2688,2689],{"class":1009},"\u002F\u002F   gasless: true,\n",[1003,2691,2692],{"class":1005,"line":1185},[1003,2693,2694],{"class":1009},"\u002F\u002F   rules: {...},\n",[1003,2696,2697],{"class":1005,"line":1201},[1003,2698,2699],{"class":1009},"\u002F\u002F   remainingCredits: number,\n",[1003,2701,2702],{"class":1005,"line":1216},[1003,2703,2704],{"class":1009},"\u002F\u002F   toCustomerBounty: { visitBountyAmount: number, spendBountyPercentage: number },\n",[1003,2706,2707],{"class":1005,"line":1231},[1003,2708,2709],{"class":1009},"\u002F\u002F   toPromoterBounty: { visitBountyAmount: number, spendBountyPercentage: number },\n",[1003,2711,2712],{"class":1005,"line":1247},[1003,2713,2714],{"class":1009},"\u002F\u002F   venueId: string,\n",[1003,2716,2717],{"class":1005,"line":1253},[1003,2718,2719],{"class":1009},"\u002F\u002F   venueTokenBalance: string,\n",[1003,2721,2722],{"class":1005,"line":1273},[1003,2723,2724],{"class":1009},"\u002F\u002F   usdTokenDeposits: string,\n",[1003,2726,2727],{"class":1005,"line":1283},[1003,2728,2729],{"class":1009},"\u002F\u002F   longDeposits: string\n",[1003,2731,2732],{"class":1005,"line":1289},[1003,2733,1533],{"class":1009},[1003,2735,2736],{"class":1005,"line":1305},[1003,2737,2738],{"class":1009},"\u002F\u002F venueData.venue - Venue address\n",[1003,2740,2741],{"class":1005,"line":1321},[1003,2742,2743],{"class":1009},"\u002F\u002F venueData.hubId - Linked hub ID\n",[1003,2745,2746],{"class":1005,"line":1326},[1003,2747,2748],{"class":1009},"\u002F\u002F venueData.activityId - Linked activity ID\n",[1003,2750,2751],{"class":1005,"line":1336},[1003,2752,2753],{"class":1009},"\u002F\u002F venueData.gasless - Whether sponsorship eligibility checks are enabled for this venue\n",[1003,2755,2756],{"class":1005,"line":1342},[1003,2757,2758],{"class":1009},"\u002F\u002F venueData.rules - Current venue rules (paymentType, bountyType, etc.)\n",[1003,2760,2761],{"class":1005,"line":1355},[1003,2762,2763],{"class":1009},"\u002F\u002F venueData.remainingCredits - Number of free deposits without commission (limit is 2)\n",[1003,2765,2766],{"class":1005,"line":1368},[1003,2767,2768],{"class":1009},"\u002F\u002F venueData.toCustomerBounty - Customer bounty allocation from database\n",[1003,2770,2771],{"class":1005,"line":1373},[1003,2772,2773],{"class":1009},"\u002F\u002F venueData.toPromoterBounty - Promoter bounty allocation from database\n",[1003,2775,2776],{"class":1005,"line":1389},[1003,2777,2778],{"class":1009},"\u002F\u002F venueData.venueId - Venue ID (on-chain identifier)\n",[1003,2780,2781],{"class":1005,"line":1409},[1003,2782,2783],{"class":1009},"\u002F\u002F venueData.venueTokenBalance - Venue ERC-1155 credit balance in USD token units (human-readable format)\n",[1003,2785,2786],{"class":1005,"line":1428},[1003,2787,2788],{"class":1009},"\u002F\u002F venueData.usdTokenDeposits - Current USD token balance remaining in escrow (human-readable format)\n",[1003,2790,2791],{"class":1005,"line":1445},[1003,2792,2793],{"class":1009},"\u002F\u002F venueData.longDeposits - Current LONG balance remaining in escrow (human-readable format)\n",[521,2795,2797],{"id":2796},"emergency-cancel-payment","Emergency Cancel Payment",[388,2799,2801],{"className":997,"code":2800,"language":999,"meta":397,"style":397},"\u002F*\n * emergencyCancelPayment(venue, promoter)\n * Compatibility-only route.\n * Server-side execution is temporarily disabled on the backend.\n *\u002F\nconst cancelResult = await mcp.callTool(\n  \"\u002Fcrypto\u002Fevm\u002Femergency-cancel-payment\",\n  {\n    method: \"POST\",\n    body: {\n      chainId: 56,\n      venue: \"0xVenueAddress\",\n      promoter: \"0xPromoterAddress\",\n    },\n  },\n);\n\u002F\u002F Current behavior: backend returns a disabled error\n",[395,2802,2803,2807,2812,2817,2822,2826,2845,2856,2860,2874,2882,2892,2906,2920,2924,2928,2934],{"__ignoreMap":397},[1003,2804,2805],{"class":1005,"line":1006},[1003,2806,1010],{"class":1009},[1003,2808,2809],{"class":1005,"line":1013},[1003,2810,2811],{"class":1009}," * emergencyCancelPayment(venue, promoter)\n",[1003,2813,2814],{"class":1005,"line":1019},[1003,2815,2816],{"class":1009}," * Compatibility-only route.\n",[1003,2818,2819],{"class":1005,"line":1025},[1003,2820,2821],{"class":1009}," * Server-side execution is temporarily disabled on the backend.\n",[1003,2823,2824],{"class":1005,"line":1031},[1003,2825,1028],{"class":1009},[1003,2827,2828,2830,2833,2835,2837,2839,2841,2843],{"class":1005,"line":1077},[1003,2829,1035],{"class":1034},[1003,2831,2832],{"class":1038}," cancelResult ",[1003,2834,1043],{"class":1042},[1003,2836,1047],{"class":1046},[1003,2838,1050],{"class":1038},[1003,2840,363],{"class":1042},[1003,2842,1056],{"class":1055},[1003,2844,2057],{"class":1038},[1003,2846,2847,2849,2852,2854],{"class":1005,"line":1098},[1003,2848,2062],{"class":1042},[1003,2850,2851],{"class":1065},"\u002Fcrypto\u002Fevm\u002Femergency-cancel-payment",[1003,2853,1062],{"class":1042},[1003,2855,1095],{"class":1042},[1003,2857,2858],{"class":1005,"line":1108},[1003,2859,2075],{"class":1042},[1003,2861,2862,2864,2866,2868,2870,2872],{"class":1005,"line":1122},[1003,2863,2081],{"class":1080},[1003,2865,1084],{"class":1042},[1003,2867,1087],{"class":1042},[1003,2869,1090],{"class":1065},[1003,2871,1062],{"class":1042},[1003,2873,1095],{"class":1042},[1003,2875,2876,2878,2880],{"class":1005,"line":1142},[1003,2877,2097],{"class":1080},[1003,2879,1084],{"class":1042},[1003,2881,1074],{"class":1042},[1003,2883,2884,2886,2888,2890],{"class":1005,"line":1159},[1003,2885,2398],{"class":1080},[1003,2887,1084],{"class":1042},[1003,2889,1117],{"class":1116},[1003,2891,1095],{"class":1042},[1003,2893,2894,2896,2898,2900,2902,2904],{"class":1005,"line":1175},[1003,2895,2424],{"class":1080},[1003,2897,1084],{"class":1042},[1003,2899,1087],{"class":1042},[1003,2901,1152],{"class":1065},[1003,2903,1062],{"class":1042},[1003,2905,1095],{"class":1042},[1003,2907,2908,2910,2912,2914,2916,2918],{"class":1005,"line":1185},[1003,2909,2409],{"class":1080},[1003,2911,1084],{"class":1042},[1003,2913,1087],{"class":1042},[1003,2915,1263],{"class":1065},[1003,2917,1062],{"class":1042},[1003,2919,1095],{"class":1042},[1003,2921,2922],{"class":1005,"line":1201},[1003,2923,1250],{"class":1042},[1003,2925,2926],{"class":1005,"line":1216},[1003,2927,1448],{"class":1042},[1003,2929,2930,2932],{"class":1005,"line":1231},[1003,2931,1457],{"class":1038},[1003,2933,1460],{"class":1042},[1003,2935,2936],{"class":1005,"line":1247},[1003,2937,2938],{"class":1009},"\u002F\u002F Current behavior: backend returns a disabled error\n",[521,2940,2942],{"id":2941},"update-venue-settings","Update Venue Settings",[388,2944,2946],{"className":997,"code":2945,"language":999,"meta":397,"style":397},"\u002F*\n * updateVenueSettings(ownerAddress, venueAddress, paymentType?, longPaymentType?, toCustomerBounty?, toPromoterBounty?, dailyLimits?, hubId?, activityId?, gasless?)\n * Updates venue settings (payments, rewards, and venue links) in a single operation.\n * Ownership is verified by ownerAddress, but on-chain venue rules apply to venueAddress.\n * All fields are optional, but at least one must be provided: paymentType, longPaymentType, toCustomerBounty, toPromoterBounty, dailyLimits, hubId, activityId, or gasless.\n * For payments: updates paymentType and\u002For longPaymentType.\n * For rewards: automatically determines bountyType and bountyAllocationType based on provided bounty values.\n * Validates all inputs and updates both on-chain rules (if changed) and off-chain database.\n * If any rules changed, returns transaction parameters for updateVenueRules method.\n * If rules unchanged, returns only updated data without transaction parameters.\n *\u002F\nconst updateResult = await mcp.callTool(\"\u002Fcrypto\u002Fevm\u002Fupdate-venue-settings\", {\n  method: \"POST\",\n  body: {\n    ownerAddress: \"0xOwnerEOA\", \u002F\u002F Required: EOA used for ownership check\n    venueAddress: \"0xVenueAddress\",\n    chainId: 56,\n    \u002F\u002F Payment settings (optional)\n    paymentType: 3, \u002F\u002F Optional: 0=NoType, 1=USDC, 2=LONG, 3=Both\n    longPaymentType: 2, \u002F\u002F Optional: 0=NoType, 1=AutoStake, 2=AutoConvert\n    \u002F\u002F Reward settings (optional)\n    toCustomerBounty: {\n      \u002F\u002F Optional: customer bounty allocation\n      \u002F\u002F Used to automatically determine bountyType and bountyAllocationType\n      visitBountyAmount: 5, \u002F\u002F USDC (human-readable)\n      spendBountyPercentage: 2, \u002F\u002F 0-100 (human-readable)\n    },\n    toPromoterBounty: {\n      \u002F\u002F Optional: promoter bounty allocation\n      \u002F\u002F Used to automatically determine bountyType and bountyAllocationType\n      visitBountyAmount: 3, \u002F\u002F USDC (human-readable)\n      spendBountyPercentage: 1, \u002F\u002F 0-100 (human-readable)\n    },\n    \u002F\u002F Additional settings (optional)\n    dailyLimits: 100, \u002F\u002F Optional: daily limits for venue\n    hubId: \"68da7c5fadf298b35a9b411b\", \u002F\u002F Optional: hub ID for venue (MongoDB ObjectId)\n    activityId: \"68da7c5fadf298b35a9b411b\", \u002F\u002F Optional: activity ID for venue (MongoDB ObjectId)\n    gasless: true, \u002F\u002F Optional: enable sponsorship eligibility checks for this venue\n  },\n});\n\n\u002F\u002F Response structure (if rules changed):\n\u002F\u002F {\n\u002F\u002F   venueAddress: \"0xVenueAddress\",\n\u002F\u002F   chainId: 56,\n\u002F\u002F   venueId: \"1\", \u002F\u002F Venue ID from blockchain\n\u002F\u002F   gasless: true,\n\u002F\u002F   rules: { \u002F\u002F Updated venue rules with automatically determined bountyType and bountyAllocationType\n\u002F\u002F     paymentType: 3,\n\u002F\u002F     bountyType: 3, \u002F\u002F Automatically determined from bounty values\n\u002F\u002F     bountyAllocationType: 3, \u002F\u002F Automatically determined from bounty values\n\u002F\u002F     longPaymentType: 2\n\u002F\u002F   },\n\u002F\u002F   dailyLimits: 100, \u002F\u002F Present if provided\n\u002F\u002F   hubId: \"68da7c5fadf298b35a9b411b\", \u002F\u002F Present if provided\n\u002F\u002F   activityId: \"68da7c5fadf298b35a9b411b\", \u002F\u002F Present if provided\n\u002F\u002F   toCustomerBounty: { visitBountyAmount: 5, spendBountyPercentage: 2 }, \u002F\u002F Present only if provided in input\n\u002F\u002F   toPromoterBounty: { visitBountyAmount: 3, spendBountyPercentage: 1 }, \u002F\u002F Present only if provided in input\n\u002F\u002F   address: \"0xCheckInAddress\", \u002F\u002F Present only if rules changed\n\u002F\u002F   params: [rules], \u002F\u002F Array with VenueRules struct - present only if rules changed\n\u002F\u002F   method: { ... } \u002F\u002F ABI-encoded method details - present only if rules changed\n\u002F\u002F }\n\n\u002F\u002F Response structure (if rules unchanged):\n\u002F\u002F {\n\u002F\u002F   venueAddress: \"0xVenueAddress\",\n\u002F\u002F   chainId: 56,\n\u002F\u002F   venueId: \"1\",\n\u002F\u002F   gasless: true,\n\u002F\u002F   rules: { ... }, \u002F\u002F Updated venue rules\n\u002F\u002F   dailyLimits: 100, \u002F\u002F Present if provided\n\u002F\u002F   hubId: \"68da7c5fadf298b35a9b411b\", \u002F\u002F Present if provided\n\u002F\u002F   activityId: \"68da7c5fadf298b35a9b411b\", \u002F\u002F Present if provided\n\u002F\u002F   toCustomerBounty: { visitBountyAmount: 5, spendBountyPercentage: 2 }, \u002F\u002F Present only if provided in input\n\u002F\u002F   toPromoterBounty: { visitBountyAmount: 3, spendBountyPercentage: 1 } \u002F\u002F Present only if provided in input\n\u002F\u002F   \u002F\u002F No address, params, or method fields\n\u002F\u002F }\n\n\u002F\u002F Note: This method replaces the old update-accepted-payments and update-rewards endpoints.\n\u002F\u002F You can now update payments, rewards, and additional settings in a single call.\n\u002F\u002F The method automatically determines bountyType and bountyAllocationType based on\n\u002F\u002F the provided toCustomerBounty and toPromoterBounty values. If these types changed\n\u002F\u002F compared to current venue rules, transaction parameters are returned for on-chain update.\n\u002F\u002F The database is always updated with validated settings.\n\n\u002F\u002F Sign and broadcast update transaction if address, params, and method are present\n",[395,2947,2948,2952,2957,2962,2967,2972,2977,2982,2987,2992,2997,3001,3031,3045,3053,3069,3083,3093,3098,3112,3126,3131,3139,3144,3149,3161,3173,3177,3185,3190,3194,3206,3218,3222,3227,3239,3255,3271,3283,3287,3295,3299,3304,3308,3313,3318,3326,3330,3338,3343,3351,3358,3363,3368,3376,3383,3390,3398,3405,3413,3421,3429,3433,3437,3442,3446,3450,3454,3459,3463,3471,3477,3483,3489,3495,3503,3512,3517,3522,3528,3534,3540,3546,3552,3558,3563],{"__ignoreMap":397},[1003,2949,2950],{"class":1005,"line":1006},[1003,2951,1010],{"class":1009},[1003,2953,2954],{"class":1005,"line":1013},[1003,2955,2956],{"class":1009}," * updateVenueSettings(ownerAddress, venueAddress, paymentType?, longPaymentType?, toCustomerBounty?, toPromoterBounty?, dailyLimits?, hubId?, activityId?, gasless?)\n",[1003,2958,2959],{"class":1005,"line":1019},[1003,2960,2961],{"class":1009}," * Updates venue settings (payments, rewards, and venue links) in a single operation.\n",[1003,2963,2964],{"class":1005,"line":1025},[1003,2965,2966],{"class":1009}," * Ownership is verified by ownerAddress, but on-chain venue rules apply to venueAddress.\n",[1003,2968,2969],{"class":1005,"line":1031},[1003,2970,2971],{"class":1009}," * All fields are optional, but at least one must be provided: paymentType, longPaymentType, toCustomerBounty, toPromoterBounty, dailyLimits, hubId, activityId, or gasless.\n",[1003,2973,2974],{"class":1005,"line":1077},[1003,2975,2976],{"class":1009}," * For payments: updates paymentType and\u002For longPaymentType.\n",[1003,2978,2979],{"class":1005,"line":1098},[1003,2980,2981],{"class":1009}," * For rewards: automatically determines bountyType and bountyAllocationType based on provided bounty values.\n",[1003,2983,2984],{"class":1005,"line":1108},[1003,2985,2986],{"class":1009}," * Validates all inputs and updates both on-chain rules (if changed) and off-chain database.\n",[1003,2988,2989],{"class":1005,"line":1122},[1003,2990,2991],{"class":1009}," * If any rules changed, returns transaction parameters for updateVenueRules method.\n",[1003,2993,2994],{"class":1005,"line":1142},[1003,2995,2996],{"class":1009}," * If rules unchanged, returns only updated data without transaction parameters.\n",[1003,2998,2999],{"class":1005,"line":1159},[1003,3000,1028],{"class":1009},[1003,3002,3003,3005,3008,3010,3012,3014,3016,3018,3020,3022,3025,3027,3029],{"class":1005,"line":1175},[1003,3004,1035],{"class":1034},[1003,3006,3007],{"class":1038}," updateResult ",[1003,3009,1043],{"class":1042},[1003,3011,1047],{"class":1046},[1003,3013,1050],{"class":1038},[1003,3015,363],{"class":1042},[1003,3017,1056],{"class":1055},[1003,3019,1059],{"class":1038},[1003,3021,1062],{"class":1042},[1003,3023,3024],{"class":1065},"\u002Fcrypto\u002Fevm\u002Fupdate-venue-settings",[1003,3026,1062],{"class":1042},[1003,3028,1071],{"class":1042},[1003,3030,1074],{"class":1042},[1003,3032,3033,3035,3037,3039,3041,3043],{"class":1005,"line":1185},[1003,3034,1081],{"class":1080},[1003,3036,1084],{"class":1042},[1003,3038,1087],{"class":1042},[1003,3040,1090],{"class":1065},[1003,3042,1062],{"class":1042},[1003,3044,1095],{"class":1042},[1003,3046,3047,3049,3051],{"class":1005,"line":1201},[1003,3048,1101],{"class":1080},[1003,3050,1084],{"class":1042},[1003,3052,1074],{"class":1042},[1003,3054,3055,3057,3059,3061,3063,3065,3067],{"class":1005,"line":1216},[1003,3056,1125],{"class":1080},[1003,3058,1084],{"class":1042},[1003,3060,1087],{"class":1042},[1003,3062,1132],{"class":1065},[1003,3064,1062],{"class":1042},[1003,3066,1071],{"class":1042},[1003,3068,1139],{"class":1009},[1003,3070,3071,3073,3075,3077,3079,3081],{"class":1005,"line":1231},[1003,3072,1145],{"class":1080},[1003,3074,1084],{"class":1042},[1003,3076,1087],{"class":1042},[1003,3078,1152],{"class":1065},[1003,3080,1062],{"class":1042},[1003,3082,1095],{"class":1042},[1003,3084,3085,3087,3089,3091],{"class":1005,"line":1247},[1003,3086,1111],{"class":1080},[1003,3088,1084],{"class":1042},[1003,3090,1117],{"class":1116},[1003,3092,1095],{"class":1042},[1003,3094,3095],{"class":1005,"line":1253},[1003,3096,3097],{"class":1009},"    \u002F\u002F Payment settings (optional)\n",[1003,3099,3100,3103,3105,3107,3109],{"class":1005,"line":1273},[1003,3101,3102],{"class":1080},"    paymentType",[1003,3104,1084],{"class":1042},[1003,3106,1193],{"class":1116},[1003,3108,1071],{"class":1042},[1003,3110,3111],{"class":1009}," \u002F\u002F Optional: 0=NoType, 1=USDC, 2=LONG, 3=Both\n",[1003,3113,3114,3117,3119,3121,3123],{"class":1005,"line":1283},[1003,3115,3116],{"class":1080},"    longPaymentType",[1003,3118,1084],{"class":1042},[1003,3120,1313],{"class":1116},[1003,3122,1071],{"class":1042},[1003,3124,3125],{"class":1009}," \u002F\u002F Optional: 0=NoType, 1=AutoStake, 2=AutoConvert\n",[1003,3127,3128],{"class":1005,"line":1289},[1003,3129,3130],{"class":1009},"    \u002F\u002F Reward settings (optional)\n",[1003,3132,3133,3135,3137],{"class":1005,"line":1305},[1003,3134,1276],{"class":1080},[1003,3136,1084],{"class":1042},[1003,3138,1074],{"class":1042},[1003,3140,3141],{"class":1005,"line":1321},[1003,3142,3143],{"class":1009},"      \u002F\u002F Optional: customer bounty allocation\n",[1003,3145,3146],{"class":1005,"line":1326},[1003,3147,3148],{"class":1009},"      \u002F\u002F Used to automatically determine bountyType and bountyAllocationType\n",[1003,3150,3151,3153,3155,3157,3159],{"class":1005,"line":1336},[1003,3152,1292],{"class":1080},[1003,3154,1084],{"class":1042},[1003,3156,1297],{"class":1116},[1003,3158,1071],{"class":1042},[1003,3160,1302],{"class":1009},[1003,3162,3163,3165,3167,3169,3171],{"class":1005,"line":1342},[1003,3164,1308],{"class":1080},[1003,3166,1084],{"class":1042},[1003,3168,1313],{"class":1116},[1003,3170,1071],{"class":1042},[1003,3172,1318],{"class":1009},[1003,3174,3175],{"class":1005,"line":1355},[1003,3176,1250],{"class":1042},[1003,3178,3179,3181,3183],{"class":1005,"line":1368},[1003,3180,1329],{"class":1080},[1003,3182,1084],{"class":1042},[1003,3184,1074],{"class":1042},[1003,3186,3187],{"class":1005,"line":1373},[1003,3188,3189],{"class":1009},"      \u002F\u002F Optional: promoter bounty allocation\n",[1003,3191,3192],{"class":1005,"line":1389},[1003,3193,3148],{"class":1009},[1003,3195,3196,3198,3200,3202,3204],{"class":1005,"line":1409},[1003,3197,1292],{"class":1080},[1003,3199,1084],{"class":1042},[1003,3201,1193],{"class":1116},[1003,3203,1071],{"class":1042},[1003,3205,1302],{"class":1009},[1003,3207,3208,3210,3212,3214,3216],{"class":1005,"line":1428},[1003,3209,1308],{"class":1080},[1003,3211,1084],{"class":1042},[1003,3213,1239],{"class":1116},[1003,3215,1071],{"class":1042},[1003,3217,1318],{"class":1009},[1003,3219,3220],{"class":1005,"line":1445},[1003,3221,1250],{"class":1042},[1003,3223,3224],{"class":1005,"line":1451},[1003,3225,3226],{"class":1009},"    \u002F\u002F Additional settings (optional)\n",[1003,3228,3229,3231,3233,3235,3237],{"class":1005,"line":1463},[1003,3230,1376],{"class":1080},[1003,3232,1084],{"class":1042},[1003,3234,1381],{"class":1116},[1003,3236,1071],{"class":1042},[1003,3238,1386],{"class":1009},[1003,3240,3241,3243,3245,3247,3249,3251,3253],{"class":1005,"line":1470},[1003,3242,1392],{"class":1080},[1003,3244,1084],{"class":1042},[1003,3246,1087],{"class":1042},[1003,3248,1399],{"class":1065},[1003,3250,1062],{"class":1042},[1003,3252,1071],{"class":1042},[1003,3254,1406],{"class":1009},[1003,3256,3257,3259,3261,3263,3265,3267,3269],{"class":1005,"line":1476},[1003,3258,1412],{"class":1080},[1003,3260,1084],{"class":1042},[1003,3262,1087],{"class":1042},[1003,3264,1399],{"class":1065},[1003,3266,1062],{"class":1042},[1003,3268,1071],{"class":1042},[1003,3270,1425],{"class":1009},[1003,3272,3273,3275,3277,3279,3281],{"class":1005,"line":1482},[1003,3274,1431],{"class":1080},[1003,3276,1084],{"class":1042},[1003,3278,1437],{"class":1436},[1003,3280,1071],{"class":1042},[1003,3282,1442],{"class":1009},[1003,3284,3285],{"class":1005,"line":1491},[1003,3286,1448],{"class":1042},[1003,3288,3289,3291,3293],{"class":1005,"line":1500},[1003,3290,1454],{"class":1042},[1003,3292,1457],{"class":1038},[1003,3294,1460],{"class":1042},[1003,3296,3297],{"class":1005,"line":1506},[1003,3298,1467],{"emptyLinePlaceholder":1466},[1003,3300,3301],{"class":1005,"line":1512},[1003,3302,3303],{"class":1009},"\u002F\u002F Response structure (if rules changed):\n",[1003,3305,3306],{"class":1005,"line":1521},[1003,3307,1479],{"class":1009},[1003,3309,3310],{"class":1005,"line":1530},[1003,3311,3312],{"class":1009},"\u002F\u002F   venueAddress: \"0xVenueAddress\",\n",[1003,3314,3315],{"class":1005,"line":1536},[1003,3316,3317],{"class":1009},"\u002F\u002F   chainId: 56,\n",[1003,3319,3320,3323],{"class":1005,"line":1542},[1003,3321,3322],{"class":1009},"\u002F\u002F   venueId: \"1\",",[1003,3324,3325],{"class":1009}," \u002F\u002F Venue ID from blockchain\n",[1003,3327,3328],{"class":1005,"line":1548},[1003,3329,2689],{"class":1009},[1003,3331,3332,3335],{"class":1005,"line":1554},[1003,3333,3334],{"class":1009},"\u002F\u002F   rules: {",[1003,3336,3337],{"class":1009}," \u002F\u002F Updated venue rules with automatically determined bountyType and bountyAllocationType\n",[1003,3339,3340],{"class":1005,"line":1559},[1003,3341,3342],{"class":1009},"\u002F\u002F     paymentType: 3,\n",[1003,3344,3345,3348],{"class":1005,"line":2072},[1003,3346,3347],{"class":1009},"\u002F\u002F     bountyType: 3,",[1003,3349,3350],{"class":1009}," \u002F\u002F Automatically determined from bounty values\n",[1003,3352,3353,3356],{"class":1005,"line":2078},[1003,3354,3355],{"class":1009},"\u002F\u002F     bountyAllocationType: 3,",[1003,3357,3350],{"class":1009},[1003,3359,3360],{"class":1005,"line":2094},[1003,3361,3362],{"class":1009},"\u002F\u002F     longPaymentType: 2\n",[1003,3364,3365],{"class":1005,"line":2102},[1003,3366,3367],{"class":1009},"\u002F\u002F   },\n",[1003,3369,3370,3373],{"class":1005,"line":2107},[1003,3371,3372],{"class":1009},"\u002F\u002F   dailyLimits: 100,",[1003,3374,3375],{"class":1009}," \u002F\u002F Present if provided\n",[1003,3377,3378,3381],{"class":1005,"line":2114},[1003,3379,3380],{"class":1009},"\u002F\u002F   hubId: \"68da7c5fadf298b35a9b411b\",",[1003,3382,3375],{"class":1009},[1003,3384,3385,3388],{"class":1005,"line":2119},[1003,3386,3387],{"class":1009},"\u002F\u002F   activityId: \"68da7c5fadf298b35a9b411b\",",[1003,3389,3375],{"class":1009},[1003,3391,3392,3395],{"class":1005,"line":2125},[1003,3393,3394],{"class":1009},"\u002F\u002F   toCustomerBounty: { visitBountyAmount: 5, spendBountyPercentage: 2 },",[1003,3396,3397],{"class":1009}," \u002F\u002F Present only if provided in input\n",[1003,3399,3400,3403],{"class":1005,"line":2131},[1003,3401,3402],{"class":1009},"\u002F\u002F   toPromoterBounty: { visitBountyAmount: 3, spendBountyPercentage: 1 },",[1003,3404,3397],{"class":1009},[1003,3406,3407,3410],{"class":1005,"line":2137},[1003,3408,3409],{"class":1009},"\u002F\u002F   address: \"0xCheckInAddress\",",[1003,3411,3412],{"class":1009}," \u002F\u002F Present only if rules changed\n",[1003,3414,3415,3418],{"class":1005,"line":2143},[1003,3416,3417],{"class":1009},"\u002F\u002F   params: [rules],",[1003,3419,3420],{"class":1009}," \u002F\u002F Array with VenueRules struct - present only if rules changed\n",[1003,3422,3423,3426],{"class":1005,"line":2149},[1003,3424,3425],{"class":1009},"\u002F\u002F   method: { ... }",[1003,3427,3428],{"class":1009}," \u002F\u002F ABI-encoded method details - present only if rules changed\n",[1003,3430,3431],{"class":1005,"line":2155},[1003,3432,1533],{"class":1009},[1003,3434,3435],{"class":1005,"line":2161},[1003,3436,1467],{"emptyLinePlaceholder":1466},[1003,3438,3439],{"class":1005,"line":2167},[1003,3440,3441],{"class":1009},"\u002F\u002F Response structure (if rules unchanged):\n",[1003,3443,3444],{"class":1005,"line":2173},[1003,3445,1479],{"class":1009},[1003,3447,3448],{"class":1005,"line":2178},[1003,3449,3312],{"class":1009},[1003,3451,3452],{"class":1005,"line":2183},[1003,3453,3317],{"class":1009},[1003,3455,3456],{"class":1005,"line":2189},[1003,3457,3458],{"class":1009},"\u002F\u002F   venueId: \"1\",\n",[1003,3460,3461],{"class":1005,"line":2206},[1003,3462,2689],{"class":1009},[1003,3464,3465,3468],{"class":1005,"line":2226},[1003,3466,3467],{"class":1009},"\u002F\u002F   rules: { ... },",[1003,3469,3470],{"class":1009}," \u002F\u002F Updated venue rules\n",[1003,3472,3473,3475],{"class":1005,"line":2258},[1003,3474,3372],{"class":1009},[1003,3476,3375],{"class":1009},[1003,3478,3479,3481],{"class":1005,"line":2289},[1003,3480,3380],{"class":1009},[1003,3482,3375],{"class":1009},[1003,3484,3485,3487],{"class":1005,"line":2294},[1003,3486,3387],{"class":1009},[1003,3488,3375],{"class":1009},[1003,3490,3491,3493],{"class":1005,"line":2300},[1003,3492,3394],{"class":1009},[1003,3494,3397],{"class":1009},[1003,3496,3498,3501],{"class":1005,"line":3497},75,[1003,3499,3500],{"class":1009},"\u002F\u002F   toPromoterBounty: { visitBountyAmount: 3, spendBountyPercentage: 1 }",[1003,3502,3397],{"class":1009},[1003,3504,3506,3509],{"class":1005,"line":3505},76,[1003,3507,3508],{"class":1009},"\u002F\u002F",[1003,3510,3511],{"class":1009},"   \u002F\u002F No address, params, or method fields\n",[1003,3513,3515],{"class":1005,"line":3514},77,[1003,3516,1533],{"class":1009},[1003,3518,3520],{"class":1005,"line":3519},78,[1003,3521,1467],{"emptyLinePlaceholder":1466},[1003,3523,3525],{"class":1005,"line":3524},79,[1003,3526,3527],{"class":1009},"\u002F\u002F Note: This method replaces the old update-accepted-payments and update-rewards endpoints.\n",[1003,3529,3531],{"class":1005,"line":3530},80,[1003,3532,3533],{"class":1009},"\u002F\u002F You can now update payments, rewards, and additional settings in a single call.\n",[1003,3535,3537],{"class":1005,"line":3536},81,[1003,3538,3539],{"class":1009},"\u002F\u002F The method automatically determines bountyType and bountyAllocationType based on\n",[1003,3541,3543],{"class":1005,"line":3542},82,[1003,3544,3545],{"class":1009},"\u002F\u002F the provided toCustomerBounty and toPromoterBounty values. If these types changed\n",[1003,3547,3549],{"class":1005,"line":3548},83,[1003,3550,3551],{"class":1009},"\u002F\u002F compared to current venue rules, transaction parameters are returned for on-chain update.\n",[1003,3553,3555],{"class":1005,"line":3554},84,[1003,3556,3557],{"class":1009},"\u002F\u002F The database is always updated with validated settings.\n",[1003,3559,3561],{"class":1005,"line":3560},85,[1003,3562,1467],{"emptyLinePlaceholder":1466},[1003,3564,3566],{"class":1005,"line":3565},86,[1003,3567,3568],{"class":1009},"\u002F\u002F Sign and broadcast update transaction if address, params, and method are present\n",[521,3570,3572],{"id":3571},"deploy-promoter","Deploy Promoter",[388,3574,3576],{"className":997,"code":3575,"language":999,"meta":397,"style":397},"\u002F*\n * deployPromoter(promoter)\n * Deploys a promoter contract for the specified wallet address.\n * Requires authentication and checks for promoter uniqueness and ownership.\n *\u002F\nconst deployResult = await mcp.callTool(\"\u002Fcrypto\u002Fevm\u002Fdeploy-promoter\", {\n  method: \"POST\",\n  body: {\n    chainId: 56,\n    promoter: \"0xPromoterAddress\",\n  },\n});\n\u002F\u002F Response: { address: \"0xFactoryAddress\", method: {...} }\n\u002F\u002F Sign and broadcast the transaction to create a referral code\n",[395,3577,3578,3582,3587,3592,3597,3601,3631,3645,3653,3663,3677,3681,3689,3694],{"__ignoreMap":397},[1003,3579,3580],{"class":1005,"line":1006},[1003,3581,1010],{"class":1009},[1003,3583,3584],{"class":1005,"line":1013},[1003,3585,3586],{"class":1009}," * deployPromoter(promoter)\n",[1003,3588,3589],{"class":1005,"line":1019},[1003,3590,3591],{"class":1009}," * Deploys a promoter contract for the specified wallet address.\n",[1003,3593,3594],{"class":1005,"line":1025},[1003,3595,3596],{"class":1009}," * Requires authentication and checks for promoter uniqueness and ownership.\n",[1003,3598,3599],{"class":1005,"line":1031},[1003,3600,1028],{"class":1009},[1003,3602,3603,3605,3608,3610,3612,3614,3616,3618,3620,3622,3625,3627,3629],{"class":1005,"line":1077},[1003,3604,1035],{"class":1034},[1003,3606,3607],{"class":1038}," deployResult ",[1003,3609,1043],{"class":1042},[1003,3611,1047],{"class":1046},[1003,3613,1050],{"class":1038},[1003,3615,363],{"class":1042},[1003,3617,1056],{"class":1055},[1003,3619,1059],{"class":1038},[1003,3621,1062],{"class":1042},[1003,3623,3624],{"class":1065},"\u002Fcrypto\u002Fevm\u002Fdeploy-promoter",[1003,3626,1062],{"class":1042},[1003,3628,1071],{"class":1042},[1003,3630,1074],{"class":1042},[1003,3632,3633,3635,3637,3639,3641,3643],{"class":1005,"line":1098},[1003,3634,1081],{"class":1080},[1003,3636,1084],{"class":1042},[1003,3638,1087],{"class":1042},[1003,3640,1090],{"class":1065},[1003,3642,1062],{"class":1042},[1003,3644,1095],{"class":1042},[1003,3646,3647,3649,3651],{"class":1005,"line":1108},[1003,3648,1101],{"class":1080},[1003,3650,1084],{"class":1042},[1003,3652,1074],{"class":1042},[1003,3654,3655,3657,3659,3661],{"class":1005,"line":1122},[1003,3656,1111],{"class":1080},[1003,3658,1084],{"class":1042},[1003,3660,1117],{"class":1116},[1003,3662,1095],{"class":1042},[1003,3664,3665,3667,3669,3671,3673,3675],{"class":1005,"line":1142},[1003,3666,1690],{"class":1080},[1003,3668,1084],{"class":1042},[1003,3670,1087],{"class":1042},[1003,3672,1263],{"class":1065},[1003,3674,1062],{"class":1042},[1003,3676,1095],{"class":1042},[1003,3678,3679],{"class":1005,"line":1159},[1003,3680,1448],{"class":1042},[1003,3682,3683,3685,3687],{"class":1005,"line":1175},[1003,3684,1454],{"class":1042},[1003,3686,1457],{"class":1038},[1003,3688,1460],{"class":1042},[1003,3690,3691],{"class":1005,"line":1185},[1003,3692,3693],{"class":1009},"\u002F\u002F Response: { address: \"0xFactoryAddress\", method: {...} }\n",[1003,3695,3696],{"class":1005,"line":1201},[1003,3697,3698],{"class":1009},"\u002F\u002F Sign and broadcast the transaction to create a referral code\n",[521,3700,3702],{"id":3701},"find-promoter","Find Promoter",[388,3704,3706],{"className":997,"code":3705,"language":999,"meta":397,"style":397},"\u002F*\n * findPromoter(promoter)\n * Verifies if a promoter is registered in the system.\n * Returns 'success' if the promoter exists with a valid referral code, or 'failed' otherwise.\n *\u002F\nconst promoterStatus = await mcp.callTool(\"\u002Fcrypto\u002Fevm\u002Ffind-promoter\", {\n  method: \"POST\",\n  body: {\n    chainId: 56,\n    promoter: \"0xPromoterAddress\",\n  },\n});\n\u002F\u002F Response: \"success\" | \"failed\"\n\u002F\u002F Promoter status: promoterStatus\n",[395,3707,3708,3712,3717,3722,3727,3731,3760,3774,3782,3792,3806,3810,3818,3823],{"__ignoreMap":397},[1003,3709,3710],{"class":1005,"line":1006},[1003,3711,1010],{"class":1009},[1003,3713,3714],{"class":1005,"line":1013},[1003,3715,3716],{"class":1009}," * findPromoter(promoter)\n",[1003,3718,3719],{"class":1005,"line":1019},[1003,3720,3721],{"class":1009}," * Verifies if a promoter is registered in the system.\n",[1003,3723,3724],{"class":1005,"line":1025},[1003,3725,3726],{"class":1009}," * Returns 'success' if the promoter exists with a valid referral code, or 'failed' otherwise.\n",[1003,3728,3729],{"class":1005,"line":1031},[1003,3730,1028],{"class":1009},[1003,3732,3733,3735,3738,3740,3742,3744,3746,3748,3750,3752,3754,3756,3758],{"class":1005,"line":1077},[1003,3734,1035],{"class":1034},[1003,3736,3737],{"class":1038}," promoterStatus ",[1003,3739,1043],{"class":1042},[1003,3741,1047],{"class":1046},[1003,3743,1050],{"class":1038},[1003,3745,363],{"class":1042},[1003,3747,1056],{"class":1055},[1003,3749,1059],{"class":1038},[1003,3751,1062],{"class":1042},[1003,3753,1647],{"class":1065},[1003,3755,1062],{"class":1042},[1003,3757,1071],{"class":1042},[1003,3759,1074],{"class":1042},[1003,3761,3762,3764,3766,3768,3770,3772],{"class":1005,"line":1098},[1003,3763,1081],{"class":1080},[1003,3765,1084],{"class":1042},[1003,3767,1087],{"class":1042},[1003,3769,1090],{"class":1065},[1003,3771,1062],{"class":1042},[1003,3773,1095],{"class":1042},[1003,3775,3776,3778,3780],{"class":1005,"line":1108},[1003,3777,1101],{"class":1080},[1003,3779,1084],{"class":1042},[1003,3781,1074],{"class":1042},[1003,3783,3784,3786,3788,3790],{"class":1005,"line":1122},[1003,3785,1111],{"class":1080},[1003,3787,1084],{"class":1042},[1003,3789,1117],{"class":1116},[1003,3791,1095],{"class":1042},[1003,3793,3794,3796,3798,3800,3802,3804],{"class":1005,"line":1142},[1003,3795,1690],{"class":1080},[1003,3797,1084],{"class":1042},[1003,3799,1087],{"class":1042},[1003,3801,1263],{"class":1065},[1003,3803,1062],{"class":1042},[1003,3805,1095],{"class":1042},[1003,3807,3808],{"class":1005,"line":1159},[1003,3809,1448],{"class":1042},[1003,3811,3812,3814,3816],{"class":1005,"line":1175},[1003,3813,1454],{"class":1042},[1003,3815,1457],{"class":1038},[1003,3817,1460],{"class":1042},[1003,3819,3820],{"class":1005,"line":1185},[1003,3821,3822],{"class":1009},"\u002F\u002F Response: \"success\" | \"failed\"\n",[1003,3824,3825],{"class":1005,"line":1201},[1003,3826,3827],{"class":1009},"\u002F\u002F Promoter status: promoterStatus\n",[521,3829,3831],{"id":3830},"get-belong-checkin-storage","Get Belong CheckIn Storage",[388,3833,3835],{"className":997,"code":3834,"language":999,"meta":397,"style":397},"\u002F*\n * getBelongCheckInStorage(chainId)\n * Retrieves the Belong CheckIn contract storage data including contract addresses,\n * payment configuration, fees structure, and helper\u002Fcheck-in contract addresses.\n * Returns data with BigInt values converted to strings for JSON serialization.\n *\u002F\nconst storage = await mcp.callTool(\"\u002Fcrypto\u002Fevm\u002Fget-belong-check-in-storage\", {\n  method: \"POST\",\n  body: {\n    chainId: 56,\n  },\n});\n\n\u002F\u002F Response structure:\n\u002F\u002F {\n\u002F\u002F   contracts: {\n\u002F\u002F     factory: string,      \u002F\u002F Factory contract address\n\u002F\u002F     escrow: string,       \u002F\u002F Escrow contract address\n\u002F\u002F     staking: string,      \u002F\u002F Staking contract address\n\u002F\u002F     venueToken: string,   \u002F\u002F Venue token contract address\n\u002F\u002F     promoterToken: string, \u002F\u002F Promoter token contract address\n\u002F\u002F     longPF: string,       \u002F\u002F LONG price feed address\n\u002F\u002F   },\n\u002F\u002F   paymentsInfo: {\n\u002F\u002F     dexType: number,              \u002F\u002F DEX type enum value\n\u002F\u002F     slippageBps: number,          \u002F\u002F Max slippage in basis points\n\u002F\u002F     router: string,                \u002F\u002F DEX router address\n\u002F\u002F     usdToken: string,              \u002F\u002F USD token address (USDC)\n\u002F\u002F     long: string,                 \u002F\u002F LONG token address\n\u002F\u002F     maxPriceFeedDelay: number,    \u002F\u002F Max delay for price feeds (seconds)\n\u002F\u002F     poolKey: string,              \u002F\u002F Pool key bytes\n\u002F\u002F     hookData: string,             \u002F\u002F Hook data bytes\n\u002F\u002F   },\n\u002F\u002F   fees: {\n\u002F\u002F     referralCreditsAmount: number,           \u002F\u002F Referral credit value\n\u002F\u002F     affiliatePercentage: number,             \u002F\u002F Affiliate fee percentage\n\u002F\u002F     longCustomerDiscountPercentage: number,  \u002F\u002F LONG discount for customers\n\u002F\u002F     platformSubsidyPercentage: number,      \u002F\u002F Platform subsidy percentage\n\u002F\u002F     processingFeePercentage: number,         \u002F\u002F Processing fee\n\u002F\u002F     buybackBurnPercentage: number,          \u002F\u002F Buyback and burn percentage\n\u002F\u002F   },\n\u002F\u002F   helperContract: string,    \u002F\u002F Helper contract address\n\u002F\u002F   checkInContract: string,   \u002F\u002F Check-In contract address\n\u002F\u002F }\n",[395,3836,3837,3841,3846,3851,3856,3861,3865,3895,3909,3917,3927,3931,3939,3943,3947,3951,3956,3964,3972,3980,3988,3996,4004,4008,4013,4021,4029,4037,4045,4053,4061,4069,4077,4081,4086,4094,4102,4110,4118,4126,4134,4138,4146,4154],{"__ignoreMap":397},[1003,3838,3839],{"class":1005,"line":1006},[1003,3840,1010],{"class":1009},[1003,3842,3843],{"class":1005,"line":1013},[1003,3844,3845],{"class":1009}," * getBelongCheckInStorage(chainId)\n",[1003,3847,3848],{"class":1005,"line":1019},[1003,3849,3850],{"class":1009}," * Retrieves the Belong CheckIn contract storage data including contract addresses,\n",[1003,3852,3853],{"class":1005,"line":1025},[1003,3854,3855],{"class":1009}," * payment configuration, fees structure, and helper\u002Fcheck-in contract addresses.\n",[1003,3857,3858],{"class":1005,"line":1031},[1003,3859,3860],{"class":1009}," * Returns data with BigInt values converted to strings for JSON serialization.\n",[1003,3862,3863],{"class":1005,"line":1077},[1003,3864,1028],{"class":1009},[1003,3866,3867,3869,3872,3874,3876,3878,3880,3882,3884,3886,3889,3891,3893],{"class":1005,"line":1098},[1003,3868,1035],{"class":1034},[1003,3870,3871],{"class":1038}," storage ",[1003,3873,1043],{"class":1042},[1003,3875,1047],{"class":1046},[1003,3877,1050],{"class":1038},[1003,3879,363],{"class":1042},[1003,3881,1056],{"class":1055},[1003,3883,1059],{"class":1038},[1003,3885,1062],{"class":1042},[1003,3887,3888],{"class":1065},"\u002Fcrypto\u002Fevm\u002Fget-belong-check-in-storage",[1003,3890,1062],{"class":1042},[1003,3892,1071],{"class":1042},[1003,3894,1074],{"class":1042},[1003,3896,3897,3899,3901,3903,3905,3907],{"class":1005,"line":1108},[1003,3898,1081],{"class":1080},[1003,3900,1084],{"class":1042},[1003,3902,1087],{"class":1042},[1003,3904,1090],{"class":1065},[1003,3906,1062],{"class":1042},[1003,3908,1095],{"class":1042},[1003,3910,3911,3913,3915],{"class":1005,"line":1122},[1003,3912,1101],{"class":1080},[1003,3914,1084],{"class":1042},[1003,3916,1074],{"class":1042},[1003,3918,3919,3921,3923,3925],{"class":1005,"line":1142},[1003,3920,1111],{"class":1080},[1003,3922,1084],{"class":1042},[1003,3924,1117],{"class":1116},[1003,3926,1095],{"class":1042},[1003,3928,3929],{"class":1005,"line":1159},[1003,3930,1448],{"class":1042},[1003,3932,3933,3935,3937],{"class":1005,"line":1175},[1003,3934,1454],{"class":1042},[1003,3936,1457],{"class":1038},[1003,3938,1460],{"class":1042},[1003,3940,3941],{"class":1005,"line":1185},[1003,3942,1467],{"emptyLinePlaceholder":1466},[1003,3944,3945],{"class":1005,"line":1201},[1003,3946,1473],{"class":1009},[1003,3948,3949],{"class":1005,"line":1216},[1003,3950,1479],{"class":1009},[1003,3952,3953],{"class":1005,"line":1231},[1003,3954,3955],{"class":1009},"\u002F\u002F   contracts: {\n",[1003,3957,3958,3961],{"class":1005,"line":1247},[1003,3959,3960],{"class":1009},"\u002F\u002F     factory: string,",[1003,3962,3963],{"class":1009},"      \u002F\u002F Factory contract address\n",[1003,3965,3966,3969],{"class":1005,"line":1253},[1003,3967,3968],{"class":1009},"\u002F\u002F     escrow: string,",[1003,3970,3971],{"class":1009},"       \u002F\u002F Escrow contract address\n",[1003,3973,3974,3977],{"class":1005,"line":1273},[1003,3975,3976],{"class":1009},"\u002F\u002F     staking: string,",[1003,3978,3979],{"class":1009},"      \u002F\u002F Staking contract address\n",[1003,3981,3982,3985],{"class":1005,"line":1283},[1003,3983,3984],{"class":1009},"\u002F\u002F     venueToken: string,",[1003,3986,3987],{"class":1009},"   \u002F\u002F Venue token contract address\n",[1003,3989,3990,3993],{"class":1005,"line":1289},[1003,3991,3992],{"class":1009},"\u002F\u002F     promoterToken: string,",[1003,3994,3995],{"class":1009}," \u002F\u002F Promoter token contract address\n",[1003,3997,3998,4001],{"class":1005,"line":1305},[1003,3999,4000],{"class":1009},"\u002F\u002F     longPF: string,",[1003,4002,4003],{"class":1009},"       \u002F\u002F LONG price feed address\n",[1003,4005,4006],{"class":1005,"line":1321},[1003,4007,3367],{"class":1009},[1003,4009,4010],{"class":1005,"line":1326},[1003,4011,4012],{"class":1009},"\u002F\u002F   paymentsInfo: {\n",[1003,4014,4015,4018],{"class":1005,"line":1336},[1003,4016,4017],{"class":1009},"\u002F\u002F     dexType: number,",[1003,4019,4020],{"class":1009},"              \u002F\u002F DEX type enum value\n",[1003,4022,4023,4026],{"class":1005,"line":1342},[1003,4024,4025],{"class":1009},"\u002F\u002F     slippageBps: number,",[1003,4027,4028],{"class":1009},"          \u002F\u002F Max slippage in basis points\n",[1003,4030,4031,4034],{"class":1005,"line":1355},[1003,4032,4033],{"class":1009},"\u002F\u002F     router: string,",[1003,4035,4036],{"class":1009},"                \u002F\u002F DEX router address\n",[1003,4038,4039,4042],{"class":1005,"line":1368},[1003,4040,4041],{"class":1009},"\u002F\u002F     usdToken: string,",[1003,4043,4044],{"class":1009},"              \u002F\u002F USD token address (USDC)\n",[1003,4046,4047,4050],{"class":1005,"line":1373},[1003,4048,4049],{"class":1009},"\u002F\u002F     long: string,",[1003,4051,4052],{"class":1009},"                 \u002F\u002F LONG token address\n",[1003,4054,4055,4058],{"class":1005,"line":1389},[1003,4056,4057],{"class":1009},"\u002F\u002F     maxPriceFeedDelay: number,",[1003,4059,4060],{"class":1009},"    \u002F\u002F Max delay for price feeds (seconds)\n",[1003,4062,4063,4066],{"class":1005,"line":1409},[1003,4064,4065],{"class":1009},"\u002F\u002F     poolKey: string,",[1003,4067,4068],{"class":1009},"              \u002F\u002F Pool key bytes\n",[1003,4070,4071,4074],{"class":1005,"line":1428},[1003,4072,4073],{"class":1009},"\u002F\u002F     hookData: string,",[1003,4075,4076],{"class":1009},"             \u002F\u002F Hook data bytes\n",[1003,4078,4079],{"class":1005,"line":1445},[1003,4080,3367],{"class":1009},[1003,4082,4083],{"class":1005,"line":1451},[1003,4084,4085],{"class":1009},"\u002F\u002F   fees: {\n",[1003,4087,4088,4091],{"class":1005,"line":1463},[1003,4089,4090],{"class":1009},"\u002F\u002F     referralCreditsAmount: number,",[1003,4092,4093],{"class":1009},"           \u002F\u002F Referral credit value\n",[1003,4095,4096,4099],{"class":1005,"line":1470},[1003,4097,4098],{"class":1009},"\u002F\u002F     affiliatePercentage: number,",[1003,4100,4101],{"class":1009},"             \u002F\u002F Affiliate fee percentage\n",[1003,4103,4104,4107],{"class":1005,"line":1476},[1003,4105,4106],{"class":1009},"\u002F\u002F     longCustomerDiscountPercentage: number,",[1003,4108,4109],{"class":1009},"  \u002F\u002F LONG discount for customers\n",[1003,4111,4112,4115],{"class":1005,"line":1482},[1003,4113,4114],{"class":1009},"\u002F\u002F     platformSubsidyPercentage: number,",[1003,4116,4117],{"class":1009},"      \u002F\u002F Platform subsidy percentage\n",[1003,4119,4120,4123],{"class":1005,"line":1491},[1003,4121,4122],{"class":1009},"\u002F\u002F     processingFeePercentage: number,",[1003,4124,4125],{"class":1009},"         \u002F\u002F Processing fee\n",[1003,4127,4128,4131],{"class":1005,"line":1500},[1003,4129,4130],{"class":1009},"\u002F\u002F     buybackBurnPercentage: number,",[1003,4132,4133],{"class":1009},"          \u002F\u002F Buyback and burn percentage\n",[1003,4135,4136],{"class":1005,"line":1506},[1003,4137,3367],{"class":1009},[1003,4139,4140,4143],{"class":1005,"line":1512},[1003,4141,4142],{"class":1009},"\u002F\u002F   helperContract: string,",[1003,4144,4145],{"class":1009},"    \u002F\u002F Helper contract address\n",[1003,4147,4148,4151],{"class":1005,"line":1521},[1003,4149,4150],{"class":1009},"\u002F\u002F   checkInContract: string,",[1003,4152,4153],{"class":1009},"   \u002F\u002F Check-In contract address\n",[1003,4155,4156],{"class":1005,"line":1530},[1003,4157,1533],{"class":1009},[322,4159,4161],{"id":4160},"error-handling","Error Handling",[326,4163,4164,4165,4168],{},"MCP tools return standardized errors in the response's ",[395,4166,4167],{},"error"," field.",[326,4170,4171],{},[330,4172,4173],{},"Example:",[388,4175,4179],{"className":4176,"code":4177,"language":4178,"meta":397,"style":397},"language-tson shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"error\": \"VENUE_NOT_FOUND\",\n  \"message\": \"The specified venue contract was not found on this chain.\"\n}\n","tson",[395,4180,4181,4185,4190,4195],{"__ignoreMap":397},[1003,4182,4183],{"class":1005,"line":1006},[1003,4184,1737],{},[1003,4186,4187],{"class":1005,"line":1013},[1003,4188,4189],{},"  \"error\": \"VENUE_NOT_FOUND\",\n",[1003,4191,4192],{"class":1005,"line":1019},[1003,4193,4194],{},"  \"message\": \"The specified venue contract was not found on this chain.\"\n",[1003,4196,4197],{"class":1005,"line":1025},[1003,4198,1771],{},[326,4200,4201],{},[330,4202,4203],{},"Common Errors:",[529,4205,4206,4212,4218,4223,4229,4235,4245,4251,4257],{},[532,4207,4208,4211],{},[395,4209,4210],{},"VENUE_NOT_FOUND"," — Venue address not registered or has no venue token balance.",[532,4213,4214,4217],{},[395,4215,4216],{},"INSUFFICIENT_FUNDS"," — Insufficient deposit balance.",[532,4219,4220,4222],{},[395,4221,877],{}," — Insufficient balance (e.g., LONG escrow balance insufficient for LONG payments).",[532,4224,4225,4228],{},[395,4226,4227],{},"INVALID_SIGNATURE"," — Authentication or signing issue.",[532,4230,4231,4234],{},[395,4232,4233],{},"UNSUPPORTED_CHAIN"," — Chain ID not supported by MCP.",[532,4236,4237,4240,4241,4244],{},[395,4238,4239],{},"INVALID_BOUNTY_CONFIGURATION"," — Bounty configuration violates contract requirements (e.g., ",[395,4242,4243],{},"bountyType = Both"," but missing visit or spend bounty).",[532,4246,4247,4250],{},[395,4248,4249],{},"INVALID_BOUNTY_PERCENTAGE"," — Spend bounty percentage is outside valid range (0-100).",[532,4252,4253,4256],{},[395,4254,4255],{},"NO_BOUNTY_CREDITS"," — Venue has no venue token balance (venueToken balance is zero).",[532,4258,4259,4262],{},[395,4260,4261],{},"PAYMENT_TYPE_NOT_SUPPORTED"," — Payment type not compatible with venue rules.",[514,4264],{},[326,4266,4267,4268,4271],{},"✅ ",[330,4269,4270],{},"Result:"," You now have a complete flow for deposits, payments, promoter rewards, and vesting management in the Belong CheckIn system.",[4273,4274,4275],"style",{},"html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}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 .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}",{"title":397,"searchDepth":1013,"depth":1013,"links":4277},[4278,4279,4280,4288,4289,4300],{"id":324,"depth":1013,"text":92},{"id":379,"depth":1013,"text":380},{"id":518,"depth":1013,"text":519,"children":4281},[4282,4283,4284,4285,4286,4287],{"id":523,"depth":1019,"text":524},{"id":592,"depth":1019,"text":593},{"id":630,"depth":1019,"text":631},{"id":834,"depth":1019,"text":835},{"id":866,"depth":1019,"text":867},{"id":881,"depth":1019,"text":882},{"id":977,"depth":1013,"text":978},{"id":989,"depth":1013,"text":990,"children":4290},[4291,4292,4293,4294,4295,4296,4297,4298,4299],{"id":993,"depth":1019,"text":994},{"id":1565,"depth":1019,"text":1566},{"id":2306,"depth":1019,"text":2307},{"id":2572,"depth":1019,"text":2573},{"id":2796,"depth":1019,"text":2797},{"id":2941,"depth":1019,"text":2942},{"id":3571,"depth":1019,"text":3572},{"id":3701,"depth":1019,"text":3702},{"id":3830,"depth":1019,"text":3831},{"id":4160,"depth":1013,"text":4161},"End-to-end venue and payment processing on EVM chains using MCP tools for CheckIn features.","md",null,{},{"title":41,"icon":44},{"title":317,"description":4301},"VebBLGKpcG_R0yU7gvkyWPak35gHp-rZfFOHlIRoxdM",[4309,4311],{"title":25,"path":26,"stem":27,"description":4310,"icon":28,"children":-1},"Documentation for Belong's second-generation smart contracts related to the check-in system.",{"title":46,"path":47,"stem":48,"description":4312,"icon":49,"children":-1},"End-to-end NFT minting on EVM chains using MCP tools.",1785598152476]