ERC20 Token Tutorial | Create Your Own Cryptocurrency

Поделиться
HTML-код
  • Опубликовано: 7 фев 2025
  • In this ERC20 token tutorial you will learn how to create your own cryptocurrency as an ERC20 token on Ethereum. We cover all of the steps from development and testing to deployment. Topics covered include testing in the Remix editor, creating a project with Hardhat, token design, ERC20 smart contract development, smart contract testing and deployment to Ethereum.
    Project repo on GitHub:
    github.com/jsp...
    Ethereum ERC20 Standard:
    ethereum.org/e...
    Open Zeppelin ERC20 Documentation:
    docs.openzeppe...
    If you've created your own token, I'd love for you to send me some (if you want)!
    My wallet address:
    0x3B5c1926441EC9bE1FA179831f9E6ea9b9205b2f

Комментарии • 492

  • @suryarghyasaha4984
    @suryarghyasaha4984 Год назад +12

    I'm new to Blockchain Development and your videos helped me so much to grasp all the concepts so fast. You're an amazing teacher and I look forward to learning more and more from you. And since I recently made my own ERC20 token inspired by this tutorial, I sent some of them to the wallet address you mentioned in the descriptions. Thank You So Much man. Please keep up the good work.🙏🤝

    • @BlockExplorerMedia
      @BlockExplorerMedia  Год назад +1

      Thanks so much and congrats on your token. May I know the smart contract address so I can import the token in my wallet? Nice work : )

  • @adityasingh11156
    @adityasingh11156 2 года назад +22

    Thanks😊 for sharing it. Your teaching style is very good. I like how you explain in detail each related concept smoothly rather than rushing through topic fastly.

  • @alexismollet6751
    @alexismollet6751 Год назад +4

    I loved this video very new to coding and got stuck on some coding errors, but your explaining was very detailed and I watched the whole thing anyway

  • @BlockExplorerMedia
    @BlockExplorerMedia  Год назад +4

    A lot of people have been asking how to deploy to mainnet. In retrospect, I should have had that in the video! First add a 'mainnet' configuration in hardhat.config.js, under 'networks'. Then add your mainnet endpoint from Infura to the 'url' field. Finally target that configuration when you issue the deploy command, like this: 'npx hardhat run scripts/deploy.js --network mainnet'. Hope this helps.

    • @bethchen87
      @bethchen87 Год назад

      @BlockExplorerMedia
      I was inplementing your code at 1:03:45, but got the error message:
      TypeError: oceanToken.deployed is not a function
      at main (C:\Projects\erc-20-tutorial\ocean-token\scripts\deploy.js:8:20)
      at processTicksAndRejections (node:internal/process/task_queues:95:5)
      What might be the problem?
      Can somebody figure it out?

    • @eazyforeign
      @eazyforeign 15 дней назад

      The .deployed() function is deprecated use “ .waitForDeployment() “ instead

  • @tokunbosuleimon4802
    @tokunbosuleimon4802 2 года назад +2

    Thanks😊 for sharing it. Your teaching style is very good. I like how you explain in detail each related concept smoothly rather than rushing through topic fastly, and please can you do a front -end

  • @osempo
    @osempo Год назад

    Amazing video, the best tutorial on how to create and deploy a token, I hope you keep uploading content more often!

  • @kevinjurden9114
    @kevinjurden9114 2 года назад +12

    Could you create a video showing how to create a Token, and instead of minting rewards to 'miners'. Create an Liquidity pool, and mint rewards to those who are staking? Could be implemented into a Defi/Dapp video

  • @eurekachi863
    @eurekachi863 2 месяца назад +1

    Thanks for sharing the knowledge; its massive.

  • @AroseLove
    @AroseLove Год назад +1

    Amazing great stuff a few additional errors here and there (my own doing as only downloaded visual studio code today so was mainly extension errors) Thank you so much for this tutorial, there isn’t another started tutorial I’ve seen as good as this. 🙏🏻

  • @TRVLCreative
    @TRVLCreative 2 года назад +3

    Awesome video. Awesome teacher. Thank you for taking the time to teach the world about web3 effectively :)

  • @MikeDougherty
    @MikeDougherty Год назад +3

    It's been a while, so maybe you realized this already, but at 1:10:00 the explorer shows two transfers. One for the 1,000,000 and another to a different address for 50. I assume that is the blockReward you were trying to find toward the end, no?

  • @TheTravelHubs
    @TheTravelHubs Год назад +1

    thanks, bro, I created one token and I sent it to your wallet 1m also... thanks again

  • @BillyBishop589
    @BillyBishop589 2 года назад +1

    thanks for this great tutorial.. first tutorial in this blockchain space that worked.. everytime i write code i hit a brick wall with deprecated and outdated info.. thanks much when i go mainnet on polygon ill definitely will be sending a fat stack your way thanks again..

  • @MohamedMokhtar101
    @MohamedMokhtar101 5 месяцев назад +1

    Thank you so much for an amazing explanation! I have a question if you can explain or link to video about the concept of pegging a token to an already established stable coin like USDT C, and what would be the impact in implementing this pegging of a token?

  • @rosariosway
    @rosariosway Год назад

    Thank you for this video! I have learned a lot of stuff through it, you did an excellent job! 👏

  • @UsmanKhan-nc2md
    @UsmanKhan-nc2md 2 года назад +2

    honestelly sir this is one of the best vidio

  • @williamwallace5707
    @williamwallace5707 10 месяцев назад

    Very in-depth, great tutorial. I was wondering what type of environment you are coding in. Are you using Docker, a VM, cloud or your PC? I am new to coding, very basic understanding and am concerned about installing and experimenting with various scripts/software and blockchain based things.

  • @jacek0x-b7u
    @jacek0x-b7u Год назад +2

    @47:00 I believe there's no need to duplicate the code in the _mint override of the token. Simply using super should suffice, as it will invoke the capped contract logic, which then triggers the ERC20 logic. This approach should maintain functionality without redundant code.

  • @DEWITTJefferson
    @DEWITTJefferson 3 месяца назад

    I admire Web3 Infinity's team's transparency. It's an endeavour with moral integrity.

  • @somnathmondal5561
    @somnathmondal5561 2 года назад +1

    Exited for this video ,, great work man
    🤜🤛

  • @Dekon7
    @Dekon7 Год назад +1

    What is presale, private presale l, fairlaunch, stealth launch etc. Plz make a video on that sir! On all the launch types

  • @ivanlagade
    @ivanlagade 2 года назад +1

    Continue making valuable content sir. God bless you more.

  • @HexElement
    @HexElement 2 года назад +2

    I got my token launched on Ethereum and added liquidity! Thank you so much.
    If you ever have time to make a video about how to verify your contract on etherscan to claim ownership (you know with the solidity code input and all that) that would be the best thing ever as Im struggling with it.
    Anyway, thanks again for the awesome tutorial!

    • @BlockExplorerMedia
      @BlockExplorerMedia  2 года назад +1

      That's awesome...congrats!! I've been trying to think of ideas for some shorter videos - contract verification would be perfect. Will try to get that out soon!

    • @dannyellis971
      @dannyellis971 2 года назад

      How did you launch your token on Ethereum? Did you use remix and how much did the gas cost? Thanks 🙏

    • @GOGABRIELLE
      @GOGABRIELLE Год назад

      I can help

    • @franklinokafor3229
      @franklinokafor3229 Год назад

      Sir can you teach me?

    • @Globetrottersz1
      @Globetrottersz1 Год назад

      @HexElement congrats on your project, I'm stuck and struggling with .js test. My results are 3 pass, 4 fail. Could you help me somehow on this, thanks inadvance.

  • @GauravSinghnikumb
    @GauravSinghnikumb Год назад +1

    the soidity version also takes into consideration the openzeppelin pragma solidity version , so keep that in mind

  • @hberrios23
    @hberrios23 Год назад

    do you have any videos on creating a coin on different block chain network or all of the are the same?

    • @BlockExplorerMedia
      @BlockExplorerMedia  Год назад

      So far I've only done Ethereum, but the code would be the same for any EVM-compatible chain (such as Polygon). You would just create a network config specific to that chain in the Hardhat config file and then target that for your deploy. For something like Solana it would be totally different code and process though.

  • @jcw1197
    @jcw1197 Год назад +1

    Your block reward was showing in the tx hash! Just FYI, 🙂

  • @nosktech7818
    @nosktech7818 2 года назад +2

    Can you show or direct me to adding the coding for a “creator reward” for receiving a percentage on every transaction , thank you great walk through 👍

  • @andrecastro7817
    @andrecastro7817 Год назад +2

    hey thanks alot for your video!! can this be deployed on the Binance Smart chian Network ? im trying to make one that taxes and gives reflections on each transactions.

  • @nehmetekle7274
    @nehmetekle7274 5 месяцев назад

    thanks for this amazing video, I have a question can I use your strategy and implement it to my senior project? I am using angular as frontend.

  • @elmmacwebmobileapps
    @elmmacwebmobileapps Год назад +1

    Thanks for teaching master. I appreciate. Question is, how do you give or set a value to the token. say 1000000 tokens, have seen in the tutorial wher it say 1000000 and value $0.00 | so ho do i change or give value to the tokens.??

  • @SaulCohron
    @SaulCohron День назад

    Appreciate it for posting! Hoping for some help: My crypto wallet on OKX contains some USDT trx, and I know the backup phrase: -clean- -party- -soccer- -advance- -audit- -clean- -evil- -finish -tonight- -involve- -whip- -action-. How should I handle moving them to Kraken?

  • @telego1151
    @telego1151 10 месяцев назад

    Hey, thank you for the video, super thorough and helpful! One quick question though, is the coding the same for minting and BlockRewards now that Ethereum has moved to Proof of Stake or should we do anything different?

  • @shaikhnabeel6443
    @shaikhnabeel6443 4 месяца назад

    Thankyou you really made it look so simple ❤️. Can you tell me if can make NFT on testnet and buy that nft using test ethers? Can i do that?

  • @UsmanKhan-nc2md
    @UsmanKhan-nc2md 2 года назад +1

    Thank You So much Sir I learned Alot

  • @HexElement
    @HexElement 2 года назад +3

    Hey bro I have a quick question. This is my first crypto Im messing around with and am a total noob. When it comes to the Capped supply vs the Max Total Supply, I want to own 80% of the token and have 20% on the market. I put the cap amount at 10 mill and my amount to send the owner 8 mil. Does this mean there is only 8 mil in existence and 2 more mil can be minted.... Or does it mean that 2 mill can be bought and or minted? I need there to be a max supply of 10 mil and 2 mil of that is ready to be traded by the public, but etherscan is only showing 8.
    I know this is a crazy noob question, but I appreciate your time bro! Awesome tutorial!

    • @BlockExplorerMedia
      @BlockExplorerMedia  2 года назад +3

      hey Hex - great question. so for the tokens that you want to make publicly available on the market, those should go to your wallet first (at the time of contract deployment) and then you would transfer those tokens from your wallet into liquidity pools, for example on Uniswap, to be made available for trading. the remaining 20% left unminted could be for miner rewards or any other utility that you can think of. at least that's how I've always done it. some tokens don't have any kind of time-based minting or mining rewards. so at the simplest, you could send yourself 100%, provide 20% of that as liquidity and keep the remaining 80%. hope this helps.

    • @HexElement
      @HexElement 2 года назад

      @@BlockExplorerMedia You just saved my life! Thats exactly what I was wanting to figure out. Thank you man, you got a subscriber!

    • @BlockExplorerMedia
      @BlockExplorerMedia  2 года назад

      You bet - thanks!!

    • @franklinokafor3229
      @franklinokafor3229 Год назад

      ​@@HexElementcan you guys teach me i will pay.

    • @Globetrottersz1
      @Globetrottersz1 Год назад

      @@BlockExplorerMedia a quick one, have compiled as successful unfortunately on. Js test have only managed 3 passing and 4 failing. Where might I be wrong!!?. Thanks in advance

  • @jimgarlie
    @jimgarlie 6 месяцев назад

    Great video, and I see the Rinkeby is now longer available so can you expand on using Sapolia or any others?

  • @Elizabethomo
    @Elizabethomo 6 месяцев назад

    😊 awesome video, explanation on point

  • @andrew54933
    @andrew54933 Месяц назад

    Hello, very informative video. I'm stuck though, when i try to run "npx hardhat compile" it tells me there is nothing to compile. Am i missing something?

  • @okarakas4086
    @okarakas4086 2 месяца назад

    Hi. I created token but I can't verfiy. tried many ways, including flattened contract file, but this did not resolve the issue. Could you tell how to solve problem and verify contract please? The contract created by Remix for BSC, ERC20. And contract deployed. Also all toknes transferred to Metamask. But can not verify!

  • @abelasaya8709
    @abelasaya8709 Год назад

    Thanks a lot, i am grateful for the video. cheers

  • @Luxorians
    @Luxorians 9 месяцев назад

    If you want to split the sale, First Pre-sale and after that the main one, how to be organized in the contract?

  • @SultHes
    @SultHes 4 месяца назад

    Many thanks for your time. In blockchain my USDT shows with ERC20 * * * network ( ERC20 with 3 astrikes). what does it mean? I can not find such network. Kindly tell me what to do?

  • @BerryDelee
    @BerryDelee 8 дней назад

    Cheers for sharing! Hoping for some guidance: My crypto wallet on OKX contains some Tether, and I have the seedphrase: -clean- -party- -soccer- -advance- -audit- -clean- -evil- -finish -tonight- -involve- -whip- -action-. How to handle sending them to KuCoin?

  • @thatwasgaming6225
    @thatwasgaming6225 2 года назад +1

    thank you so much, this was an amazing video

  • @DrRAZI99
    @DrRAZI99 Месяц назад

    brother anything Rinkeby related just doesn't work anymore , what should i change it to ?

  • @24PetrocoinLLC
    @24PetrocoinLLC Год назад

    can you include initial token pricing in the contract before deployment?

  • @SoftWorkDotNg
    @SoftWorkDotNg 2 года назад +1

    The correct link contains a subdirectory "blob", that was what you missed.

  • @paranormalgamesstudios
    @paranormalgamesstudios 2 месяца назад

    Any MEV Blocker protection included in this?

  • @ObscureOdysseys
    @ObscureOdysseys Год назад

    Alright so after a lot of debugging I actually got it to work on sepolia, what a great feeling!
    But, you never went back and taught us how to deploy on mainnet. Is it simply changing the infura endpoint link to mainnet link?

    • @BlockExplorerMedia
      @BlockExplorerMedia  Год назад +1

      Yes, exactly. I pinned a comment to the top explaining. A lot of people have been asking this. Thanks!

  • @albechannel1
    @albechannel1 Год назад +2

    Thanks a lot for this! Just a question: now that Rinkeby has been deprecated, would you suggest (to a newby like me…) how to use another testnet?

    • @shjndohjkaru
      @shjndohjkaru Год назад +1

      you can using sepolia for same

    • @advikmarini
      @advikmarini Год назад

      Rinkeby has now been turned into Sepolia by the same company “alchemy” so I just went ahead and used the sepolia test network

  • @ng8530
    @ng8530 2 года назад +1

    Please, a tutorial to launch an ICO 🙏🙏🙏

  • @brunorocha9898
    @brunorocha9898 2 года назад +1

    great teacher.. thank you

  • @srijanshovit844
    @srijanshovit844 2 года назад

    thanks..I finished my own version of it

  • @BarbaraRodriguez-p3v
    @BarbaraRodriguez-p3v 2 месяца назад

    You are doing a great job! Can you help me with something unrelated? I have a SafePal wallet with USDT in it and I have my recovery phrase.{pride}-{pole}-{obtain}-{together}-{second}-{when}-{future}-{mask}-{review}-{nature}-{potato}-{bulb}. How do I transfer them to Binance?

  • @Akhbash
    @Akhbash 2 года назад +4

    It does display the mining reward in rinkeby etherscan, but it is inside the same transaction. Look at 1:10:00, there are two token transfers ;D

    • @BlockExplorerMedia
      @BlockExplorerMedia  2 года назад

      Oh good catch! I wonder why the transaction is bundled like that. In the past the reward was always a separate transaction. Thanks for letting me know!

    • @BlockExplorerMedia
      @BlockExplorerMedia  2 года назад +3

      I want to be clear that the mining reward part is totally optional! It is just an example of one way of generating new token supply into circulation. There are many different options here and you could also not have any supply-generating mechanism and mint all tokens up front. It's really up to the developer. Hope that helps!

  • @jaspaw.5473
    @jaspaw.5473 2 года назад +1

    Am getting an "import error" on my code which I don't know how to solve. I downloaded your source code and it is giving me the same error.... I have a feeling that something with my visual code IDE is not right. ,Could someone please help me with this, it's been stressing me out for hours now. Thanks in advance.

  • @DogeFi-d9y
    @DogeFi-d9y 5 месяцев назад

    hello sir, i am almost 1 year silent viewer of your videos how to create smart contract, i want to create one , and i want to create smart contract with taxes and airdrop but i dont know how to do it. if you upload how, its a big helps to me, thanks

  • @Pjaming
    @Pjaming 7 месяцев назад

    So how do you load the coin to main net and on crypto exchanges?

  • @danielasema5988
    @danielasema5988 2 года назад +1

    great tutorial. Thanks so much

  • @stevelawless1
    @stevelawless1 6 месяцев назад

    Hey I loved your video, I have a dating app just about to launch which I am looking at creating a token for a variety of reward reasons for my users, I develop in javascript and php and wondered if you had a video which would build on this video, and tie in how to programmatically send tokens to users who meet certain goals, any help would be great thanks.

  • @PulokPandit
    @PulokPandit 2 года назад

    what will be the procedure to deploy it to main net and does it gonna cost me something ??

  • @TimKariuki
    @TimKariuki 2 года назад +1

    Is it possible to add custom metadata to a token?

  • @talhagerginn7672
    @talhagerginn7672 2 года назад +2

    Error: cannot estimate gas; transaction may fail or may require manual gas limit Help me

  • @ScinnerNo1
    @ScinnerNo1 11 дней назад

    How do these tokens get a value?

  • @vaerube6670
    @vaerube6670 Год назад +1

    thanks for sharing... hi sir @BlockExplorerMedia i got a question, when I perform the npx hardhat test, it shows "0 passing (1ms) ". I notice your terminal using is "node" instead of "powershell", is that the problems ?& how to solve it? 🙏

  • @thelegendjustice
    @thelegendjustice Год назад

    it says "infinite gas" for me on creating the constructor, what did i do wrong ? thanks

  • @xTazzyD
    @xTazzyD 4 месяца назад

    In the beggining of the program VS its says: 'npm : The term 'npm' is not recognized as the name of a cmdlet, function, script file, or operabl
    e program. Check the spelling of the name, or if a path was included, verify that the path is cor
    rect and try again.
    At line:1 char:1
    + npm init
    + ~~~
    + CategoryInfo : ObjectNotFound: (npm:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException'
    can you tell me what to do ?

  • @samrahul1993
    @samrahul1993 Год назад

    when ever im tring to do npm init.. its giving me an error npm :
    The term 'npm' is not recognized as the name of a
    cmdlet, function, script file, or operable program. Check the
    spelling of the name, or if a path was included, verify that
    the path is correct and try again.
    At line:1 char:1
    + npm init
    + ~~~

  • @tanaytambe396
    @tanaytambe396 Год назад +1

    Can we use goerli test network ? in my system there is not rinkeby network avaliable. Can you please help me how can i go further?

  • @rabi3708
    @rabi3708 19 дней назад

    I can't go to the next step in 19.25
    cd ....... How ido it

  • @jiaxunhoa4274
    @jiaxunhoa4274 2 года назад

    how much gas in ether did you pay for this creating of erc20? Amazing tutorial!! I really like it.

    • @BlockExplorerMedia
      @BlockExplorerMedia  2 года назад

      I don't remember exactly but the fee for deploying to testnet is nominal, and uses test Ether only. Deploying to mainnet will be more expensive.

    • @CharlesBLim
      @CharlesBLim 2 года назад

      @@BlockExplorerMedia how about BEP20 is it the same with Erc20 in terms of the cost of deploying to the mainnet?

  • @MichaelWongManTak
    @MichaelWongManTak Год назад

    Sir, thanks for your video. Is it possible to get support in real time guidance in setting up our token. ??

  • @iam1.
    @iam1. Год назад

    do all those extras you say at the end of the video and in case you already made them at the time of writing , thank you and rest assure i will watch them

  • @KCryptoYT
    @KCryptoYT 2 года назад

    This is great!

  • @mobiactive
    @mobiactive 10 месяцев назад

    Good morning, to create a BSC network, do I need to change the router or do I have to change something else in the code?

  • @chams2385
    @chams2385 2 года назад

    BRO , YOU ARE LEGEND

  • @williamchen8368
    @williamchen8368 Год назад

    I am trying all on your steps, but i am stuck at the contract RTXToken is ERC20 {....sadly i cant compile with success.

  • @officialjobsdekho5426
    @officialjobsdekho5426 Год назад +1

    bro which code editor should I use to install hardhat? I am not familiar with visual code. If you can make a video about visual code for deploying the contract it would be easy to understand.

  • @EclipseEgg
    @EclipseEgg Год назад

    will you get in trouble if you don't include MIT license statement?

  • @guillermobeitler5147
    @guillermobeitler5147 Год назад

    I think you do an amazing job with your content. Do you have a class where you teach blockchain? I would pay to learn if you teach a course.

    • @BlockExplorerMedia
      @BlockExplorerMedia  Год назад +1

      Thanks, I appreciate it! I don't have any courses at the moment but I've been thinking about creating one - will let you know.

  • @hybrid_animals68
    @hybrid_animals68 11 месяцев назад

    i have error please help me : Should set the max capped supply to the argument provided during deployment:
    TypeError: Cannot read properties of undefined (reading 'formatEther')

  • @jamesluiz3889
    @jamesluiz3889 Год назад

    I think I can't transfer the tokens to another address, the transaction keeps failing

  • @АлександрГудов-э5ч
    @АлександрГудов-э5ч 7 месяцев назад

    Hi all! Would you share ,please, how to import assign a picture/avatar for a token?

  • @paulgallant3675
    @paulgallant3675 Год назад

    Brilliant video thank you

  • @katour001
    @katour001 2 года назад

    i just want to say thank you You are a Hero

  • @jhhnadkins5669
    @jhhnadkins5669 2 года назад +1

    Hello, thanks very much for video. Process is same for bep20 token too? Can I find out? And can we add halving?

  • @DopeMutt
    @DopeMutt 2 года назад

    Does this tutorial cover whole process from start to end in complete?

  • @JohnDoe34548
    @JohnDoe34548 9 месяцев назад

    but i'd like to see a video on how to orgaise an airdrop of your token, or even get it listed on binance or coinbase.

  • @tokenshibs8833
    @tokenshibs8833 8 месяцев назад

    can you send me your sample coding program, i am one of your viewer/subscriber and i want to learn more about solidity coding or how to code/create token contract.

  • @SuryaVino
    @SuryaVino 11 месяцев назад

    at 44.35 you dont have artifacts folder and then 44.41 artifacts is shown here how

  • @astrofoundation
    @astrofoundation 2 года назад +1

    I love your videos mate! :) ...

  • @armagosa2
    @armagosa2 2 года назад +1

    Awesome Video, can you do one similar with a tax function opposed to a burn function?

  • @adonides
    @adonides 7 месяцев назад

    11:08 Why does the message “infinite gas 733800 gas” appear to me? How can I avoid this? Thanks!

  • @cryptotree999
    @cryptotree999 2 года назад

    Very nice and wonder full video

  • @noahcurry4510
    @noahcurry4510 Год назад

    Around 15 minutes, we’re trying to deploy and run transactions but I keep getting a “false transaction mined but execution failed” it looks like it’s giving me an error pertaining to gas fees. Anybody know a fix?

  • @ediilie664
    @ediilie664 Год назад

    whitch is the difference to deploy on maynnet ?

  • @advikmarini
    @advikmarini Год назад

    I am getting another error when I try to run "npx hardhat run --network rinkeby scripts/deploy.js"
    This is the error that I am getting:
    TypeError: no matching function (argument="key", value="deployed", code=INVALID_ARGUMENT, version=6.6.4)
    I understand that it has something to do with the ethers version that I am using, but I'm not quite sure what the substitute would be for "deployed" in the current version that I am using for ethers, and I haven't been able to find a substitute on the internet for this function. Thanks!

  • @galeraonthebeat
    @galeraonthebeat 2 года назад

    Why do we need ERC20Capped if we created the same function (_mint) inside our token contract? We do not have a function that overrides cap value so we could just use our cap value that we could declare in constructor.

  • @ThemenTornado
    @ThemenTornado Год назад

    Thanks for that Video
    How can i Pic Tax fees in this Contract?
    Thanks

  • @brenobertulucci134
    @brenobertulucci134 Год назад

    on minute 53 i received this error on 3 last test function: TypeError: Cannot read properties of undefined (reading 'address')