reputation-badge-1724718015746

SP37MPXHEESNHHHXF5PV3353W7F9NEZ4T13GZWJD4

Source Code

;; title: template-batch-endorsements

;; traits
;;
(impl-trait 'SP2PABAF9FTAJYNFZH93XENAJ8FVY99RRM50D2JG9.nft-trait.nft-trait)

;; token definitions
;; 
;; (VAR) based on title of collection
(define-non-fungible-token endorsement uint)
;; constants
;;
;; (VAR) changes based on the number of recipients
(define-constant TOTAL u82)
(define-constant ERROR-NOT-IMPLEMENTED u1)
(define-constant ERROR-UNAUTHORIZED u1000)
(define-constant ERROR-ALREADY-MINTED u1001)

;; (VAR) changes based on the collection ipfs hash
(define-constant IPFS-ROOT "ipfs://ipfs/QmYw1jdePorFZtKpqfmvK258gE9fV1kRxPymDEBRY45YCA/{id}.json")


;; data vars
;;
(define-data-var last-token-id uint u0)
;; data maps
;;


;; public functions
;;
(define-private (mint (address principal))
    (let (
        (token-id (+ u1 (var-get last-token-id)))
    ) 
    (var-set last-token-id token-id)
    (nft-mint? endorsement token-id address)))

;; Non transferrable
(define-public (transfer (id uint) (sender principal) (recipient principal)) 
    (err ERROR-NOT-IMPLEMENTED))

(define-public (burn (id uint)) 
    (let (
        (owner (unwrap! (nft-get-owner? endorsement id) (err ERROR-UNAUTHORIZED)))
    ) 
    (asserts! (is-eq owner tx-sender) (err ERROR-UNAUTHORIZED))
    (nft-burn? endorsement id owner)))
;; read only functions
;;

;; this would be constant to mark collection as preminted
(define-read-only (get-last-token-id) 
    (ok TOTAL))

(define-read-only (get-owner (id uint))
    (ok (nft-get-owner? endorsement id)))

(define-read-only (get-token-uri (token-id uint))
    (ok (some IPFS-ROOT)))

;;; mint calls here
(mint 'SP10ECZKBTMVGV9Z41A9QQP80TQFZK2QRSV5BWNMX)
(mint 'SP135Q4A1W9HFT0ZW2VC4F0ER32EJAFX5ZME05JYW)
(mint 'SP177JV93RYPWWTX5F0MK9NVQ3YTXB4YQZGBPP6H4)
(mint 'SP17W459944DRA4FSRE1DYTHTVZ6620WS8F24NXR9)
(mint 'SP19NPW1QYFAVJ4DFY9C29X9MMVD1RA3SGK033EZ8)
(mint 'SP1A159HRP8AJF7EMSGBGZKAEXJ4DAZEV5P9HV1V2)
(mint 'SP1AQDVJF18XEFVXMWTRAW9TQ0N2DCN0178FKW03R)
(mint 'SP1B46TPZD8Y3ETHGZYJAPHD9GHJK81K08WRB127X)
(mint 'SP1B91MKXWMBQP50YWCNR08XZKBJJVSJRHB72SBX)
(mint 'SP1CHWS7TDP36PPVWV8E4Q8QV7S8SZPYYWW9N0ZW8)
(mint 'SP1EJFT15Y3AJWW2BK9CRWKR1BA8XETSQ9HXYZKJH)
(mint 'SP1ERZZ0G7KERNCXQDJF4GTHCF8DGZB8001YCNPQG)
(mint 'SP1ET2F3ARW365ADA90NPV9SJHEBWAVVNNHQGT1PH)
(mint 'SP1HFXD9SCN1DNSA17CSZ5559X0AETD91BY7M03YY)
(mint 'SP1KC8SY7KD6G55WVVC24GE4PH5NRNHSZK45ND0CH)
(mint 'SP1KD2BS98HCAEZQB3A4AXNS2KNAFTXF2CTJBQWF6)
(mint 'SP1KGW54TNSVNE19ANQ12YQ5W0RKRHN5C80MJEJE7)
(mint 'SP1NNDWY878ZWYXB9DB4D6WZ0H5886CT6CHZ72JSZ)
(mint 'SP1T07GK9H4M0WP4N1DSSA7NJ7GNTQZ0GBZM0GAR2)
(mint 'SP1V6DPH7NA6Q821GD441Z6JZFP5Y9V07C1JDNJ1R)
(mint 'SP1VFDQK6N41TJN2433SYD6XJ2M8DVT65ZQW5YQD7)
(mint 'SP1WTYJ55A644A73EQ88NMKSV1QVD9GSR35KKK9XW)
(mint 'SP1XMT07KNFQN2E0SB6FBD8X9Z423DJ4RJ9RAMQC3)
(mint 'SP1XTSX9D5ZQ3SBE79N4TZVEJ1CV18KG8R7HT2BSX)
(mint 'SP1YVF9EWSK6HM0JZR4B3KCM7V3NKVE18VVNFSQV5)
(mint 'SP1Z2AGR9FJ8HTA7QDE1V3MNNCBG5Y3FFW5ME3H8Z)
(mint 'SP238X3JD22HJBMWR8E7CKTF4JCBQ73BG9YS1DBH8)
(mint 'SP23S4KHTBQADHS6Q0EQVHTC7Q9YRGBSD0F3X6QY)
(mint 'SP25DP4A9QDM42KC40EXTYQPMQCT1P0R5243GWEGS)
(mint 'SP25RK61425QBXW105M85SY22WJ46T6T6G5D1XJ9)
(mint 'SP28NCDY6V4T7NJBMYGTJ55NHMXMC0GG806JW1ZTB)
(mint 'SP2BDDZSZ6DAKGEPBJ5FM3EM8MJEDHTX2FPA0E5MA)
(mint 'SP2CQAFN7HCV0F760PYHADRB5M7EQ4CWTJ53VHVG3)
(mint 'SP2CYW85YW03WX0XMSFGMJ3HZQ30X8NKFA6TXVNRX)
(mint 'SP2DCFHTZSY5YKSRHC7YRD1AD6HRA9CBZENCM4NGV)
(mint 'SP2HDF5A0ZD2CG2SEE3NSVE9TCPFJ3Y14BQ8W997Z)
(mint 'SP2J2SF7X6CT5FEB9ZH7C3GNZNBMG4M5HHHZ41D2F)
(mint 'SP2JVB44M39020KH1RX84JCXC3PZA58VDZ7ZK35GK)
(mint 'SP2KZ24AM4X9HGTG8314MS4VSY1CVAFH0G1KBZZ1D)
(mint 'SP2N7VSJ2DT9NY438G3VDWYFP3WWBKYN46GQPHH6T)
(mint 'SP2RNHHQDTHGHPEVX83291K4AQZVGWEJ7WCQQDA9R)
(mint 'SP2S3K00J75V56JHHRCWF3BN42ZJA92SAPMW4KFBR)
(mint 'SP2W4D4JR9NGV8XPFHYK74C2QW96A6AVX77EA7HBR)
(mint 'SP2X0XGK0K2WSZP387EJ1H3XQP4JKT282YBD70GZK)
(mint 'SP2Z2CBMGWB9MQZAF5Z8X56KS69XRV3SJF4WKJ7J9)
(mint 'SP2ZNGJ85ENDY6QRHQ5P2D4FXKGZWCKTB2T0Z55KS)
(mint 'SP2ZXDBYT1RSP98ZZXXRDGKX3TMXCCCGERNBD5YMY)
(mint 'SP31M4GNKZBE8170FK77B79K10SMJ1TY4WXRWBKCH)
(mint 'SP3273YEPG4QZWX0ENQ98FBT1N2Y06XW820STP7NN)
(mint 'SP33BMBB3E5EZMRM598MA23A4YGWJG7PXSTXPDAC3)
(mint 'SP355T5JC0NXYDCC2Q5YMPHKDMDXF3VENZ2PP21HT)
(mint 'SP3C58KMV1WARKGPX8A59C9Z2JHXMNG7GSWVEEA9Q)
(mint 'SP3D1WBA1P9JR8DTJY8QM2XXRQR99Q5EN8E8Y43C)
(mint 'SP3KVRE3RDYYSJ3JDGXKA0K15CC4JEA2ZGX4TJ5EC)
(mint 'SP3M3Y5W82QV4S05CNMWXGKZER5YEVSRD7JXVWBBZ)
(mint 'SP3MYZ2T7JA4GYBYMSZ4ZJYEYTZ69JDD0M7W4BQ8V)
(mint 'SP3NJ4BR35W8002J0PWZY0QNG9FTYZ32H38Z0PV17)
(mint 'SP3NRG8DMXEPD4TMDX18PZM9PCPEH36QEZ83QDZPT)
(mint 'SP3VMAHTFVN9ED5FB073MK1B8MGNCZW5VCEHFFD7C)
(mint 'SP3VQM3J443GDF080BB1HKMPXXRX01BBHDAJ0XTF9)
(mint 'SP3WAAYXPC6WZNEC7SHGR36D32RJPZVXRR1BG0QSY)
(mint 'SP870RFTKDBMC8WJ9CE89ZKVEJBGF57ZAV3T87Z1)
(mint 'SPBC5CXC2KMBYEQJX5ANRZ7JBYQJZZQ8JN2HZ20X)
(mint 'SPBKC1NGB52EMR5HWXB3P615XKTHD64TXY3D6J1G)
(mint 'SPCRCFRZKWQJMFXEMVFEJSBD8PHSY9DE5H945TMN)
(mint 'SPDW0AJ14R5PDRND2W36NK0J1RKZHP60EP6JSWFW)
(mint 'SPE68951PZPW5ADRH23BAQ5E0P0HXM8XTH2AHGKB)
(mint 'SPEW42NMB4F832CDN4GDFQV8D7JD33B22VRFF7WY)
(mint 'SPEXAF3YRNCR01Z4DFZ567Z0FB4RKPHM88DMKJSQ)
(mint 'SPG34S51QV6YTZQGVRPZY9323MY4BTCFAFP1HR25)
(mint 'SPGCGE542GF02V9XZHW6F5F4NMVX7TKH2GYYBV0H)
(mint 'SPGKBV2Z2RPQD8VHQ713WA7EYZV9PNQR5DRCNHW9)
(mint 'SPGNRR2GG22EKH62N8DCW58YB4D1PVK8TP0KQTHD)
(mint 'SPJNGNX5RBR9RDWWANG1AJ6A5RJKXMY32M0YK4SD)
(mint 'SPKZT8CFR5DNTKDR2BCWQA9WR32GP3GT0CPV8V24)
(mint 'SPS4BTVJZFEP5GRST8VX64QR2FAYGR222BSFM7X4)
(mint 'SPSQ4W56BY5XKZR8YJMXYP1CKJ64TT4CQ04GFQT8)
(mint 'SPSV8PA2RQEXFX85H0C99C5E81B8PR3QYEZRXDEJ)
(mint 'SPTGQJPEZKS9S5SWQBQJRE6P5CKGSGBY1EM1E40)
(mint 'SPWRJ6AQRYR8E68GS8XP3TGM33FBA898E08PM1MD)
(mint 'SPWRJV2484ZDBW36GY2FHPEAX1FX6ERMVRZZ6DJN)
(mint 'SPXYRKWDFKBZN3GTS3W9A1MQ0PFTFAHZGGV9V1MJ)

Functions (6)

FunctionAccessArgs
mintprivateaddress: principal
transferpublicid: uint, sender: principal, recipient: principal
burnpublicid: uint
get-last-token-idread-only
get-ownerread-onlyid: uint
get-token-uriread-onlytoken-id: uint