OP Sepolia Testnet

Contract

0x220fBdB6F996827b1Cf12f0C181E8d5e6de3a36F

Overview

ETH Balance

0 ETH

Sponsored

Transaction Hash
Method
Block
From
To
0x7f0f07af138476222024-06-27 14:16:2427 days ago1719497784IN
 Contract Creation
0 ETH0.0107500343571.00552822

Advanced mode:
Parent Transaction Hash Block From To
View All Internal Transactions
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x61b227A3...D8151905e
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
SemaphoreVerifier

Compiler Version
v0.8.23+commit.f704f362

Optimization Enabled:
Yes with 200 runs

Other Settings:
paris EvmVersion

Contract Source Code (Solidity Standard Json-Input format)

File 1 of 2 : SemaphoreVerifier.sol
// SPDX-License-Identifier: MIT
// Part of this file was generated with [snarkJS](https://github.com/iden3/snarkjs).

pragma solidity 0.8.23;

import {MAX_DEPTH} from "./Constants.sol";

contract SemaphoreVerifier {
    // Scalar field size
    uint256 constant r = 21888242871839275222246405745257275088548364400416034343698204186575808495617;
    // Base field size
    uint256 constant q = 21888242871839275222246405745257275088696311157297823662689037894645226208583;

    // Verification Key data
    uint256 constant alphax = 20491192805390485299153009773594534940189261866228447918068658471970481763042;
    uint256 constant alphay = 9383485363053290200918347156157836566562967994039712273449902621266178545958;
    uint256 constant betax1 = 4252822878758300859123897981450591353533073413197771768651442665752259397132;
    uint256 constant betax2 = 6375614351688725206403948262868962793625744043794305715222011528459656738731;
    uint256 constant betay1 = 21847035105528745403288232691147584728191162732299865338377159692350059136679;
    uint256 constant betay2 = 10505242626370262277552901082094356697409835680220590971873171140371331206856;
    uint256 constant gammax1 = 11559732032986387107991004021392285783925812861821192530917403151452391805634;
    uint256 constant gammax2 = 10857046999023057135944570762232829481370756359578518086990519993285655852781;
    uint256 constant gammay1 = 4082367875863433681332203403145435568316851327593401208105741076214120093531;
    uint256 constant gammay2 = 8495653923123431417604973247489272438418190587263600148770280649306958101930;

    // Verification Key points.
    // These values are taken from the verification key json file generated with snarkjs.
    // It allows to use the same verifier to verify proofs for all the tree depths supported by Semaphore.
    uint256[14][MAX_DEPTH] VK_POINTS = [
        [
            6798275159111696631765684932966934480819839778360905827982023140392612472251,
            10049769308514589345710525790497478045162192181874654650612439582831356277192,
            13909893679970909921284721325099295595079958875696358686115736114533495869795,
            9632931161306518428495887250948808623666181422608519935229236995717535313753,
            11373228439083951786763438874368468668602473169346848394664028118071804690004,
            2392728274936215006016716287711141290248196217507457308817981648956555973842,
            21165236263460891597139480651611604342552675916374159149811150532317922022637,
            2205889866435138776852640052657720558691248366998420655585799331913362910317,
            5142950424486523257531761394520431861723450305642839631787321698382624066484,
            15189409525440736600177098582380596261100810741418368942552492853472187151232,
            15166768161845773257369241904008805578918273462394677953758522994830670545180,
            11585842449811129847758954303386730558495513604993443241740010514431580852767,
            18309269743519286170259635930367379586611051469932392196263349325096833776404,
            5169422438906150387687192335052847822734742081564185146089879581734761329500
        ],
        [
            9002589149121965406377790703690701514742110610103894317373190676851261250182,
            19341779283870938325962302230892649885502492339014465701160403382913313018716,
            15384387008815567134216543585911373077215244920196736604974944142355824894376,
            15853924395610285571497184614672056220255220256147800551140212909213761909913,
            9858819933413872566321287453112479619079314892623028633956302548255682218967,
            8978980794620905465584214544974627507731009260328687273037813961789203643024,
            10076358326823042048333094257819800797834453359160913022846795563251044706095,
            19803968301016597767781555029004899114416563609613744105056144083718519453457,
            5163620256392555974431339018883081297271688900512864797552560460039668157036,
            14255936460639291949681319740874191007595598327244735898045668418052144766452,
            14537605621065916653836904827349546258169731169287489407049733321313440129043,
            13697104552179432948127977631695913762483329167428550338828664939969524379194,
            10518837188707767707511411972157042015637825295037224566646839468274503919246,
            20859740531774787409224706405964614133972994888613078458739440328759279998775
        ],
        [
            4892475367240699533498124978912576905968020673574559095879617409161257740280,
            20083606144842666939684160820556467581044745205228415333288523629251382490832,
            19196917991372254097659601920372094664470329157515388592183392963173987434415,
            8880701712891502068342106183752508169009511975869428067925759962432179990770,
            8295798606560676055262757451569098075661634806877203374010954805416034560369,
            17823033916327857017646050340986899797748134226556967395794361949180557598708,
            7863282428525672743372793899382505053760053469668593484933349016990801573594,
            18331488006684435728676028523354067877257617459721620528326034910754871664656,
            3208791308718324440134969236351379590643354353649811828887575168234009128404,
            10257765481441384707633559757593912517257134336953024015057545492286789467798,
            211202131360446365222702196868578991195656024430005775334667458570635430182,
            20847900408506094777967626429608261593000174750467914924458433091857566381170,
            12874163201492094577931796006056258188942453406826318262453514614280169978298,
            6030254908603478785612749007917517401778254879153565233016575793713168729906
        ],
        [
            14709385606134004409926090352432771201334818755294681438762198567603122984956,
            15595111262392352699569329550863719272136417639201948573321210451845475261310,
            14227147558489134328158035447732190048870965571562543433839005727350235629494,
            6894292519900463438264764292659242116361936210107228897203114956615108320465,
            5698226291009392212509456603087660757167892215070748391710298686451794945150,
            6157973895099184288402315817801807399850034827661856468278605062696847353498,
            15141526076642728649535042926649597908183234939224775055067110611584500129001,
            4384760212321739848884344304193577499977798066111221580475869690599633722806,
            4172483707996304656828832165635673373391709578552982633845732115764569616109,
            18703118242791177268087540217341214701751955061868356627779317654228486952499,
            19450300041750343627209216069867232901980973906626832440586455706765725761024,
            16059746288175455494980620176090534670137960271693908437020084988051972211964,
            20545976615820429183066000767405817531114365884543728191728740956241774393365,
            441682222632036954103668474012025602234972690129065917741930205184363335774
        ],
        [
            5475541246268319974306511838266954642349839591742677843373092350878881816036,
            14320850367979727803456370253215537369678224171279198206044992705279862306132,
            14026863062721131266417143383735927929515468275568001741023143022462108466668,
            9695519010485916829174245942670015592311240112874015080337013283624414875322,
            5694780594861626040122686431862072023944220266576706715410778734338641503716,
            8712472904136893949123536631603982882802768648960668490262215595304129180625,
            1995786476093573828491499692373505173525336583145392096683467783999902548268,
            4926925836258627177637371690839427994092983220113811290959738100072290144384,
            3791559722445528845247206264702403543222196830021730221796818130566106209767,
            18417761581887733852915376127193234657558128442956795523445623750943914605716,
            6559711611059474660788123194641390228396298237139470196512451543415077405796,
            10546964127996233691569839986330212916129646278460480030759233831657936468012,
            19639002331873293572459373894235941550278985499149213248754356208213460657162,
            16617740711303077578250556582154106231075844388484693766277639059298286987625
        ],
        [
            10286912080628596477467183526391676938111746098793720613051271594210995874277,
            12402838088924052923512617712407943454558325804407246215860795418264423785092,
            8969827906164370148568535190125332589838680819876134752608330672491611718778,
            18192144771812728760821091791509406004413270888917521896519497516182602851052,
            10137887164821194167739010222610234245229180897989876335252633099720202939025,
            13556557929447859629157159796541922173969485671491640178139584889369979056605,
            18001826336416230108554083436980932740049468855770464827475781769090259294957,
            10997751199060512644156045915284269336171252742084691214654620601348632057908,
            79913969765597476108932900497715672182891152853885723893501837676479334643,
            5339064100797178384601587097901074769415731437415874905101259438574150065725,
            11790468783349396195257730524002236946005794800506042451697489501177528985869,
            2058745275642252757008568790584694831559296102476273845301514491747777902,
            8569838436054970055409792695113682207394942064434307728493565465575383738014,
            13183322615830117090366962414504200812495447396240587506161350006490578304105
        ],
        [
            21294477411884184721419887719040509211791603543588769195913632677965664561521,
            11068844518467094308182673400072406174415035287465774858372276008144890272347,
            3145975317148809397211222308484405528017506805621720865271122352919092734185,
            4898298183000166428070984533097167988044449442228324686951622815588789280020,
            3610567344582501189941093515503625764015617358100951789070992465620388014770,
            10092557495034796324189431780067983533486688638792444215776822879681822814418,
            1266136239205073111432095590744834423814511894190159459963868637184138842722,
            11374864676654295041142699893206238903356920702572230940823052344171478284171,
            7496182320409371534981231046400216671163346135425875811178408606577271153492,
            1462528704706444827904493040179558039394825924259061934534583958249261959624,
            16141406653410498360525438265360373701532563198050057601030953589813051750690,
            14018180053857919258735952789533727227462568550710713906158448711665296451356,
            511374127838749625770334668647416912569313578777284750605965725458096929607,
            17635169227434142694714979150654436187903738366738972509867831826867283825221
        ],
        [
            17019299296527992906342471627956454165356014861255173051509531752951474839628,
            18275029135856620478842184125347270385705018956856636472544734692104668441197,
            18712955702371136698460276131619504667967074451844136203135440318125770689683,
            4726292743397434547486156972449202870187918808626632743805765024906772393932,
            10971489037448711908698715978943908500318707562175731815741960924655210840831,
            6006427343343794957952233726619963086279381477900155964075102505701412817059,
            15106747726469907788692287944434907296109850836405367650663267344226048690859,
            20492702082677255463093066854699770210633096845859381878102473765397334244292,
            20017671604137050517701389289600332952924272776091967565221423262198791114477,
            19092277823744726322414075820335182617528620489612060910384627313255069537857,
            521420364975417235554366424369539937652264103736140177007376087084617840969,
            3996914661098703435279657116324643068485300222550651293916442007463647760470,
            4679024209278631191232555253447082923762821738851347894762954616029136450469,
            8497347026541846312098745702841179850966624542794907236048342704145659678775
        ],
        [
            7070022814268269475674001477040669982274081663112043242616687573179272469763,
            4203949560354147821783061259439508268015232617968894950825877033100175693770,
            15428836885992191488864297196572470385256339610669991675966605773279258629810,
            12940391355331109441147053871885221765801476632578768077585085250842908979972,
            6504013699913689711099075581237522738280971836923813934562267069952131008789,
            9335304366750096675257996749136859439347731736177301019673263812644758419624,
            18674691980838913091347677991332234920479452203295602521958600357998616141596,
            4741568400157063102689633599777211724821079787176561142252991434247861983373,
            6081240166901015395566231760209678592881994305266889564610929100038948121840,
            6726099338457783260423971895907643672217936148382337363967495541886267184664,
            1518231630037540558074208692256894068220282655237665440528391362801123567400,
            6814959623000862963349418000763326032812413890585599160227546882616685479781,
            17691964860627566514162469663546469998385191762053312278765810284413361692706,
            8886638770454932775046812264172460584356331780532116653693013498914944507850
        ],
        [
            9215863273591023879373751614289228209440638027086548351177699133093136218918,
            15029143251469020678417745262015955011761489030158757959406941301509954637253,
            17639902090432855761607212999107125862255080434477939330403550134367931862250,
            17630923485910370531147811073172401806424795286222769017995022586794787691894,
            6051337981942268387146348592741777699916830790184591013400952407193740242722,
            14813309083853385461981331205467429689964041093530055551198131882311452944165,
            13243916879266487104491184915617833718034439141755271499342847081003561471291,
            20559308417239116672012110806712907520758637467837138402161111223933628840592,
            19581439469161095403630005805154174170687505024117879919441181595776240034092,
            17149923765379212333833055145767060687040557826663126725983709990821216291941,
            8848229792169763857187638630433883807573443546037902935946980878173551942434,
            9076584903972238461379608530218901607367189390010139393438137978954314962294,
            2838594782505936821949168913265923356032509180068328675364337511551145041706,
            12082207822506113008552336146445599677710895859529470992436917935385155760011
        ],
        [
            11286999809932675831231635172884104916598198610643895494221292893580015272745,
            13783008611244158112820345862046566925592820181422685465611038024392658912218,
            7399859568003719929092067255297667044787076639314018778324389410794797203822,
            18220331907668058189189266984811818382536030325980319490052254711990106619408,
            7221075042299165070640763584725863160347647659704278782330562384672809305162,
            13601198331885563117630840819920283945716376381432043240564878006092148603574,
            17966363662480886855360210401838893312981368660270687414500495451106355682632,
            9255647376958236127578779968319205385670535134228597865566167852255941456992,
            8203959912436866237932353632392355578980349384400645301966843912631449233592,
            20011411139499301504584228175724552542130947288854633651397978547089429982167,
            1820524505387064465309460998360793499775868154592043137422833944836520606454,
            1959603910351136409471920269505238383870634384371099582856753558856496902512,
            4198694051360120490653446337443734423586650228488283685090646499268901675490,
            21526524841382152147992421724785801038770676270240714297859552516739773492697
        ],
        [
            16377454805970471136556451041642561492050129029468552950239023629414014853926,
            17038353963915800405951415178090940216214909064699790293151814567548494237780,
            3632028168433409518690370660019979191925992823806956511592031439491580827093,
            15490021089663831333876456182365939475639854244939093159179164741657017023319,
            11332498437023113295175458390938230450212523402749978995184951126111215368275,
            7016084735586326731105326496042171157633237979413962565940384222454876829020,
            5013383022618445727921740844767853050438275291216971327851792785650669011741,
            528618354489883480125467549183593651465882051681270315858578353218107644734,
            6932115924239435517832880685428272633342271017032662880345701095160428372300,
            5520601709801507363146277496110244143378961419982733100311341395981490633588,
            434079293392651414251114604226309649137438107252197032381696615267775897288,
            18623332313653972273799518879682220458729835518812577091590130632605360081933,
            16981203870828204556408891045732712151034600645789784935821356391746701607849,
            10839961472824284602079430847341654099878245597092020402049973455392611362164
        ],
        [
            19318612173039398554610402032189036230760569630971013176034600348734573687128,
            10869362019203773549991994466432246818750552482449272815024995819170579818159,
            17376037803297137953593713472693431735691900221654570494069764772063916969267,
            3245151284162480382840661459866398914990218375518126822356780454697379196592,
            10532694937633872732615221785339191399998813277853598590284977223084586265406,
            18569891906743239236657790847950300608514739578359676359176841830736581922673,
            5204330292569275288250153279775499240677764904182920564782936399035494759139,
            14869136923170104943599081137392440247136712268832152014557322866069417673392,
            16609139756845639786750046885223171804867949172280450359139781662901766868597,
            7367747621397764356413880321758620580129087430671669202576071458908338963767,
            18157171842959734937470210968648189999811759058976098804831380331978049484161,
            14612065821098816890897211924691530301447930045836897440401478111363414764157,
            3678851330338811698871212394774190592148694554830208940152772420325429207592,
            1261073646471879421850354957670569129175034189935008550219832398890385831603
        ],
        [
            13337456010890669571312110722110978626654402271645533931088450675631972389174,
            21739762430966591611544841693197130387727042679304816904320680605415377362025,
            21111955068677333960505079108312560231811849538594697119908234179626105686302,
            9392230200497743555544102618287208999941692619434060081126831244370851959140,
            18128060449612109642142496525936963279825759724692188014181733764391545826501,
            6412545369924963430376339636555328095118045874871394681127600419621347748574,
            9178419128141821432265215706509797566711681420667049266964463482093364121974,
            12757958736224258162889762688354106158996770313065275427510212926355720788806,
            21697843782274732041256438596018216848529426578597975296740068185709056950695,
            9641329027897013830146943496858364657344657408442613002988204006109548012670,
            10157462635214395067310714425532743819094195406756516970796212542533337329791,
            6756552332702121619038049584093175387814338143922613739401669728656840170909,
            9276003791014657516094759987195269349958840151064358512535335441437526577719,
            17177335596130235736675313878734353760926293469390853206840228086544227127243
        ],
        [
            10611805799193697089972647133835358446175696630019306104758388585312795475026,
            9765887841111014027207536734081294072212942995633675647422724718381533100171,
            19734635784073407875945934329600179316595807453795254623432046479616133177247,
            12111202900875841332274674234864138665123655274511234144349518743965832241535,
            4691701433964504850819405353426875432448611177084640879664399563684106977201,
            6997026109056305304958456212770850719737661180940807196442278723629505898836,
            21862540916562048400075167198394269266629631981308358022452061330955535980535,
            20203136947717696850833432049217389834551585785220431602620838951128875924332,
            6166688558584392552732686802822787347815166465668907688252438119180905848686,
            1515830657197384709067854833370847128665474205967014377229527531272518040510,
            9783110166666159719262248155776421656845594701278593694743917659000214566949,
            14498343612651837182986000137068086166435021811504906980633109697812438152688,
            7451534988011232583608528483663880320228268776552285912767998924492654022315,
            14389118774297616531519885127100101489071211382178872997387065906551438715617
        ],
        [
            21819764752388384320943920865020023504588699757854723759009625630599418384159,
            9338876125692749169921649753345966897920335121369780024613311788669200836231,
            16193105938174292468402166430441544247332830012383311834096877330373326202912,
            18733835313573560168713238640348200008758608939774980957241614757051426557329,
            17586200399272141670685001491641162521294196727236050999778548238215046166017,
            281329337697491075931159352771449215426528517554332825727307529327678211850,
            13587768455979634277266588196077051473493752291227370910424884771755142551393,
            12132714832736811067697324782216133875324337588127071061942622831539088199516,
            5424242637034241045316293106740200282134858230716641545833281265555664814058,
            4099977807866045222441365441679488428090978308192769063472099506097446172444,
            20991094374514370732056452708323057419772785522538068181419368097559064487764,
            17494034245166301533444525935585362973100718889755879021217726039762737332309,
            21513377844056886482755561165035200163740875639723610667981589251852648290497,
            9065101624205101464784359744884631484276281653365096468139033730232168384170
        ],
        [
            9675068040487058613030479303481110062861018853323992035192122053375288989240,
            3919601513420678474289276072949118564098120747866534224625771548831677958372,
            14608360470284772612816373122857162753416790881336559383898199290740342112532,
            14825744772260021909192492207967364627484904101011554011523154032558083852565,
            20984349344022619370458450579312578055808523135369866643465670885076660164806,
            418264638272070574199167297855020670696708537402223370097894154915338824856,
            21427513166561351336822904548010728579322568176247623689193394481261310743729,
            17218242846472515735641714187716984107651753683015981795233490838798663005098,
            21103921212558832170255972733170723908475938955264614598038505509464559335152,
            10402439116707708662126524824676626448483957064152280120730850351913612702748,
            17902409153345924357919108278878752639341210912451068626743802458423268435162,
            17156991212231172773517848502387153524430619870630373199856683436943875771004,
            10646416238055467241386416360395574804199761155307993872061057698215892822922,
            9567771666871218298332873263950533751702773388778384953522740303362056866931
        ],
        [
            12968340607736823528148475270009593191211106142050392359906510451365260428580,
            2721486373801018323157167210616746825623246218390071226081564411423434451187,
            9200592412239337272867558509657794777460340114124665277681133167901890516146,
            21479491441666028821536714814783435198368229014209693309182760114418462843253,
            271501919920560807144690888833558109667061334163559001274202634455325808979,
            14794481401072540343622539363544947515055760970979041148841701973173121160867,
            16241413887148836912852878034655069636111245133456457252704664072852738020971,
            4616891037946851677520624578755099324972320662835976914889099357030429177473,
            3608927726708508538381205233592212299638621918906539441231152707366248326730,
            20453218571243012416227036764366636460616051978680116597236464784651135817662,
            21663166035926867176571290287267617498655213253914511123571589436615865760399,
            6820544505512911561421102139415733480016159315919965296282806777526762552747,
            1241495087165602740391581058509323079765010896996258108944819093246488858318,
            8124857698166498408579282540958166224847900470279217858870563626568969324640
        ],
        [
            7468504662830152377628803783383953933430030795298938442558418401235422516300,
            4793686881935694857536946556150865385816389634693618604434563516314064685468,
            1544206620168318762839348132398850094597148992890365849594573375964142863145,
            5369558539480434036232750403701436967132622763576337857204435045501308015944,
            12006824962639473646619675695320713559632292589665720351249509600690404062910,
            13276706600670868735848192943347104623934461144298261448190397129714774342173,
            18264760419082021650494509547780257751527429714087988777838583561869870161497,
            16206621246021864196868319303736926716510401444517967423381020552156354105325,
            1711726122386296242553570383485323505029934793448519517467561601648909492476,
            424608816752490157168394436055547341686841853472229245627510525503910492101,
            15415617655332841541287596609058338190575210759281068404604554729079985521497,
            18478290351885872204755929772605378173281926792205081562405194750294909414375,
            1332104917854036528393448566746555920300729960761914526841432630705030394652,
            4875500610885916981959937005615629475085341806101091219174051361012752723259
        ],
        [
            11778504031072617076835666396737479480765353231040635692430530998929741888857,
            21484720459303605302798978604237614472976046584193439253348361650969825748292,
            8499136457565785031004321689745329944377719203840897611578892135704152228750,
            2793941551558768339218839007321603095797268500190811372910811097625523777732,
            1105636691459466684354861615642532458695547504319491829198944901848354002466,
            12426506081436950451531584361567271522327297423292681691257507245865800741808,
            21744454903360799020170340278186587365704908765309976031542813238813825084489,
            11372248299010487313898881702904101518095247949018830132141430386679279269802,
            21355163712164844869530150285034119671090568151924216195709912115114996041497,
            5914269246724008463378274526282819036767424774567321843447592335886063108576,
            11757178117438262829005662514573037965023628709384135799022098340275235227691,
            12324099857879926506512664547633107100872133202763933183968148074461422444945,
            19030167447913285073203707487614824348154933215474799593455300093917690498309,
            10756138991756861027792433599825283466492898786698456971350016301834120358130
        ],
        [
            11875738647114616324350947684061726919561909502972863503130998242120718452173,
            13694249165008464179020280306785446096967664405044044843321440965214796746818,
            19812433478661078453961877947302599509407379278239949313742808880496429684167,
            8478769662157599345424310347901565107922506021173025438525323643981274129672,
            5818698629865247565077962768609742022241069606093835632689725123770908238374,
            10032230959981143208283946841992758493223859540652919348005062379046462012203,
            11522228664628777947230879504212386210128576797203829606594158165912469543023,
            13272285677937114294437486001063514791939240537126238704993220742500063989359,
            8471655692275117723910962427858752915984310638982095612617085072826817856111,
            4389133967757502017802977428616053155133503096651056259096018766643340643444,
            14833683426056097377459837308704611274315245609945506612281500340707955071545,
            21735047966739217600224642583481593664121921255631091231639049365846545339271,
            7278464060898751306868720821317869528105334779561787036194323452374165351865,
            6039871164511288641970658426390882746101314533737081850970345002118723705339
        ],
        [
            19806735015669785931995353978269817545182909058206355431360188275802638341659,
            5812040741672176204747103844640668295298927415072914668459838256763201016256,
            11525530340338830716502860942689345100262306689117330289237484894552808300709,
            17521885357464563233202648521875905290166433650141773052058705408597538338911,
            3562081668776383619644089086241623016377051210290983257053604147762967187048,
            4553365292908760204444921066083280974740968313355524357160308575327815731986,
            9612674806513362915023578944934656419542782185316845654919222232866782079973,
            2856039308549766546769489569358317466998141815061340660074603482372423614916,
            17144423089194150938664044057037571466137059216126551322826296560818480520188,
            7777587218396926909905079292812226413674978129026320051535300425275288555883,
            13348600530906896077492067999286804922009589548263122827764204432718850414877,
            3504452333162729816257605356258771813994176063517472700088677353335099652978,
            9271993074172346116417190887626439840621996383820554885726881799780298924983,
            19415901227000992567609415633317148788461729474913900357094507534384428975572
        ],
        [
            19436706355139059383094509938806698706706766923839248625914995027794208831821,
            10792411997925964958381215817029067479896035855504468308483392531229534219232,
            8072583953344188119277829536748521153437596767795457833432747233169365522749,
            935862788360489051830486282214078237146011038653740178111222389815697167391,
            7693170882539863875701602528545342311434468852163389086171388853464572270633,
            3908303967241020812745991584454294385640133430208468916543029049706292930305,
            14200361022064175872846252914915938901018673724842857113422899538373627654493,
            1887985090111673428008310095306101841985601166058324952496388205310462613383,
            11573157656525163647952907768764423420183350046483835223957092582860133547451,
            9173604865670358445639146193904526160076171763657483567287015999631297551260,
            8178722693917751358075016256308930447648179998714325218415150487090497217243,
            16479808796736995387921450370830080669813035631409450618705788666753274143975,
            20533543720941262967922843401527010251494136604304116450329194230919992456714,
            21738708027542248258448002258354036928076950567990414271901435012481250510866
        ],
        [
            21007636601223260258896743126015285106374704680873221102534543271676455685798,
            13369983427310673379273386726118528512090053533610011895772924489087434499560,
            7437655172123655742476741904638757853205242308502126726581419961030710769332,
            781816009964815727693649369421765727079762601401895827065766198634750193888,
            705729203963801077445366659807159942042515811344776106038944684242779323077,
            8198640129213076396347058165827729949570109420499123900233622693161948493955,
            17567949859381263201697894705370978555666635560577878390586549308344241574720,
            16953629262080155066207979848352607491010984453917718285923448228568338552102,
            16571340903058171078202337397668804978258511905425857983395617262853832093164,
            8200869898550007995855767338315600003217265793696813934354774140864404387075,
            19245130308508431368191001431651810775716975255435369252757393063712397235401,
            19295429264588775090334360243373041256684104838925789132682844828445374541241,
            8244640034562580123950327146088236084020067479873470678893810764954021793820,
            6071779329882466654134795663117452253106971568263743258793999061311754781283
        ],
        [
            7297858819137361266048049960276576061221795813016982777983276508233065012908,
            18289767809318109953604511379563953654879368440278122006476245297734205780313,
            11861017471431365163414128324204576291654501179050818386156071891372931715517,
            4400537004106671968009111731711678778861503186165383927771233149107549932374,
            12211353780794522017482442205152184029453185156252615419956272689806996867522,
            11858951133579915446931127734829983281450719684822534749146423795831786572024,
            18699083494838544659449334875917956720534604312394484877250282743052866694,
            749778821409550859537528691118971534871459292764959826137658158363222566834,
            2909597392070263345393422292436111503720531353687130181723707126400751447693,
            12217177777420376281128847110380606163261839348068116179245513037333903388087,
            6920254660239140919505113388774145966103232605095540610909080767264160069300,
            9696367212878183305057911542364374139977595200010754215085255727487778572962,
            14968323162826489282828176469636555044919206060463682988985750923782404039777,
            11757071201913114247059598621424329188966752420483410843397919162379753756933
        ],
        [
            2149278938146333837762157047865197539626726297462234579786480672038208839960,
            2992162472650247075753290379196863994101122291268065125561265479303189972094,
            28038421244332437252451488699272760491836813993308427474241344447797755331,
            551667036500907650888508201663204030618105224866044580467647054394918324251,
            13128279467779141267539556181844646897000953259054467200148815485804849945589,
            19182542610668848202527767345596590904881280203255613775118909904478382941801,
            12622787765544530515623619382100437898246101834816376149292007743211956407286,
            12570391550772615838335361042568121892906867634448929202232001812492234390257,
            5735316164124731332271878247418185434228086026647700113833855177940542823181,
            9649474108395394754402030685603045386825744478341882098839846461266003368756,
            16190069071551003451113144390700917484497316557096684922619605534369669949534,
            10681321343942329435795471710031949263678373347092770298132700842902513672840,
            13863872929961730606993556753801300020729351590807975827100825368353540990573,
            11931534405924761866343686993715271905704590108489876499851774273982957911423
        ],
        [
            8817602722261405319698829040610455364903580494786394492896940141358443005801,
            11119926988115729035668011565310535780603655775231850120289918739692745155137,
            654240854620562345252945066604315306494281026224973615193213783227252715475,
            1680290803075724940691569649460494417420550431404206498993917267359934429167,
            454088003829163771011170852736324196796734198039551149147118112028488218145,
            19539522144446103612355666512646927077463791742130426065863787086655625062176,
            9677517649080056520842169551325292586844311652869297540972831144430102239541,
            12171721941568335982623293519100425613310698565606469058956892831634461540059,
            15037699242073552386046516617138931456404909452736126928849871092088157606104,
            2403475304123870051310189713205959145472986292698418380091083485671020127630,
            127899593359332180821632671011918317356219506177015610133494845926153175595,
            18684733307620435559282273679266280240730732702398400109727422417551972403102,
            17130978638728591547347686801647449269492555647218567636544356715497286682290,
            14514080855160049012448903996874963632870196574887173768510902774625324658544
        ],
        [
            14337554339543299757023541671562153395916531829217482775164867679838962247573,
            4417305792230285111357011064673221162480286486496089003939989926259051525871,
            18318343953566300700872145919583310314872293221527574189507609074563561808951,
            18102181553730085952093068611215465293662342195186852247233989189686218494670,
            5855924544364003112712450030145237149424995112678688873039358008205969147611,
            15570549396870292677660853760591267003520405786863190676970087082855555878636,
            14821240964410715386910463283745689087244285662861027299124772223732179089302,
            15446473065604291444037235422131957717379131935322344411928007251149202158658,
            586582749011680966506460208877749670972200690716863059163322868400282852300,
            6765443750336920009167305874738739551390685770965140484130502003990191861016,
            11516588183751421185156362409787679404091107770536300994982153030408504091807,
            9422281521245157165519221572217222566067379888854607677340273485846988818889,
            11972785834549950434085949313031360662160524117252689786653411157712853588295,
            1251548247225430075659521219630231228104532865302157324337575228144557232422
        ],
        [
            6800687607590437742793451968857688924532461129043710692695682669594760138183,
            1902628209424530126704615228962823322693910527728191597878269502368972448245,
            17205169168497932228842841751695431463810324846010162985835301764799251782423,
            10034931611814725856775298104026042876081758307779816060207300321750191893265,
            6083168185688688297667869638715177381772180226443830560342282797830104869062,
            926194281246578915103720926341497520082595828680525575284123365838007044551,
            9409122852531801098754556536729028548924539102103420345160677794564194221020,
            20542245913396046089533736519215869670909083018889617904362139603473474391693,
            16873198639240289433836743385124757917190871707428690095953534423420502659893,
            6588241760722454601615602907791715854928448488066342428651422663075975107816,
            19842357292988471204463611705572234531158701273234975255676630503476698710155,
            14693625717448698302951456188963654748379774732579848481403435079923870603157,
            20241432824683494982737262054148903653340519392174437358036298330854555784611,
            5945081237575571782036580504962786649821981413555607621373828735238630355652
        ],
        [
            17652382972559786603081358712023734457988123179346418318061767410638467351353,
            8609310002954675750899296865505156197275068986904937546335682968407062557353,
            20953981342395933310821155979182741101782516022917194002901756056810161577653,
            14010114671133332884183212883039266364632832900771268544464943567097360538030,
            20768578042859563979294333002563065924476840206018011719077318477769915880402,
            2001786654254515377677955109354751436919751171611935922531378122392365944293,
            2298051095199584549599791615579815921675635758326996304424561508720678758962,
            15610877986863106190281569495837881819071964316157027243989237288310023404773,
            21503958051574416294837474683907975773972588915544597427974161349505807601206,
            16176536100016079147853297185775543699660096471098091832015791823791903209774,
            3606739889472294515277184850587920470749374877850756839089044653095424769194,
            14664144387169595605857061033949425545099119522415523292224065111113602111904,
            19699387660834749955063410769084991520255142011324093146157127237115274380578,
            4331670811250121546993058308579590495468093227852181043972677680581964769228
        ],
        [
            11589273064298032074960397339280273111253628710081452605587787277989878262684,
            155887139811629598842391409587306581332057016161277301334614704354501745866,
            21415746312736962630685763964130668169157204911852029590085104536633069699336,
            16121151623164478719433805875174860779395398667644700642305374194327245787952,
            10631178625335401501457304969878852001559776191683447428857609753454937038299,
            11675745006421997275450756626998030285194831397590498324078767720340123952646,
            1759441622054752159360583922123536313476013806215300533220440946452846159126,
            3059329356920789196856680267147718801714171797250645043538678427768342056591,
            1809413652255811383678263677090386586529134039718623375196604927184100692799,
            7533217575609552382385270158875791232330359159976337796303987871112517604844,
            7704646641054955393597890923317433079643657350033170553840404545002600772539,
            19522826015127415513569513500635678903639248861485847260009074714535026926155,
            9396801995941988552875859512580723873116085524385365053682345361229348266222,
            8122885501816310710455960482459104382732335722838233409931476783790044860185
        ],
        [
            14621784478774900045485232005516896073016099759402781623216618339142142444432,
            1432416214818308586539371032122259241440290306461685527056371471791146740623,
            10859741497221216461724796630804714121202257706435373999834867538278407694230,
            11269289100589657711755210305168004136417079020640258348687053385360804643179,
            16304360708182088008313907877667665892976553429106710412375369419780233976442,
            10460941404478613816427928998514834125407907547113907613807191273719986187223,
            20051043271541513424021087402997604909963063035826832503174487686321968961776,
            13432165841378395910455231038520827433713426813680931204822379789609795102053,
            18762866968227660024720719389346562423430884054824643430326826128394380607310,
            17713599719831815773421839749444223685540274101601039260510841144941870261910,
            1883157762896148563929088253054113240995256206097667755269496270918239318411,
            10985354533025938485092599481185428202087973711120611094551172933738810516920,
            670487064764400248463858966885752477833093767820377805346079091001272760417,
            8502840196732756246718058003393498205431869135787193347957619883686320532648
        ]
    ];

    // Memory data
    uint16 constant pVk = 0;
    uint16 constant pPairing = 128;

    uint16 constant pLastMem = 896;

    function verifyProof(
        uint[2] calldata _pA,
        uint[2][2] calldata _pB,
        uint[2] calldata _pC,
        uint[4] calldata _pubSignals,
        uint merkleTreeDepth
    ) external view returns (bool) {
        uint[14] memory _vkPoints = VK_POINTS[merkleTreeDepth - 1];

        assembly {
            function checkField(v) {
                if iszero(lt(v, r)) {
                    mstore(0, 0)
                    return(0, 0x20)
                }
            }

            // G1 function to multiply a G1 value(x,y) to value in an address
            function g1_mulAccC(pR, x, y, s) {
                let success
                let mIn := mload(0x40)
                mstore(mIn, x)
                mstore(add(mIn, 32), y)
                mstore(add(mIn, 64), s)

                success := staticcall(sub(gas(), 2000), 7, mIn, 96, mIn, 64)

                if iszero(success) {
                    mstore(0, 0)
                    return(0, 0x20)
                }

                mstore(add(mIn, 64), mload(pR))
                mstore(add(mIn, 96), mload(add(pR, 32)))

                success := staticcall(sub(gas(), 2000), 6, mIn, 128, pR, 64)

                if iszero(success) {
                    mstore(0, 0)
                    return(0, 0x20)
                }
            }

            function checkPairing(pA, pB, pC, pubSignals, pMem, vkPoints) -> isOk {
                let _pPairing := add(pMem, pPairing)
                let _pVk := add(pMem, pVk)

                mstore(_pVk, mload(add(vkPoints, 128)))
                mstore(add(_pVk, 32), mload(add(vkPoints, 160)))

                // Compute the linear combination vk_x

                g1_mulAccC(_pVk, mload(add(vkPoints, 192)), mload(add(vkPoints, 224)), calldataload(add(pubSignals, 0)))

                g1_mulAccC(
                    _pVk,
                    mload(add(vkPoints, 256)),
                    mload(add(vkPoints, 288)),
                    calldataload(add(pubSignals, 32))
                )

                g1_mulAccC(
                    _pVk,
                    mload(add(vkPoints, 320)),
                    mload(add(vkPoints, 352)),
                    calldataload(add(pubSignals, 64))
                )

                g1_mulAccC(
                    _pVk,
                    mload(add(vkPoints, 384)),
                    mload(add(vkPoints, 416)),
                    calldataload(add(pubSignals, 96))
                )

                // -A
                mstore(_pPairing, calldataload(pA))
                mstore(add(_pPairing, 32), mod(sub(q, calldataload(add(pA, 32))), q))

                // B
                mstore(add(_pPairing, 64), calldataload(pB))
                mstore(add(_pPairing, 96), calldataload(add(pB, 32)))
                mstore(add(_pPairing, 128), calldataload(add(pB, 64)))
                mstore(add(_pPairing, 160), calldataload(add(pB, 96)))

                // alpha1
                mstore(add(_pPairing, 192), alphax)
                mstore(add(_pPairing, 224), alphay)

                // beta2
                mstore(add(_pPairing, 256), betax1)
                mstore(add(_pPairing, 288), betax2)
                mstore(add(_pPairing, 320), betay1)
                mstore(add(_pPairing, 352), betay2)

                // vk_x
                mstore(add(_pPairing, 384), mload(add(pMem, pVk)))
                mstore(add(_pPairing, 416), mload(add(pMem, add(pVk, 32))))

                // gamma2
                mstore(add(_pPairing, 448), gammax1)
                mstore(add(_pPairing, 480), gammax2)
                mstore(add(_pPairing, 512), gammay1)
                mstore(add(_pPairing, 544), gammay2)

                // C
                mstore(add(_pPairing, 576), calldataload(pC))
                mstore(add(_pPairing, 608), calldataload(add(pC, 32)))

                // delta2
                mstore(add(_pPairing, 640), mload(vkPoints))
                mstore(add(_pPairing, 672), mload(add(vkPoints, 32)))
                mstore(add(_pPairing, 704), mload(add(vkPoints, 64)))
                mstore(add(_pPairing, 736), mload(add(vkPoints, 96)))

                let success := staticcall(sub(gas(), 2000), 8, _pPairing, 768, _pPairing, 0x20)

                isOk := and(success, mload(_pPairing))
            }

            let pMem := mload(0x40)
            mstore(0x40, add(pMem, pLastMem))

            // Validate that all evaluations ∈ F

            checkField(calldataload(add(_pubSignals, 0)))

            checkField(calldataload(add(_pubSignals, 32)))

            checkField(calldataload(add(_pubSignals, 64)))

            checkField(calldataload(add(_pubSignals, 96)))

            checkField(calldataload(add(_pubSignals, 128)))

            // Validate all evaluations
            let isValid := checkPairing(_pA, _pB, _pC, _pubSignals, pMem, _vkPoints)

            mstore(0, isValid)
            return(0, 0x20)
        }
    }
}

File 2 of 2 : Constants.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.23;

/// @dev Minimum supported tree depth.
uint8 constant MIN_DEPTH = 1;

/// @dev Maximum supported tree depth.
uint8 constant MAX_DEPTH = 32;

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "evmVersion": "paris",
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract ABI

[{"inputs":[{"internalType":"uint256[2]","name":"_pA","type":"uint256[2]"},{"internalType":"uint256[2][2]","name":"_pB","type":"uint256[2][2]"},{"internalType":"uint256[2]","name":"_pC","type":"uint256[2]"},{"internalType":"uint256[4]","name":"_pubSignals","type":"uint256[4]"},{"internalType":"uint256","name":"merkleTreeDepth","type":"uint256"}],"name":"verifyProof","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}]

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063a23f019914610030575b600080fd5b61004361003e3660046104ca565b610057565b604051901515815260200160405180910390f35b6000808061006660018561052d565b602081106100765761007661054e565b604080516101c081019182905292600e92830201919082845b81548152602001906001019080831161008f575050505050905061043c565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000181106100df576000805260206000f35b50565b600060405183815284602082015285604082015260408160608360076107d05a03fa915081610115576000805260206000f35b825160408201526020830151606082015260408360808360066107d05a03fa91505080610146576000805260206000f35b5050505050565b600060808601600087016080890151815260a08901516020820152610180600088013560e08b015160c08c0151846100e2565b61019a60208801356101208b01516101008c0151846100e2565b6101b460408801356101608b01516101408c0151846100e2565b6101ce60608801356101a08b01516101808c0151846100e2565b50823581527f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4760208401357f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4703066020820152833560408201526020840135606082015260408401356080820152606084013560a08201527f2d4d9aa7e302d9df41749d5507949d05dbea33fbb16c643b22f599a2be6df2e260c08201527f14bedd503c37ceb061d8ec60209fe345ce89830a19230301f076caff004d192660e08201527f0967032fcbf776d1afc985f88877f182d38480a653f2decaa9794cbc3bf3060c6101008201527f0e187847ad4c798374d0d6732bf501847dd68bc0e071241e0213bc7fc13db7ab6101208201527f304cfbd1e08a704a99f5e847d93f8c3caafddec46b7a0d379da69a4d112346a76101408201527f1739c1b1a457a8c7313123d24d2f9192f896b7c63eea05a9d57f06547ad0cec8610160820152600087015161018082015260206000018701516101a08201527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c26101c08201527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6101e08201527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b6102008201527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa61022082015284356102408201526020850135610260820152875161028082015260208801516102a082015260408801516102c082015260608801516102e08201526020816103008360086107d05a03fa905116979650505050505050565b604051610380810160405261045460008601356100ae565b61046160208601356100ae565b61046e60408601356100ae565b61047b60608601356100ae565b61048860808601356100ae565b610496828287898b8d61014d565b90508060005260206000f35b80604081018310156104b357600080fd5b92915050565b80608081018310156104b357600080fd5b60008060008060006101a086880312156104e357600080fd5b6104ed87876104a2565b94506104fc87604088016104b9565b935061050b8760c088016104a2565b925061051b8761010088016104b9565b94979396509194610180013592915050565b818103818111156104b357634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fdfea2646970667358221220a20931c805d6b6596609ce172dc78d1cab49f7e2e44a0aa5695f94bf36ec7a3864736f6c63430008170033

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.