En ERC-721-handelsbot skal holde styr på individuelle tokens gennem en handel. En samlingssaldo kan fortælle en operatør, at kontoen har flere genstande, men kan ikke identificere, hvilken genstand et bestemt salgsopslag tilbyder, eller hvilken erhvervelse et senere salg lukker. Arbejdsgangen kræver en registrering på genstandsniveau forbundet med ejerskabsdokumentation, tilladelser, ordrer og omkostninger.
Tokenstandarden og handelsstedet løser forskellige problemer. En standardiseret programmeringsgrænseflade hjælper software med at interagere med aktiver; den leverer ikke en værdiansættelsesmetode, garanterer ikke en køber og definerer ikke enhver markedspladsordre. En pålidelig udformning holder disse lag adskilt, så en vellykket ejerskabsforespørgsel ikke forveksles med dokumentation for, at en foreslået handel er attraktiv eller eksekverbar.
Denne guide bruger fiktive tokenidentifikatorer og hypotetiske ETH-beløb. Den beskriver en driftsmodel frem for udrulningsinstruktioner til en bestemt protokol. Målet er en registrering, som forbliver sammenhængende gennem et almindeligt køb, en ekstern overførsel, et mislykket forsøg og et senere salg.
Giv ERC-721-handelsbotten en hovedbog på genstandsniveau
Den officielle ERC-721-specifikation definerer en programmeringsgrænseflade til at følge og overføre særskilte NFT'er. Den omfatter ejerskabsforespørgsler, tokenspecifikke godkendelser og operatørgodkendelser. Metadata og enumerering er valgfrie udvidelser. Disse forskelle er vigtige ved beslutning om, hvad en bot kan verificere direkte, og hvilke yderligere data den kræver.
Brug kæde, kontraktadresse og tokenidentifikator sammen som kontoens aktivnøgle. Bevar identifikatoren i en repræsentation, som bevarer dens fulde værdi. En menneskevenlig betegnelse kan ledsage den, men betegnelsen bør aldrig blive den eneste reference, som bruges til at forbinde et salgsopslag med en beholdning.
Opret en separat registrering for hver genstand, kontoen har erhvervet, overført eller forsøger at handle. Medtag den dokumentation, som fastlagde registreringen, og observationens tidspunkt eller kædekontekst. En total på samlingsniveau kan derefter udledes af genstandsregistreringerne frem for at erstatte dem.
Denne struktur gør uoverensstemmelser mulige at handle på. Hvis samlingsoptællingen siger tre, men genstandshovedbogen indeholder fire verificerede beholdninger, har systemet et konkret afstemningsproblem. Uden genstandsidentiteter bliver uoverensstemmelsen et uforklaret tal, som kan forplante sig til salgsopslags- og eksponeringsbeslutninger.
Adskil aktivlaget fra ordrelaget
En aktivregistrering beskriver tokenen og observeret ejerskab. En ordreregistrering beskriver en foreslået udveksling under bestemte vilkår. De kan henvise til samme genstand uden at beskrive samme tilstand. En token sat til salg kan forblive ejet, og et købstilbud kan eksistere uden en erhvervet beholdning.
Gem ordreidentitet, aktivreference, side, betalingsvilkår, udløb og aktuel statusdokumentation separat. Undgå ét enkelt statusfelt, som forsøger at gøre ejet, sat til salg, budt på og solgt gensidigt udelukkende. Nogle af disse forhold kan eksistere samtidig, mens andre kræver verificerede overgange, før kontoen kan støtte sig til dem.
En konto kan eksempelvis eje den fiktive token 317 og have en salgsinstruktion knyttet til den. Genstanden forbliver i beholdningerne, indtil den relevante dokumentation viser dens afhændelse. Fjernelse, når salgsopslaget oprettes, ville undervurdere eksponeringen og kunne fremstille kontoens tilgængelige aktiver forkert.
Tilsvarende bør et tilsigtet køb af token 418 optage en forpligtelsesregistrering, hvor det er relevant, uden at fremstå som ejerskab. Forskellen hjælper med at forhindre, at et senere salgsforslag antager, at den forventede erhvervelse allerede blev gennemført. Ordrer udtrykker hensigter og forpligtelser; beholdningsregistreringen kræver dokumentation for faktiske aktivændringer.
Definér omfanget af ejerskabsdokumentation
Vælg, hvilken dokumentation arbejdsgangen kræver, før en token behandles som beholdt eller afhændet. Bevar observationskonteksten, så systemet kan skelne en aktuel kontrol fra en gammel indekspost. Forskellige kilder kan opdatere på forskellige tidspunkter, og uenighed bør forblive synlig indtil afstemning.
En proces til ERC-721-ejerskabsafstemning bør sammenligne hovedbogen på genstandsniveau med den relevante aktuelle kontodokumentation. Hvis en genstand blev flyttet uden for botten, skal hovedbogen afspejle hændelsen. Bottens egen handelshistorik er ikke en fuldstændig beskrivelse af en konto, som også kan kontrolleres gennem andre værktøjer eller enheder.
Udled ikke, at et manglende søgeresultat beviser, at en genstand er væk. Datakilden kan være ufuldstændig eller forsinket. Tilsvarende fastslår et cachelagret billede i en wallets brugerflade ikke aktuelt ejerskab. Arbejdsgangen bør identificere den specifikke dokumentation, som understøtter en tilstandsovergang, frem for at støtte sig til visuelt genkendelige elementer.
Når observationer er i konflikt, skal handlinger, som afhænger af den omstridte genstand, sættes på pause. Et nyt salgsopslag eller overførselsforslag bør ikke fortsætte, mens kontoen er usikker på, om den kontrollerer tokenen. Andre uafhængige observationer kan fortsætte, men den uafklarede uoverensstemmelse bør forblive en del af driftstilstanden.
Gennemgå tilladelser som deres egen kontotilstand
Standarden skelner godkendelse for en individuel token fra godkendelse til en operatør over en ejers tokens i den relevante kontrakt. En handelsarbejdsgang bør vise det anmodede omfang klart og bevare kontoens observerede tilladelsestilstand. En snæver købs- eller salgshensigt bør ikke skjule en bredere autorisationsændring.
Gennemgang af ERC-721-godkendelsesomfang er en separat beslutning fra prisvurdering. Et forslag kan have acceptabel økonomi og samtidig anmode om beføjelser uden for operatørens plan. Gennemgangen bør identificere konto, samling, autoriseret part og tilsigtet formål, før tilladelsen gives eller bruges som grundlag.
Hold tilladelser forbundet med den rute, som kræver dem. Hvis en strategi ændrer sit udførelsesforløb, skal det ikke antages, at eksisterende autorisation stadig er passende, blot fordi et lignende navn optræder i brugerfladen. Beføjelsesregistreringen bør bruge verificerede identifikatorer og forklare, hvorfor tilladelsen fortsat er nødvendig.
Gennemgå efter et forsøgs afslutning udestående beføjelser efter kontoens politik. Standsning af strategiløkken forklarer ikke i sig selv tilstanden for tidligere givne tilladelser. Kontoregistreringen bør skelne deaktiveret automatisering fra ændret autorisation, så operatøren ved, hvilken kontrol der faktisk er fjernet.
Verificér den tilsigtede modtager og overførselsvejen
Et overførselsforslag bør identificere destinationen og dens rolle. Er modtageren ejerens handelskonto, en separat opbevaringsadresse eller en anden deltager under udvekslingsvilkårene? Adresser, som ligner hinanden, eller velkendte betegnelser fjerner ikke behovet for at verificere forholdet før godkendelse.
ERC-721-standarden giver sikker overførselsadfærd, som kontrollerer modtagegrænsefladen hos en modtager, der er en smart kontrakt. Mekanismen er nyttig, men fastslår ikke, at modtageren er den adresse, brugeren tilsigtede, eller at enhver bredere handelsbetingelse er passende. Forslaget kræver stadig en meningsfuld modtagergennemgang.
Bevar den overførselsvej, udførelsesdesignet antager. Hvis arbejdsgangen forventer, at den erhvervede genstand kommer til én konto, mens den faktiske rute bruger en anden, vil ejerskabsafstemningen ellers rapportere en manglende token. Registreringen bør forklare enhver mellemkommende eller udpeget modtager, som er relevant for den faktiske transaktion.
Test adressehåndtering med klart skelnelige fiktive konti under øvelsen. Medtag et forslag med forkert destination, og bekræft, at gennemgangen fanger det. En øvelse, som kun kontrollerer mængder eller beløb, kan overse en mere grundlæggende fejl: en korrekt prissat erhvervelse leveret et sted uden for den tilsigtede kontomodel.
Hold metadata nyttige uden at gøre dem autoritative for ejerskab
Navne, billeder og egenskaber hjælper mennesker med at forstå, hvad en genstand repræsenterer. De bør forblive knyttet til aktivnøglen som beskrivende information frem for at erstatte ejerskabsregistreringen. En metadataopdatering kan ændre visningen, mens den underliggende tokenidentitet forbliver den samme.
Gem den version af beskrivende information, som blev brugt til en værdiansættelsesbeslutning. Hvis udseendet eller egenskaberne senere afviger, kan operatøren gennemgå, om den oprindelige tese afhang af den tidligere version. Uden versionsstyring kan et gammelt forslag blive umuligt at forklare, fordi brugerfladen nu viser en anden beskrivelse.
Håndtér manglende metadata udtrykkeligt. Handelsprocessen kan kræve beskrivende dokumentation til værdiansættelse, selv når den kan identificere tokenen. I så fald er et utilgængeligt billede eller egenskabssæt en grund til at sætte værdiansættelsesstadiet på pause, ikke dokumentation for, at aktivet ikke findes, eller at dets pris bør antages at være lav.
Denne adskillelse beskytter også regnskabet. Opdatering af en titel eller et billede bør ikke skabe en ny beholdning, dublere en erhvervelse eller løsne salgshistorikken fra genstanden. Hovedbogens stabile nøgle bevarer kontinuitet, mens beskrivende felter ændrer sig omkring den.
Beregn omkostningen ved den bestemte genstand
Knyt erhvervelsesudgifter til den faktiske genstand og det forsøg, som medførte dem. Beløbet betalt for token 317 kan afvige væsentligt fra beløbet betalt for token 418, selv når begge tilhører samme samling. Et samlingsgennemsnit kan være nyttigt til rapportering, men bør ikke udviske de individuelle omkostningsregistreringer.
Ved et hypotetisk køb til 0,60 ETH med 0,03 ETH i henførbare udgifter er erhvervelsesudgiften 0,63 ETH. Hvis genstanden senere sælges for 0,70 ETH før 0,04 ETH i salgsudgifter, er nettoprovenuet 0,66 ETH, og den realiserede gevinst er 0,03 ETH. Sammenligning af kun de to overskriftspriser ville rapportere en større gevinst.
Registrér mislykkede forsøg separat, når de medfører udgifter uden at erhverve genstanden. Beslut, hvordan disse omkostninger indgår i forsøgets resultatrapport, og anvend metoden ensartet. Udeladelse, fordi de ikke tilhører en gennemført beholdning, får strategien til at se billigere ud, end den var.
Hvis flere genstande deler en samlet udgift, skal fordelingsmetoden dokumenteres frem for at opfinde en præcis tilskrivning, dokumentationen ikke kan understøtte. Den vigtige egenskab er ensartethed og gennemsigtighed. En reviewer bør kunne rekonstruere kontoens samlede udgift, selv når fordeling pr. genstand indebærer en udtrykkelig konvention.
Forebyg modstridende handlinger på samme token
En enkelt genstand kan tiltrække flere foreslåede handlinger fra forskellige dele af en arbejdsgang. Én komponent kan forberede et salg, mens en anden forbereder en overførsel eller et revideret salgsopslag. Systemet kræver en koordinationsregel på genstandsniveau, så hensigterne ikke fortsætter uafhængigt uden kendskab til hinanden.
Brug en varig registrering af aktive hensigter og deres afhængigheder. Hvis token 317 indgår i en uafklaret handling, bør en anden handling gennemgås i forhold til denne tilstand. Reglen bør overleve en genstart; et midlertidigt flag i hukommelsen er utilstrækkeligt, hvis applikationen glemmer det efter en afbrydelse.
Hold annullerings- og erstatningsresultater udtrykkelige. En anmodning om annullering fastslår ikke i sig selv, at en tidligere ordre ikke længere kan udføres. Et erstatningsforslag skal tage højde for den faktiske protokol- og handelsstedsadfærd frem for at antage, at en lokal betegnelse har fjernet den oprindelige forpligtelse.
Dette er én grund til, at en NFT-handelsagent kræver en klar grænse mellem planlægning og godkendelse. En planlægger kan foreslå flere alternativer, men udførelsesbeføjelsen bør vælge og følge en sammenhængende handlingsrækkefølge. Flere plausible planer retfærdiggør ikke samtidige modstridende instruktioner.
Afstem et usikkert køb før et nyt forsøg
Antag, at en købsanmodning indsendes, og forbindelsen svigter, før applikationen modtager et resultat. Kontoen har nu et usikkert udfald, ikke en bekræftet fiasko. Gentagelse af anmodningen uden undersøgelse kan skabe yderligere eksponering eller unødvendige udgifter afhængigt af ruten og forslaget.
Gem de tilgængelige transaktions- og ordreidentifikatorer sammen med den oprindelige hensigt. Brug under genopretning disse identifikatorer og kontodokumentationen til at afgøre, hvad der skete. Hvis informationen forbliver ufuldstændig, skal usikkerheden bevares og afhængige handlinger blokeres frem for at udfylde hullet med en antagelse.
En arbejdsgang til genopretning efter et ERC-721-køb bør forbinde tre registreringer: hvad botten havde til hensigt, hvad den indsendte, og hvad kontoen nu viser. Registreringerne stemmer måske ikke straks overens. Genopretningsprocessen findes for at afstemme dem, før strategien fortsætter, som om genstanden med sikkerhed er til stede eller fraværende.
Øv afbrydelsen bevidst. Genstart applikationen efter en hypotetisk indsendelse, verificér, at den husker den uafklarede handling, og bekræft, at den ikke automatisk skaber en ny erhvervelse. Testen undersøger kontomodellen under en realistisk fejltilstand uden at kræve et markedstab for at afsløre svagheden.
Hold ERC-721-handelsbottens beholdninger adskilt fra eksemplarer
Anvend ikke samme genstandsantagelser på enhver tokenstandard, blot fordi brugerfladen viser et NFT-miniaturebillede. Kontomodellen bør identificere standarden og bruge de tilsvarende mængde- og identitetsbetydninger, som det faktiske aktiv understøtter. En generisk registrering, som udelader forskellen, kan fejlfortolke beholdninger og ordrer.
Guiden til en ERC-1155-handelsbot behandler tokentyper med mængder og beslægtede regnskabsspørgsmål. En ERC-721-fokuseret arbejdsgang bør udtrykkeligt begrænse sit omfang, hvis den ikke understøtter disse handlinger. Afvisning af et aktiv, som ikke understøttes, er klarere end at presse det ind i en registrering udformet til en anden standard.
Bevar dette omfang i import- og opdagelsesværktøjer. En samlingssøgning kan returnere flere slags aktiver, men udførelseslaget bør ikke udlede kompatibilitet alene af søgeresultatet. Den foreslåede handling skal bestå kontroller for understøttede aktiver, før værdiansættelse eller godkendelse kan fortsætte.
Denne adskillelse forbedrer også rapportering. Et antal særskilte ERC-721-genstande bør ikke kombineres med mængder af en anden aktivtype i en umærket ”NFT-saldo”. Operatøren skal vide, hvad hvert tal måler, før det bruges til at vurdere beholdningskoncentration eller tilgængelig salgskapacitet.
Udform en udgangsregistrering, som lukker den rigtige erhvervelse
Når en genstand sælges eller på anden måde afhændes, skal hændelsen forbindes med dens oprindelige beholdningsregistrering. Medtag det faktiske provenu, udgifter, destination, hvor det er relevant, og dokumentation for ejerskabsændringen. En salgsinstruktion alene bør ikke lukke erhvervelsen i hovedbogen.
Bevar forskellen mellem et salg og en overførsel uden salg. Flytning af en genstand mellem konti kan ændre opbevaring uden at skabe handelsprovenu. Hvis rapporteringssystemet behandler enhver udgående overførsel som et salg, kan det opfinde indtægt eller forvrænge realiserede resultater. Registreringen kræver en begrundelse for bevægelsen, med usikkerhed markeret, når grunden er ukendt.
Hvis samme token senere genanskaffes, skal der oprettes et nyt erhvervelsesforløb, mens den tidligere historik bevares. Genbrug af ét omkostningsfelt for altid ville udviske forskellen mellem første og anden ejerperiode. Både en tokens stabile identitet og kontoens særskilte ejerskabsforløb bør forblive synlige.
Afstem ved hver sessions slutning åbne beholdninger, uafklarede handlinger og gennemførte afhændelser. Totalerne bør hænge sammen med kontodokumentationen og kontantbevægelserne. En korrekt liste over tokennavne er ikke nok, hvis hovedbogen ikke kan forklare de penge, som blev brugt og genindvundet.
Øv med et lille sæt bevidste tilfælde
Brug en fiktiv samling og nogle få tokenidentifikatorer til at teste kontomodellen. Medtag én ligetil erhvervelse, én ekstern overførsel, ét mislykket forsøg og ét usikkert svar. Formålet er at verificere tilstandsovergange og registreringer, ikke at simulere en rentabel samling.
Tilføj bevidst en uoverensstemmelse: en ordre, som henviser til en anden tokenidentifikator end den viste genstand. Arbejdsgangen bør afvise den før godkendelse. Test også en forældet ejerskabsobservation og et forslag, som bygger på beføjelser uden for det angivne omfang. Hvert tilfælde undersøger en forskellig grænse i udformningen.
En NFT-bot for begyndere kan give et bredere udgangspunkt for at lære disse forskelle. ERC-721-øvelsen bør derefter gøre dem konkrete på individuelt genstandsniveau, så operatøren kan forklare præcis, hvilket aktiv og hvilke beføjelser hver handling vedrører.
Gem tilfældene og forventede udfald som et gennemgangssæt til senere ændringer. Hvis en ny funktion ændrer, hvordan beholdninger gemmes eller ordrer importeres, skal de relevante tilfælde køres igen. Et lille, forståeligt sæt fejleksempler kan afsløre tilbagefald, som et stort kontrolpanel med vellykkede historiske handler ville overse.
Ofte stillede spørgsmål om ERC-721-automatisering
Beviser overholdelse af standarden, at en NFT har værdi?
Nej. Standarden vedrører en programmeringsgrænseflade og aktivadfærd, ikke økonomisk efterspørgsel eller en videresalgsgaranti. Værdiansættelse kræver separat dokumentation og forbliver usikker. En teknisk understøttet token kan stadig være uegnet til en handelsstrategi, fordi dens pris, likviditet eller antagelser om ejertid er uattraktive.
Er en samlingssaldo nok til handel?
Den er utilstrækkelig til handlinger, som retter sig mod en bestemt genstand. Arbejdsgangen kræver den relevante tokenidentitet og aktuel dokumentation for ejerskab eller eksekverbare ordrevilkår. En samlingsoptælling kan understøtte afstemning, men kan ikke identificere, hvilken erhvervelse et bestemt salg lukker, eller om den tilsigtede genstand er tilgængelig.
Kan jeg behandle enhver udgående overførsel som et salg?
Nej. En udgående overførsel kan repræsentere en flytning af opbevaring eller en anden handling uden salg. Registrér dokumentationen og begrundelsen separat fra provenu. Hvis formålet er ukendt, skal usikkerheden bevares frem for at opfinde en salgspris eller fjerne hændelsen fra kontohistorikken.
Hvad demonstrerer parathed til et forsøg under opsyn?
Operatøren bør kunne identificere tokenen, forklare de anmodede beføjelser, rekonstruere den foreslåede omkostning og genoprette et usikkert udfald ud fra gemt dokumentation. Øvelsen bør også vise, at modstridende eller ikkeunderstøttede handlinger afvises. Disse evner fastlægger en forståelig proces; de garanterer ikke en rentabel handel.