En NFT-handelsbot trenger en korrekt kontomodell før den trenger en større overvåkingsliste for samlinger. Kontoen kan inneholde eide gjenstander, signerte kjøpstilbud, aktive oppføringer og transaksjoner der utfallet fortsatt er usikkert. Oppføringene beskriver forskjellige økonomiske tilstander. Å kombinere dem til ett beholdningstall gjør senere beslutninger upålitelige.
En utforming som tar hensyn til beholdningen, knytter hver tiltenkte handel til det kontoen fortsatt kan anskaffe eller selge, og deretter til aktivaendringene som faktisk skjer. Den bevarer nøyaktig gjenstandsidentitet, mengde og kostnad gjennom overgangene. En ny markedsmulighet vurderes mot denne gjeldende oppføringen fremfor en saldo kopiert fra en tidligere skjerm.
Eksemplene bruker oppdiktede samlinger, ETH-beløp og antatte kostnader. De beskriver en arbeidsflyt fremfor en implementasjon av en bestemt protokoll. Faktiske tokenstandarder, betalingsaktiva og markedsplassruter bestemmer bevisene og tillatelsene som trengs for hver handling.
Gi beholdningen i NFT-handelsboten en presis betydning
Beholdningen i en NFT-handelsbot er samlingen av aktiva som faktisk holdes etter kontoens valgte kontrollregler. Den er ikke en liste over gjenstander programvaren ønsker å kjøpe, et sett signerte tilbud eller en gruppe NFT-er nylig vist i et markedsplassøk.
Oppføringen bør identifisere kjede, aktivaidentifikator, standard, mengde og kontoen som har kontroll. Et visningsnavn kan hjelpe en person med å kjenne igjen gjenstanden, men beholdningslogikken bør bruke identifikatorer som skiller ett krav fra et annet. Liknende kunstverk gjør ikke to tokener utbyttbare.
Knytt til transaksjonen eller andre bevis som fastslo beholdningen. Behold også tidspunktet og kjedetilstanden da den ble kontrollert. Dersom en ekstern lommebokhandling endrer eierskap, må beholdningen gjenspeile handlingen selv om boten ikke startet den.
Definisjonen gir systemet et stabilt spørsmål å besvare: Hva kan kontoen vise at den holder nå? Svaret kan inkludere uavklarte avvik fremfor å late som en forsinket markedsplassindeks og en fersk eierskapsobservasjon nødvendigvis stemmer overens.
Hold ordrer i en egen oppføring
En ordre beskriver vilkår som en handel kan skje under. Å signere en ordre er ikke det samme som å fullføre aktivautvekslingen. OpenSeas Seaport-oversikt introduserer skillet mellom gjenstandene som tilbys og vederlaget som kreves tilbake for støttede EVM-transaksjoner.
For et kjøpstilbud kan kontoen skape en mulig fremtidig anskaffelse uten å motta NFT-en umiddelbart. For en oppføring kan kontoen forbli eier mens den uttrykker salgsvilje. Beholdnings- og ordreoppføringene trenger derfor egne tilstander og en tydelig forbindelse.
Sporing av signerte NFT-ordrer bør bevare ordreidentitet, gjeldende kjede og protokoll, vilkår, utløp og relevante statusbevis. En lokal merkelapp som lagt ut bør beskrive det applikasjonen faktisk vet, fremfor å antyde at ordren forblir gjennomførbar til nominelt utløp.
Veiledningen om en OpenSea-bot forklarer tillatelser og markedsplassdata mer detaljert. Skillet betyr noe her fordi lesing av en ordre, opprettelse av en signatur og fullføring av en overføring er forskjellige evner. En kontomodell bør ikke utlede den ene fra at en annen finnes.
Skill anskaffelseskapasitet fra lommeboksaldo
En synlig lommeboksaldo beskriver ikke enhver potensiell forpliktelse. Flere kjøpstilbud kan trekke på samme betalingsaktivum, mens ventende transaksjoner allerede kan bruke midler siste lokale saldo ikke har avstemt. Handelsregler trenger egen tildelingsberegning.
Anta at den oppdiktede kontoen tillater 2,5 ETH i samlingseksponering målt ved anskaffelseskostnader og reserverte nye kjøp. Den holder tre gjenstander anskaffet for 0,3, 0,45 og 0,6 ETH, totalt 1,35 ETH. To mulige kjøp reserverer ytterligere 0,4 ETH hver.
Regelen teller dermed 2,15 ETH i forpliktelser og etterlater 0,35 ETH. Et nytt forslag som krever 0,38 ETH, passer ikke. Konklusjonen følger valgte eksponeringsregler selv om lommeboken har nok likvide aktiva til å sende inn transaksjonen.
Eksemplet er bevisst enkelt. Andre regler kan bruke stressverdier eller separate grenser for gjenstander og samling. Uansett mål skal det oppgis uttrykkelig og samme økonomiske forpliktelse telles én gang. En uforklart total er vanskelig å gjennomgå når saldoer, tilbud og beholdninger endres sammen.
Reserver ressurser før konkurrerende oppgaver kan bruke dem
To deler av boten kan undersøke samme gjenværende kapasitet og hver konkludere med at et kjøp passer. Dersom de godkjenner uavhengig, kan samlede handlinger overstige grensen. Reservasjonstrinnet bør derfor samordne beslutninger før noen av oppgavene skaper en ny forpliktelse.
I den oppdiktede kontoen kan to samtidige forslag på 0,25 ETH hver ikke begge bruke samme ramme på 0,35 ETH. Første aksepterte reservasjon etterlater 0,10 ETH etter regelen. Den andre bør vurderes på nytt mot den oppdaterte tilstanden.
Bevar reservasjonens eier og formål. Den bør vise til en økonomisk hensikt, som anskaffelse av en bestemt gjenstand, og forbli knyttet til senere ordre eller transaksjon. En generell subtraksjon uten referanse kan bli stående fast eller frigjøres to ganger.
Dette er et krav om kontokonsistens fremfor en prognose for markedsforhold. Selv en perfekt utvalgsmodell kan skape uønsket eksponering dersom forslagene deler budsjett uten samordning. Reservasjonsoppføringen gjør samspillet synlig før faktiske kjøp kommer.
Følg overlappende tilbud uten å anta at de utelukker hverandre
En konto kan ha gjenstands-, egenskaps- eller samlingstilbud der kvalifikasjonssettene overlapper. Systemet bør forstå hvilke gjenstander som kan oppfylle hvert tilbud, og hvor mange anskaffelser som fortsatt er mulige. Et felles tema gjør ikke separat signerte forpliktelser gjensidig utelukkende.
Et gjenstandsspesifikt tilbud og et bredt samlingstilbud kan for eksempel begge være aktive. At én gjenstand kan oppfylle begge, fastslår ikke at bare én anskaffelse noen gang kan skje i hele samlingen. En annen kvalifisert innehaver kan akseptere det brede tilbudet.
Beholdningsmodellen må knytte tilbudene til mengde, finansiering og rutebetydning. Unngå å beregne eksponering bare ved å telle forskjellige samlingsnavn eller viste ordrerader. Relevant spørsmål er hva kontoen kan anskaffe dersom forenlige ordrer utføres.
Endringer i ett tilbud bør ikke i det stille fjerne et annet fra oppføringen. Dersom operatøren mener å erstatte, fastslå hvordan den gamle instruksjonen blir uten virkning etter gjeldende regler, og bevar gjenværende usikkerhet. En erstatningsmerkelapp i applikasjonen skriver ikke om markedsplassens tilstand.
Hold oppføringer atskilt fra tilgjengelig beholdning
En oppført gjenstand kan forbli eid mens den er bundet til et mulig salg. Boten kan også måtte hindre en annen intern oppgave i å planlegge en uforenlig handling med samme gjenstand. Det er en lokal samordningsregel, forskjellig fra kjedens eierskapsoppføring.
Dersom én NFT er oppført gjennom to forenlige ruter, kan et salg gjennom én påvirke gyldigheten til den andre. Boten bør undersøke og avstemme begge oppføringer når eierskap endres. Den bør ikke anta at alle eksterne grensesnitt umiddelbart fjerner foreldede oppføringer.
En senere gjenanskaffelse av samme identifikator gir enda en grunn til å undersøke gamle godkjenninger. Om en tidligere ordre kan bli relevant igjen, avhenger av faktiske vilkår og ugyldiggjøringstilstand. Å behandle en gjenstand som permanent trygg fra gamle instruksjoner bare fordi den forlot lommeboken én gang, er en udokumentert snarvei.
En nyttig utforming holder en liste over aktive eller uavklarte salgsforpliktelser knyttet til hver gjenstand. Listen hjelper operatøren med å forstå hva som fortsatt kan skje, og hva som bør avsluttes når handelsplanen endres.
Tolk kansellering etter den faktiske mekanismen
Kansellering er en tilstandsovergang som trenger bevis. En lokal forespørsel, et markedsplassvar og en bekreftet ugyldiggjøring på kjeden kan gi forskjellige garantier. Boten bør registrere hvilken mekanisme som gjaldt, og hvilken usikkerhet som gjenstår.
OpenSeas referanse for ordrekansellering utenfor kjeden tar uttrykkelige forbehold om kansellering når oppfyllelsesgodkjenning allerede er gitt. Det er en grunn til å undersøke gjeldende rutebetydning fremfor å erklære hvert vellykket API-svar som en ubetinget slutt på all mulig utførelse.
Dersom et salg eller kjøp fullføres under kanselleringsprosessen, må beholdningen registrere resultatet. Operatørens hensikt om å stoppe sletter ikke overføringen. Enhver uutført eller ellers gjenstående forpliktelse bør så håndteres etter ordrens faktiske struktur.
Frigjør lokale reservasjoner bare når relevante bevis støtter frigjøringen. En midlertidig forsinkelse i tilgjengelig kapasitet er å foretrekke fremfor å fortelle en annen oppgave at midler er frie mens den tidligere forpliktelsen fortsatt kan utføres.
Gi ventende transaksjoner en egen tilstand
En transaksjon kan være innsendt, observert som ventende, inkludert, mislykket eller ennå uavklart fra applikasjonens perspektiv. Merkingen bør følge tilgjengelige kjedebevis og kontoens bekreftelsesregler fremfor en timer valgt for å få grensesnittet til å virke besluttsomt.
Den ventende oppføringen beholder opprinnelig hensikt, transaksjonsreferanse, forventede aktiva og reserverte ressurser. Dersom svaret går tapt, gir oppføringen utgangspunktet for gjenoppretting. En ny prosess bør ikke måtte gjette hvilket kjøp forrige prosess forsøkte.
Ikke opprett en andre anskaffelse bare fordi første forsøk mangler et bekvemt resultat. Atferd ved erstatning og nye forsøk må følge kjedens transaksjonsbetydninger. En ny økonomisk instruksjon er forskjellig fra ny innsending eller undersøkelse av en eksisterende.
Veiledningen om en automatisert NFT-bot utvikler operatørinngrep og grenser for uovervåket drift. For beholdning er hovedpoenget at usikkerhet forblir en uttrykkelig kontotilstand med ressurskonsekvens til den er avklart.
Oppdater beholdninger fra kontrollerte aktivaendringer
Når en transaksjon fullføres etter valgte kontrollregler, knytt faktiske aktivaendringer til tiltenkt handel. Bekreft gjenstand, mengde, mottaker og betaling fremfor å stole bare på en generell suksessindikator.
En vellykket transaksjon som utfører en annen tillatt handling, bør ikke automatisk skape den tiltenkte NFT-beholdningen i regnskapet. Systemet trenger bevis på den bestemte overføringen eller saldoendringen. Skillet er særlig nyttig når en transaksjon inneholder flere operasjoner.
Gjentatte observasjoner av samme økonomiske overføring bør styrke eller oppdatere bevis uten å duplisere beholdning. Lagre en stabil identitet for hendelsen eller transaksjonsvirkningen og følg relevant protokolls revisjonsbetydning. Antall ankomne meldinger er ikke en aktivamengde.
Dersom forventet gjenstand aldri vises, registrer avviket. Ikke fabriker en beholdningsrad for å få forslaget til å virke fullført. Poenget med avstemming er å sammenligne hensikt med virkelighet, inkludert tilfeller der de avviker.
Bevar mengder for NFT-er med flere enheter
Ikke alle NFT-beholdninger beskrives tilstrekkelig av én eier og én unik enhet. Noen standarder representerer flere enheter under en tokenidentifikator. Kontomodellen trenger korrekt mengdebetydning før den kan beregne tilgjengelig beholdning eller salg.
Anta at en oppdiktet anskaffelse kjøper fem enheter til 0,08 ETH hver, med en samlet tilleggskostnad på 0,01 ETH. Total anskaffelseskostnad er 0,41 ETH. Med enkel lik fordeling bærer hver enhet 0,082 ETH i kostnad.
Dersom to enheter senere selges for 0,11 ETH hver, er bruttoprovenyet 0,22 ETH. Med et antatt samlet utgangsgebyr på 0,006 ETH er nettoprovenyet 0,214 ETH. Tilordnet anskaffelseskostnad for enhetene er 0,164 ETH, noe som etterlater en realisert gevinst på 0,05 ETH.
Tre enheter gjenstår med 0,246 ETH i tilordnet kostnad. Deres fremtidige resultat er uavklart. At tokenidentifikatoren fortsatt er i lommeboken, betyr ikke at de opprinnelige fem enhetene gjenstår, og delsalget lukker ikke hele posisjonen.
Bygg et regnskap for NFT-anskaffelseskostnad
Et regnskap for NFT-anskaffelseskostnad knytter hver beholdning til vederlaget som faktisk ble betalt og relevante transaksjonsutgifter. Anslag kan støtte godkjenning, men faktiske beløp hører hjemme i den endelige regnskapsoppføringen. Bevar begge slik at forskjeller kan forklares.
Kostnader kan være i forskjellige aktiva. Lagre opprinnelig valuta og beløp, og bruk deretter en uttrykkelig omregningsmetode for en felles rapporteringsenhet. En endring i ETHs dollarpris bør ikke endre antall ETH registrert som brukt på opprinnelig kjøp.
Fordel felles kostnader konsekvent når én transaksjon anskaffer flere gjenstander. Lik fordeling kan være forståelig i et opplæringseksempel, mens en annen metode kan passe et bestemt regnskapsformål bedre. Oppgi metoden fremfor å tillate den fordelingen som gir gunstigst avkastning per gjenstand.
Skaperbetalinger og markedsplassgebyrer krever samme varsomhet. Dersom de allerede er innebygd i samlet vederlag eller nettoproveny, trekk dem ikke fra igjen. Regnskapet bør beskrive faktisk kontantbevegelse fremfor å samle overlappende merkelapper for samme utgift.
Skill interne overføringer fra kjøp og salg
Å flytte en NFT mellom kontoer kontrollert av samme operatør kan endre hvor gjenstanden holdes uten å skape salgsproveny. En overføring inn i den overvåkede lommeboken kan også komme uten nok bevis til å fastslå historisk kostnad.
Registrer bevegelsen og dens kjente forhold til kontoen. Ikke tilordne nullkostnad bare fordi ingen betaling fulgte observert overføring. Ukjent kostnadsgrunnlag bør forbli ukjent til støttende oppføringer fastslår det, med forklaring i rapporter om hvordan den manglende verdien påvirker totaler.
Tilsvarende er en utgående overføring ikke automatisk et lønnsomt salg eller et tap. Den kan være flytting for oppbevaring, en gave eller en annen operasjon. Klassifisering bør følge bevis om vederlag og formål fremfor retningen på NFT-overføringen alene.
Dette hindrer at aktivitetsantall forvrenger resultater. En travel lommebok kan lage mange overføringer og gjøre få reelle kjøp eller salg. Beholdningsbevegelse og økonomisk resultat knyttes bare sammen når relevant transaksjonskontekst støtter forbindelsen.
Bevar historikken når eierskap forlater og kommer tilbake
Samme NFT-identifikator kan passere gjennom kontoen mer enn én gang. Hver anskaffelse har eget tidspunkt, kostnad og handelstese. Å gjenbruke én rad ved å overskrive tidligere kostnad ville slette resultatet av første beholdningsperiode.
Opprett en egen posisjonsepisode eller en annen tydelig historisk struktur. Et salg lukker relevant mengde i den tidligere episoden; et senere kjøp begynner en ny. Gjenstandsidentiteten forblir den samme mens den økonomiske historikken får et nytt kapittel.
Dette betyr noe ved vurdering av strategiens beholdningsperiode og omsetning. Ett gjeldende eierskapsflagg kan ikke vise hvor mye kapital som var bundet gjennom gjentatte besøk, eller om et senere kjøp var dyrere enn det tidligere salget.
Bevaring av tidligere oppføring hjelper også med å undersøke gamle ordrer. En tilbakevendende gjenstand bør kontrolleres mot uavklarte godkjenninger, ikke behandles som et helt ukjent aktivum uten tidligere tilknyttede forpliktelser.
Avstem etter manuelle handlinger og omstarter
En bot er sjelden eneste mulige kilde til kontoaktivitet. Eieren kan bruke et annet grensesnitt, overføre en gjenstand eller akseptere et tilbud manuelt. Beholdningsprosessen må ta inn endringene uten å behandle dem som umulige fordi det ikke finnes noe lokalt forslag.
Etter en omstart lastes uavklarte ordrer og transaksjoner før ny eksponering skapes. Sammenlign gjeldende eierskap og betalingssaldoer med siste underbygde oppføring. Enhver forskjell bør forklares gjennom observert aktivitet eller forbli et uttrykkelig avvik som venter på gjennomgang.
En omstart bør ikke nullstille forbrukstellere eller forkaste ventende reservasjoner bare fordi de bare var lagret i minnet. Kontoens forpliktelser overlever applikasjonsprosessen. Varige oppføringer lar gjenopptatt arbeidsflyt fortsette samme økonomiske historikk.
Veiledningen om NFT-handelsprogramvare behandler regnskapskvalitet som et utvalgskriterium. Et attraktivt panel er mindre nyttig dersom det mister forbindelsen mellom åpne ordrer, faktiske beholdninger og historiske kostnader hver gang applikasjonen kobler til igjen.
En handelsbot for ERC-1155 trenger mengdebevisste beholdnings- og forpliktelsesoppføringer fordi flere enheter av en tokenidentifikator endrer regnskapsproblemet.
Test NFT-handelsboten med motstridende bevis
En nyttig gjennomgangsøvelse inkluderer mer enn et ryddig kjøp fulgt av et ryddig salg. Gi systemet en duplisert overføringsobservasjon, en forsinket markedsplassoppdatering, en manuell utgående overføring og en kansellering som overlapper med utførelse. Definer forventet kontotilstand før øvelsen kjøres.
I eksemplet med fem enheter bør et duplisert varsel fortsatt etterlate fem anskaffede enheter. Et kontrollert salg av to enheter bør etterlate tre. En senere utdatert melding som beskriver fem enheter, bør ikke i det stille overskrive nyere underbygd tilstand uten undersøkelse av kilde og observasjonstidspunkt.
Test ressurstotaler i tillegg til gjenstandsantall. En avklart feil kan frigjøre kjøpskapasitet og samtidig beholde en faktisk nettverksutgift. Et fullført kjøp flytter det økonomiske beløpet fra ventende forpliktelse til beholdningskostnad fremfor å telle begge på ubestemt tid.
Målet er en konsistent kontofortelling. En leser bør kunne forklare hva som eies, hva som fortsatt kan utføres og hvordan registrerte kostnader oppstod. Grunnlaget gjør handelsbeslutninger mulige å gjennomgå selv når markedsdata og applikasjonstilstand kommer på forskjellige tidspunkter.