教你製作完全 On-Chain 的 NFT
本文亦發佈在作者網站: 最後更新:2022-04-02 https://www.frank.hk/blog/on-chain-nft/ 首先看看我做的這個 demo: https://testnets.opensea.io/collection/onchainnft-demoscreen 20220402100140 2x這些 NFT 的特別之處在於,每個 NFT 的圖案都不一樣( ID 不一樣),所有 NFT 的資料都是保存在區塊鏈上,沒有用到任何的伺服器或者 IPFS。 我在製作 ERC721 智能合約那篇文章中說過,NFT 之所以會顯示圖案,是因為根據 NFT 的標準,每一個 NFT 都有一個 json 格式的 metadata 與之對應, metadata 中有一個參數是指定 NFT 的圖案,所以只要訪問這個 NFT 的 metadata,然後再得到圖像地址,就可以顯示出 NFT 的圖案了。meta一般的 NFT,metadata 和 NFT 的圖案都是保存在非區塊鏈上,例如伺服器,或者是去中心化的 IPFS。這樣做其中有一個問題就是有可能會導致資料遺失。中心化伺服器自然...
教你製作完全 On-Chain 的 NFT
本文亦發佈在作者網站: 最後更新:2022-04-02 https://www.frank.hk/blog/on-chain-nft/ 首先看看我做的這個 demo: https://testnets.opensea.io/collection/onchainnft-demoscreen 20220402100140 2x這些 NFT 的特別之處在於,每個 NFT 的圖案都不一樣( ID 不一樣),所有 NFT 的資料都是保存在區塊鏈上,沒有用到任何的伺服器或者 IPFS。 我在製作 ERC721 智能合約那篇文章中說過,NFT 之所以會顯示圖案,是因為根據 NFT 的標準,每一個 NFT 都有一個 json 格式的 metadata 與之對應, metadata 中有一個參數是指定 NFT 的圖案,所以只要訪問這個 NFT 的 metadata,然後再得到圖像地址,就可以顯示出 NFT 的圖案了。meta一般的 NFT,metadata 和 NFT 的圖案都是保存在非區塊鏈上,例如伺服器,或者是去中心化的 IPFS。這樣做其中有一個問題就是有可能會導致資料遺失。中心化伺服器自然...
聊一聊 Zombie Club NFT 的技術八卦
本文亦發佈在作者網站: 最後更新:2022-03-20 https://www.frank.hk/blog/zombie-club-nft/ Zombie Club NFT 最近可謂紅的不得了。這個有潮流明星余文樂站台的項目一開始就引人關注。技術上個人感覺項目的技術處理還是很不錯的,白名單,公售都基本順暢,對於其智能合約的處理網路上已經有了很多技術分析文,這裡就不贅述。 寫這篇文章的初衷,是因為昨天晚上聽了他們團隊的一個技術 AMA,聽到了來自官方團隊對技術上的一些分析和解釋。兩個多小時的 AMA,在最後的聽眾問答環節被推上高潮, 過程有聽眾對於智能合約的處理發出了質疑,問答的重點是關於公售時期幾百筆 out of gas 的原因追問。官方也花了很長時間解釋。但坦白講對於官方的回答有些地方我也不是十分認同。我也多次想發言可惜一直沒有被選中(事實上只有三個人被選中發言)。 星期日沒什麼事那這裡我們就來聊一聊這個 out of gas 是怎麼個回事。screen 20220320213254 2x在討論關鍵問題之前,首先我們要理解幾個概念, Gas Limit,** Max Prio...
聊一聊 Zombie Club NFT 的技術八卦
本文亦發佈在作者網站: 最後更新:2022-03-20 https://www.frank.hk/blog/zombie-club-nft/ Zombie Club NFT 最近可謂紅的不得了。這個有潮流明星余文樂站台的項目一開始就引人關注。技術上個人感覺項目的技術處理還是很不錯的,白名單,公售都基本順暢,對於其智能合約的處理網路上已經有了很多技術分析文,這裡就不贅述。 寫這篇文章的初衷,是因為昨天晚上聽了他們團隊的一個技術 AMA,聽到了來自官方團隊對技術上的一些分析和解釋。兩個多小時的 AMA,在最後的聽眾問答環節被推上高潮, 過程有聽眾對於智能合約的處理發出了質疑,問答的重點是關於公售時期幾百筆 out of gas 的原因追問。官方也花了很長時間解釋。但坦白講對於官方的回答有些地方我也不是十分認同。我也多次想發言可惜一直沒有被選中(事實上只有三個人被選中發言)。 星期日沒什麼事那這裡我們就來聊一聊這個 out of gas 是怎麼個回事。screen 20220320213254 2x在討論關鍵問題之前,首先我們要理解幾個概念, Gas Limit,** Max Prio...
大量節省 Gas Fee 的 ERC721A NFT 智能合約
本文亦發佈在作者網站: 最後更新:2022-01-23 https://www.frank.hk/blog/azuki-erc721a/ 有人說以太坊的 gas fee, 動輒幾十,幾百美金,這似乎是一道避不過的坑。 參與 NFT 的鑄造亦是如此,mint 一個 NFT,少說也要幾十美金上下,如果一次 mint 多過一個 NFT,gas 的消耗更是成倍上漲。 目前流通中的 NFT 項目,大多數都是基於 OpenZeppelin 的 ERC721 實現版本來進行。 稍微解釋一下, ERC721 是一個標準,這個標準規定了作為一個 ERC721 的智能合約必須做到什麼事情。 實現這個標準有很多不同的做法(implementation), 只要智能合約能夠滿足ERC721的標準要求,則被視為是一個有效的 ERC721 智能合約。而 OpenZeppelin 的 ERC721 實現,則是目前市面上最廣為使用的一個 ERC721 實現。 因此, OpenZeppelin 的 ERC721 實現,當然不是 ERC721 的唯一做法,你,我,都可以自己去實現 ERC721 標準。 今天要介紹的...
大量節省 Gas Fee 的 ERC721A NFT 智能合約
本文亦發佈在作者網站: 最後更新:2022-01-23 https://www.frank.hk/blog/azuki-erc721a/ 有人說以太坊的 gas fee, 動輒幾十,幾百美金,這似乎是一道避不過的坑。 參與 NFT 的鑄造亦是如此,mint 一個 NFT,少說也要幾十美金上下,如果一次 mint 多過一個 NFT,gas 的消耗更是成倍上漲。 目前流通中的 NFT 項目,大多數都是基於 OpenZeppelin 的 ERC721 實現版本來進行。 稍微解釋一下, ERC721 是一個標準,這個標準規定了作為一個 ERC721 的智能合約必須做到什麼事情。 實現這個標準有很多不同的做法(implementation), 只要智能合約能夠滿足ERC721的標準要求,則被視為是一個有效的 ERC721 智能合約。而 OpenZeppelin 的 ERC721 實現,則是目前市面上最廣為使用的一個 ERC721 實現。 因此, OpenZeppelin 的 ERC721 實現,當然不是 ERC721 的唯一做法,你,我,都可以自己去實現 ERC721 標準。 今天要介紹的...
在 Etherscan 上提交智能合約原始碼認證
本文亦發佈在作者網站: 最後更新:2021-11-20 https://www.frank.hk/blog/smart-contract-sourcecode-verification/ 這篇文章假設大家使用 hardhat 來進行智能合約開發。關於 hardhat 我有時間再詳細寫一寫懶人教學 😅。 大家如果常去 Etherscan 上查看智能合約 Smart Contract, 大概會看到兩種情況,第一種是如下這樣,在 Contract 下面看到是一堆「亂碼」,這堆「亂碼」其實是編譯過後的智能合約 ByteCode (字節碼),這明顯不是給人類閱讀的。screen 20211119231007另一種則是如下圖所示,在 Contract Tab 旁邊能夠看到一個綠色的✓,下面能夠看到智能合約的原始代碼,並且可以直接在 Etherscan 上讀取,調用智能合約的 function。screen 20211119234126明顯第二種合約給人的感覺會自信很多, 因為所有人都能夠清楚看到智能合約具體的運行邏輯,一切公開透明,不怕「黑箱作業」。那麼如何做到在 Etherscan 上「...
在 Etherscan 上提交智能合約原始碼認證
本文亦發佈在作者網站: 最後更新:2021-11-20 https://www.frank.hk/blog/smart-contract-sourcecode-verification/ 這篇文章假設大家使用 hardhat 來進行智能合約開發。關於 hardhat 我有時間再詳細寫一寫懶人教學 😅。 大家如果常去 Etherscan 上查看智能合約 Smart Contract, 大概會看到兩種情況,第一種是如下這樣,在 Contract 下面看到是一堆「亂碼」,這堆「亂碼」其實是編譯過後的智能合約 ByteCode (字節碼),這明顯不是給人類閱讀的。screen 20211119231007另一種則是如下圖所示,在 Contract Tab 旁邊能夠看到一個綠色的✓,下面能夠看到智能合約的原始代碼,並且可以直接在 Etherscan 上讀取,調用智能合約的 function。screen 20211119234126明顯第二種合約給人的感覺會自信很多, 因為所有人都能夠清楚看到智能合約具體的運行邏輯,一切公開透明,不怕「黑箱作業」。那麼如何做到在 Etherscan 上「...
2 分鐘建立你自己的 ERC20 Token
本文亦發佈在作者網站: 最後更新:2021-11-06 https://www.frank.hk/blog/2mins-erc20-token/ 不是標題黨哦,真的只要兩分鐘就可以發行你自己的 ERC20 Token。 ERC20 Token,就是和 USDT,USDC 一樣的基於以太坊的一種代幣。任何人都可以在以太坊,或者是基於以太坊的區塊鏈上建立 ERC20 代幣。構建 ERC20 智能合約首先,我們使用 OpenZeppelin 提供的在線工具來輕鬆構建 ERC20 智能合約。前往 https://wizard.openzeppelin.com/:screen 20211106193805左上角選擇「ERC20」, 然後在 Name, Symbol,Premint 等輸入框內填上你自己 Token 的資料。 Name: Token 的名稱; Symbol: Token 的符號; Premint: 預先挖掘的數量, 這個數目的 Token 在智能合約發佈的時候會自動挖出,並且發送給部署智能合約的賬戶。 選中 Feature 中的選框後,會為智能合約添加對應的功能,例如 Min...
2 分鐘建立你自己的 ERC20 Token
本文亦發佈在作者網站: 最後更新:2021-11-06 https://www.frank.hk/blog/2mins-erc20-token/ 不是標題黨哦,真的只要兩分鐘就可以發行你自己的 ERC20 Token。 ERC20 Token,就是和 USDT,USDC 一樣的基於以太坊的一種代幣。任何人都可以在以太坊,或者是基於以太坊的區塊鏈上建立 ERC20 代幣。構建 ERC20 智能合約首先,我們使用 OpenZeppelin 提供的在線工具來輕鬆構建 ERC20 智能合約。前往 https://wizard.openzeppelin.com/:screen 20211106193805左上角選擇「ERC20」, 然後在 Name, Symbol,Premint 等輸入框內填上你自己 Token 的資料。 Name: Token 的名稱; Symbol: Token 的符號; Premint: 預先挖掘的數量, 這個數目的 Token 在智能合約發佈的時候會自動挖出,並且發送給部署智能合約的賬戶。 選中 Feature 中的選框後,會為智能合約添加對應的功能,例如 Min...