以太幣交易所 以太幣交易所
Ctrl+D 以太幣交易所
ads

一文了解如何使用內存池數據進行 UX 研究,改善 NFT 拍賣體驗_ION

Author:

Time:1900/1/1 0:00:00

用戶體驗(UX)描述了人們在與系統或服務交互時的感受,包括多個因素,包括可用性、設計、營銷、可訪問性、性能、舒適度和實用性。唐諾曼曾經說過,

“萬物皆有個性;一切都發出了情感信號。即使這不是設計師的本意,瀏覽網站的人也會推斷出個性并體驗情感。糟糕的網站具有可怕的個性,通常在不知不覺中向用戶灌輸可怕的情緒狀態。我們需要設計東西——產品、網站、服務——來傳達任何想要的個性和情感。”以太坊的個性是一個極其高深莫測且容易被誤解的人。更糟糕的是,大多數用戶在使用您的界面或錢包時甚至不會將其視為與以太坊進行交互。如果你曾經在Artblock拍賣的實時聊天中,你會注意到拍賣一結束,至少有十幾個人抱怨他們沒有搶到份額是Metamask的錯。我認為在過去的一年里,以太坊上許多dapp的用戶體驗在產品交互和交易的可解釋性方面都有了很大的改進。在大多數情況下,dapps不再只是在您簽署交易后給您留下一個加載微調器。

即使dapps的設計總體上在改進,但我不確定UX研究的深度。當我看到對各種協議的數據分析或研究時,用戶大多被視為同質的。根據我所看到的UniswapV3流動性提供商和RabbitholeQuesters的一些分析,這種情況有所改變,但即便如此,這些分析仍主要集中在剛剛確認的鏈上交易上。根據我自己的經驗,大多數情緒誘發和行為怪癖發生在我提交、等待、加速或取消交易時。對于某些應用程序,用戶可能會在提交交易后離開并去做其他事情。但是對于像Artblock的拍賣這樣的產品,他們會一直待到確認發生為止,可能會檢查所有可能的更新并增加焦慮。

我認為通過開始更多地利用內存池,我們可以更好地理解用戶行為和摩擦。內存池是節點臨時存儲未確認交易的地方。這意味著如果您提交、加速或取消您的交易,那么這些操作將首先顯示在內存池中。需要注意的是,來自內存池的數據并未存儲在節點中,因此您無法像查詢已確認交易那樣查詢歷史數據。從這里,您可以看到他們提交了一些交易,將交易加速了很多次,但遠未達到所需的gas價格,最終在20個區塊后看到了確認。我相信這是用戶體驗和他們在整個過程中可能感受到的情緒的一個很好的代表。如果我們了解不同用戶群體在這個循環中的行為,我們就可以弄清楚如何補充他們的決策或緩解他們的焦慮。據我所知,幾乎只有以太坊基金會、所有核心開發人員和一些錢包團隊出于用戶體驗的原因利用內存池數據。

用戶體驗研究論文:通過隨著時間的推移通過拍賣查看用戶的行為以及他們的錢包歷史,我們可以開始為不同的用戶群體提供行為身份。從這里,我們可以確定要嘗試緩解的主要問題。為此,我們將使用Blocknative獲取一個月的ArtblocksAuctions數據,并使用Dune查詢對這些地址的歷史進行分層。

這篇文章將比我之前的一些文章更具技術性,因為我相信這項工作可以而且應該很容易推廣。我想強調的是,我的背景不是用戶體驗研究,我純粹是在嘗試我認為加密原生用戶體驗研究的樣子。

數據來源和預處理所有拍賣數據

如果你對技術位不感興趣,請跳到下一節——關于特征工程

比特小鹿二季度財報:比特幣產量為758枚,同比增長45.5%:8月11日消息,比特小鹿(Bitdeer)公布截至2023年6月30日第二季度財報,第二季度總收入為9380萬美元,同比增長5%;第二季度凈虧損為4040萬美元,主要來自上市費用與合并的股份支付費用,2022年同期凈虧損1560萬美元;第二季度調整后利潤為230萬美元;第二季度調整后EBITDA為1870萬美元;截至6月30日,Bitdeer持有現金于現金等價物為1.302億美元。2023年第二季度總算力為18.8EH/s,礦機數為199,000臺;2023年第二季度,Bitdeer自挖礦業務產出758枚BTC,同比增長45.5%。[2023/8/11 16:21:17]

Blocknative和Mempool數據流

使用Blocknative的Mempool瀏覽器,您可以過濾提交給特定合約或來自特定錢包的交易。就我而言,我想聽聽Artblock的NFT合約列入白名單的鑄幣合約。您可以在此處找到我使用的流,如果您想使用完全相同的設置,請將其保存下來。

您可以在其子圖?中使用以下查詢找到列入白名單的鑄幣地址:

{contracts(first:2){idmintWhitelisted}}獲得所有購買的訂閱過濾器需要三個步驟:

使用“創建新訂閱”按鈕添加新地址單擊地址旁邊的“ABI”按鈕添加ABI。就我而言,我只需要“購買”功能。{"inputs":,"name":"purchase","outputs":,"stateMutability":"payable","type":"function"}

3.為methodName匹配購買添加過濾器

最后,您的設置應如下所示:

為了存儲這些數據,我創建了一個ngrok/express端點來存儲在本地運行的SQLite數據庫中。我創建了一個GitHub模板?,其中包含復制此設置的步驟。可能這里要記住的最重要的一點是,在Blocknative帳戶頁面中將POST端點添加為webhook時,您需要將POST端點作為ngrokURL的一部分。

關鍵預處理函數

多個交易哈希

當您加速或取消交易時,原始交易哈希將替換為新交易。這意味著如果您想在其整個生命周期中跟蹤用戶的交易,您需要將新交易哈希與原始交易哈希進行協調。假設您將交易加速五次,您將擁有總共六個哈希值。我通過將tx_hash的字典映射到新的replaceHash來調和這一點,然后遞歸替換。

replaceHashKeys=dict(zip(auctions,auctions))#assigntx_hashbasedonreplacements,justtokeepconsistency.replaceHashKeys.pop("none")#removenonekeydefrecursive_tx_search(key):ifkeyinreplaceHashKeys:returnrecursive_tx_search(replaceHashKeys)else:returnkeyauctions=auctions.apply(lambdax:recursive_tx_search(x))

Cathie Wood旗下ARK基金再次增持419324股COIN:6月7日消息,Ark Invest Daily數據顯示,Cathie Wood旗下多支ARK基金今日合計增持共419324股Coinbase股票(COIN),其中ARKK加倉329773股,ARKW加倉53885股,ARKF加倉35666股。

按今日COIN的收盤價51.61美元/股計算,合計總價值約為2164萬美元。[2023/6/7 21:21:10]

區塊編號問題

刪除的交易的區塊號為0,所以為了解決這個問題,我按時間戳按升序對數據幀進行排序,然后進行向后填充,這樣0就會被它放入的正確區塊號替換。這是功能的重要修復工程。

auctions=auctions.sort_values(by="timestamp",ascending=True)auctions=auctions.replace(to_replace=0,method='bfill')#dealwithdroppedtxsthatshowasblocknumber0

在主要拍賣期間處理鑄造

對于大多數項目,藝術家會在拍賣向公眾開放之前鑄造一些作品。有些項目不會立即售罄,因此在拍賣開始幾天后,您仍會收到鑄造。我的分析集中在關鍵的拍賣時段,主要是前30分鐘。為了擺脫上面的兩個鑄造案例,我刪除了基于區塊編號的異常值。

to_remove_indicies=forprojectinlist(set(auctions)):auction_spec=auctions==project]all_times=pd.Series(list(set(auction_spec.blocknumber)))to_remove_blocktimes=all_timesiflen(to_remove_blocktimes)==0:breakto_remove_indicies.extend(auction_spec.index.isin(to_remove_blocktimes)].tolist())auctions.drop(index=to_remove_indicies,inplace=True)

添加荷蘭拍賣價格

對于數據集中除項目118之外的所有項目,均使用荷蘭式拍賣價格格式。我使用dune查詢獲取薄荷價格數據,然后將其合并到數據集上。我不得不對有內存池操作但在拍賣期間沒有確認的塊使用向前和向后填充。

auction_prices=pd.read_csv(r'artblock_auctions_analytics/datasets/dune_auction_prices.csv',index_col=0)auctions=pd.merge(auctions,auction_prices,how="left",left_on=,right_on=)auctions.sort_values(by=,ascending=True,inplace=True)auctions.fillna(method="ffill",inplace=True)auctions.fillna(method="bfill",inplace=True)

區塊鏈公司Lambda256與加密公司VNX合作開發安全代幣:金色財經報道,韓國區塊鏈公司Lambda256宣布與列支敦士登監管的加密公司VNX合作,已將貨幣和黃金等大宗商品代幣化。他們計劃共同使用Lambda256的區塊鏈技術為全球投資者提供安全代幣。

Lambda256通過其Luniverse平臺為2000名客戶提供服務,該平臺支持公共和許可區塊鏈。[2023/6/2 11:55:08]

每次拍賣的特征工程

如果您對技術部分不感興趣,只需閱讀粗體部分并跳過其余部分。

在數據科學中,特征是從更大的數據集計算出來的變量,用作某種模型或算法的輸入。所有特征都在preprocess_auction函數中計算,并且每次拍賣都會計算,而不是將所有拍賣組合成一個特征集。

第一組特性是交易狀態的總數,是一個簡單的pivot_table函數:

number_submitted:提交的交易總數cancel:以取消結束的交易計數failed:以失敗結束的交易計數dropped:以丟棄結束的交易計數confirmed:以確認結束的交易計數我之前提到過,由于各種問題,一些數據沒有用于拍賣,這些交易從數據集中刪除。

下一組特性包括它們的gas行為。這里的關鍵概念是捕捉他們的交易gas與每個區塊的平均確認gas相差多遠。然后,我們可以為整個拍賣的gas價格距離的平均值、中位數和標準差創建特征。有一堆轉置和索引重置以按正確的順序獲取區塊編號列,但重要的函數是fill_pending_values_gas,它在捕獲的操作之間向前填充gas價格。這意味著,如果我在區塊編號1000處使用0.05ETH的gas進行交易,而我的下一個操作是在區塊編號1005之前我加速到0.1ETH的gas,那么此函數將用0.05ETH填充編號1000-1005之間的區塊。

deffill_pending_values_gas(x):first=x.first_valid_index()last=x.last_valid_index()x.loc=x.loc.fillna(method="ffill")returnx

第三組特性是計算拍賣中采取的行動的總數和頻率。在這里,我們從每個塊的總操作的支點開始,并進行一些特殊計算以獲取每個事務的第一個待處理實例:

get_first_pending=df=="pending"]#firstsubmittedget_first_pending=get_first_pending.drop_duplicates(subset=,keep="first")auctions_time_data=pd.concat(=="speedup"]],axis=0)time_action=auctions_time_data.pivot_table(index=,columns="blocknumber",values="status",aggfunc="count")\.reindex(set(df),axis=1,fill_value=np.nan)

Lido與分布式驗證器技術提供商Obol Network試點集成以加強對單點故障的保護:12月25日消息,流動性質押協議Lido與分布式驗證器技術 (DVT) 提供商Obol Network分享最初的試點集成情況,過去一個月,11個Lido節點運營商(NO)參與了Goerli測試網上的試點,該試點展示了使用DVT運行Lido驗證器的好處,并且是實現無許可參與Lidos驗證器集目標的一個組成部分。

Lido表示,DVT將進一步加強對單點故障的保護,Obol Network的DVT解決方案是通過名為Charon的中間件實現的,使驗證器能夠以容錯、分布式的方式運行,還將允許Lido擴展和開放無需許可的操作者集,同時減輕相關的單一操作者風險。[2022/12/25 22:06:14]

從這里我們通過三個步驟到達average_action_delay:

我們對每個區塊采取動作action的數量我們在沒有動作的情況下丟棄區塊,然后計算剩余區塊編號之間的差值。我們為每個區塊采取的每個額外動作添加一個0。對差異和給我們average_action_delay的添加的0取平均值,defget_actions_diff(row):row=row.dropna().reset_index()actions_diff_nominal=list(row.diff(1).fillna(0))#taketheblockswithmulipleactionsandsubtractone,thensumup.zeros_to_add=sum(]])actions_diff_nominal.extend(list(np.zeros(int(zeros_to_add))))actions_diff=np.mean(actions_diff_nominal)if(actions_diff==0)and(zeros_to_add==0):return2000#meaningtheynevertookanotheractionelse:returnactions_diff

total_actions簡單得多,因為它只是整個樞軸的動作總和。

time_action=time_action.iloc.sum(axis=1)

最后一個依賴時間的特性是block_entry,由于引入了荷蘭式拍賣,這是一個重要的特性。本質上,這會跟蹤自開始以來提交事務的區塊。

get_first_pending=get_first_pending-get_first_pending.min()entry_pivot=get_first_pending.pivot_table(index="sender",values="block_entry",aggfunc="min")

price_eth也被添加為一個特性,它與block_entry點相關聯。

最后一組特性基于Dune查詢,特別是自第一次交易以來的天數、交易中使用的總gas以及交易總數。為了以正確的格式獲取地址數組,我在讀入SQL數據后使用了以下代碼行:

路透社:盡管加密市場動蕩,資產管理公司仍計劃推出代幣化基金:金色財經報道,最近幾個月,加密貨幣的投資者經歷了瘋狂的波動,但這并沒有嚇倒那些準備利用區塊鏈技術將基金代幣化,出售給小型儲戶的資產管理公司。

私募市場投資管理公司Hamilton Lane和Partners Group在過去一年中已經將基金代幣化,并表示他們正在考慮進一步的產品。據知情人士透露,英國資產管理公司Abrdn希望在今年推出一個代幣化基金,而其競爭對手Schroders也在投資這一領域。在這類基金中,代幣是通過證券發行的,投資者有權參與。支持者稱,區塊鏈讓代幣或基金得到安全管理,并能幫助小投資者購買像私募股權這樣的非流動性資產,這些資產往往能提供更高的回報,但很難快速交易。(路透社)[2022/8/27 12:51:54]

all_users=list(set(auctions.apply(lambdax:x.replace('0x','\\x'))))all_users_string="('"+"'),('".join(all_users)+"')"

對此的Dune查詢相當簡單。我將地址字符串粘貼到VALUES下,并制作了一些CTE以獲得我想要的功能。在最后的SELECT中,我也嘗試添加每個地址的ens。您可以在此處找到查詢:https://dune.xyz/queries/96523

最后,我們只是合并了每個錢包的活躍天數、使用的總gas和交易總數的數據。

auctions_all_df=pd.merge(auctions_all_df,wh,on="sender",how="left")auctions_all_df.set_index(,inplace=True)

完成所有這些后,我們終于準備好運行一些有趣的無監督學習算法,并嘗試驗證我們對用戶群的假設。

聚類和可視化用戶組

在我開始這個項目之前,我預計會看到以下用戶組從數據中彈出:

設置然后忘掉:這里應該有兩個群體,那些設置了非常高的gas和平均/低gas的交易,然后在拍賣的剩余時間里不要碰它。加速:這里也應該有兩個群體,一類是經常加速并直接更新交易作為gas價格的因素,一類是經常加速交易但gas價格基本上沒有變化的人。我對驗證這些群體非常感興趣,看看每個群體有多大,看看是否有用戶在多次拍賣過程中在群體之間移動。最簡單的方法是使用無監督機器學習,根據所有特征的可變性來識別用戶組群。從本質上講,這就像查看一個州的收入分配,然后將其分成不同收入集中度、地理坐標和年齡的子分配。請注意,這不是分箱,其中分布被分成相等的范圍-它是根據整個范圍內的觀察密度計算的。我們將采用的方法稱為“無監督”,因為我們的數據集沒有任何現有標簽,而不是像回歸分析這樣的方法,其中預測的值可以被驗證為正確或錯誤。

我決定使用的算法稱為k-means,其中k代表您希望識別的集群數量。每個集群都有一個“質心”,就像一個圓的中心。有多種方法可以確定最佳集群的數量,我使用的兩種方法是肘點和輪廓分數。這兩種提問方式都很奇葩,

“每個額外的集群是否有助于增加集群的密度并保持集群之間的足夠分離?”我發現3個集群在大多數慣性改進方面是最佳的,同時保持高輪廓分數。

本次分析使用了6次拍賣

選擇集群后,我們希望能夠可視化并驗證它們的存在。這里有超過15個變量,因此我們需要減少維數以繪制它。減少維數通常依賴于PCA或t-SNE算法,在我們的例子中我使用了t-SNE。不要太擔心理解這部分,這些算法本質上捕獲所有特征的方差,為我們提供X和Y分量,使點彼此的傳播最大化。

讓我們從8月4日看看項目118,LeWittGeneratorGenerator:

這些是使用KDE計算的按集群劃分的每個變量的子分布。顏色與上述集群中的顏色相匹配。

在查看了每個變量的子分布和一些數據示例后,我能夠對集群進行分類。Orange集群是速度最快的組,同時平均提交的gas交易也略低。Blue和Green集群彼此表現出相似的行為,但Blue中的地址通常比Green集群中的地址具有更少的歷史記錄。

縱觀全局,原來的“提速”和“高低設置”產生兩組的假設似乎是錯誤的。相反,我們有一個“加速”群體和一個“一勞永逸”群體。我認為“設置并忘掉”群體中的新錢包與舊錢包可能在實際用戶中有很多重疊,用戶只是創建了新錢包來競標更多的鑄幣。基于他們的不耐煩和低于平均水平的gas價格,“加速”群體在我看來要么經驗不足,要么比其他用戶更貪婪。在整個拍賣過程中,這群人似乎也相當焦慮。令我驚訝的是,加速群體占投標者總數的比例較小,因為我曾預計該群體占投標者的60-70%,而不是30%。

現在,這個用戶行為研究真正有趣的地方在于將項目118與項目140。

這是8月21日開始的項目140GoodVibrations的集群聚集:

我們可以看到,現在大部分聚類變異性來自block_entry、price_eth和所有gas_behavior特征。這與項目118的主要變量大相徑庭。在118中,設定價格意味著人們以相當均勻的分布進入拍賣,而“加速”群體使行動相當無休止-可能非常焦慮。

在項目140中,我們在average_action_delay或total_actions中沒有看到相同的動作差異,相反,我們可能看到相同的“加速”群體在非常晚的階段進入并設置遠低于平均水平的gas價格,如平均gas行為。綠色集群可能代表比橙色集群有更多經驗的用戶,但他們的行為仍在橙色和藍色之間轉換。如果我嘗試將其映射到118中的集群,我相信“加速”群體現在已成為進入較晚并發出低gas量的“貪婪”群體。“設置并忘記”群體很好地映射到“早搶”群體,因為他們都表現出很好的耐心和足夠的gas投標安全性凈值。

我稱橙色群體為“貪婪”,不僅因為他們的行為,還因為他們的交易失敗率。

對于項目118,“加速”群體與“設置并忘掉”群體的失敗率在10-15%之間。

percent_losttakes(cancel+dropped+failed)/number_submitted

對于項目140,“貪婪”集群的失敗率約為69%,而“早期搶奪”群體的失敗率約為5-15%。

總的來說,我對此的理解是,該團體的壞習慣和情緒被放大了——我覺得我們在焦慮→貪婪之間做出了權衡。這可能使拍賣的壓力較小,但最終導致更多用戶感到不安。

我確信可以進行更細粒度的分析,以根據工廠/策劃/游樂場或藝術家本人對拍賣進行進一步細分。隨著社區的不斷發展,這只會變得更加有趣和復雜,并且情緒在單次拍賣和未來拍賣中是否回歸都會發揮更大的作用。

這項對多次拍賣的研究幫助我們驗證了我們的假設,了解用戶組的比例,并了解用戶的好壞行為如何隨時間變化。現在我們需要將其插入到產品周期流程的其余部分中。

我們從哪里開始:

我為此只選擇Artblocks拍賣而不是混合平臺的原因是因為我想尋找一個可以控制界面和項目類型可變性的地方。這應該為我們提供了相當一致的用戶和行為類型。

這只是UX研究周期的開始,因此理想情況下,我們可以繼續以下步驟:

使用無監督機器學習算法來識別用戶群體并查看有多少人在進入拍賣時犯了“錯誤”。這是我們今天介紹的步驟?。創建一個新的用戶界面,例如出價屏幕上的直方圖視圖,或顯示大多數人通常何時進入/擁擠拍賣以及以什么價格參加的歷史數據。任何可以為用戶提供當前和歷史背景的東西,尤其是來自速度集群的那些。在每次拍賣中,通過創建的算法運行內存池/錢包數據,以查看用戶群體是否發生了變化,以及特定用戶是否“學會”以不同方式參與拍賣。我認為如果做得好,可以在這一步中找到最大的價值。使用ENS或其他標識符來幫助補充這個分組也會成倍地有用。根據結果??,繼續迭代用戶界面和設計。您還可以運行更明智的A/B測試,因為您甚至可以通過基于用戶的最后一個集群進行有根據的猜測來確定要顯示的屏幕。荷蘭式拍賣風格的變化也是第2步的一個例子,我們能夠看到用戶行為的明顯轉變。雖然通常這種A/B測試側重于提高參與度或轉化率,但我們在這里優化的是用戶的學習和改進能力。如果在多平臺背景中進行迭代,這可能會變得更加健壯,以便我們可以研究某人如何在生態系統級別進行學習。由于我的Artblocks用戶研究全部基于公開來源的數據,因此可以被任何其他拍賣/銷售平臺復制和補充。加密可能是第一個擁有同步且透明的用戶組和用戶體驗研究的行業,可應用于產品和學術界。Nansen錢包標簽已經朝著這個方向邁出了一步,但是當來自不同產品的團隊從不同的方面和方法構建它時,情況就不一樣了。

我最終的設想是使用數據來構建以下用戶角色:

我想購買一個Fidenza,所以我可以通過私人銷售購買一個,自己也可以在拍賣會上出價,在prtyDAO出價拍賣中出價,或者通過fractional.art購買一小部分。我一般喜歡Fidenzas,所以我只會購買NFTXFidenza指數代幣或fractional.art上的ArtblocksNFT籃子。我已經是一個收藏家,所以我想使用我已經持有的一組精選的NFT和ERC20交換或競標Fidenza。我喜歡通過初始鑄造與二級市場進行收購的熱潮,并大量參與Artblocks在線鑄造之類的拍賣。我希望你覺得這個項目有趣和/或有幫助,我玩得很開心。感謝Blocknative的人們為我提供幫助,感謝Artblocks的社區回答我的許多拍賣問題。與往常一樣,如有任何問題或想法,請隨時與我們聯系!

您可以在此處找到包含所有數據和腳本的GitHub存儲庫。該腳本可能有點難以閱讀,因為我仍在重構和清理它。當我分析8月最后幾次拍賣的新模式時,這里的腳本和一些分析可能會更新。

Tags:IONCTIONSAUCTIONlion幣騙局Arctic group ChainMONSTRAUCTION價格

芝麻開門交易所下載
四大行首度披露數字人民幣業務進展,看看這份“期中”成績單透露了什么_數字人

原標題:《四大行“激戰”數字人民幣》 來源:北京商報 作者:北京商報記者?孟凡霞?李海顏數字人民幣迎來試點“熱潮”,國有大行“期中考”成績單首度披露了數字人民幣業務進展.

1900/1/1 0:00:00
政策頻發,全國區塊鏈應用不斷涌現 | 產業區塊鏈發展周報_區塊鏈

摘要 產業動態: 聯合國選擇采用UniqueNetwork運行NFT計劃以激勵人們采取行動應對氣候變化嘉楠科技戰略投資美國像素.

1900/1/1 0:00:00
從聽音樂到擁有音樂——K-POP(韓國流行音樂)進入 NFT領域_NFT

前言: 本文翻譯整理來源于韓國新聞網韓聯社,介紹了韓國大型娛樂公司JYP用K-POP流行音樂進軍NFT行業的消息.

1900/1/1 0:00:00
Poly Network攻擊者:很少看到專業安全團隊報告已上線合約的關鍵漏洞_POL

巴比特訊,8月14日,PolyNetwork攻擊者再次留下鏈上信息,主要內容如下:1.FBI沒有試圖聯系我。我很高興他們和其他安全團隊可能會從這場“游戲”中受益.

1900/1/1 0:00:00
一文了解NFT賽馬游戲ZED RUN_ZED

區塊鏈游戲原本就要即將消逝遠去,神奇的區塊鏈世界總有無數的熱情感染這個世界。AxieInfinity、SAND、YGG等重要代表游戲不僅僅重新點燃了區塊鏈游戲的熱情,還帶動了NFT板塊.

1900/1/1 0:00:00
37家上市公司持有比特幣近90億美元,有人虧2200萬有人賺20多億_比特幣

來源:財聯社|區塊鏈日報 記者:徐賜豪 一年前的8月11日,美股上市公司Microstrategy宣布首次購買BTC.

1900/1/1 0:00:00
ads