Dune 공부중 /sohwak
30 subscribers
12 photos
16 links
코인과 관련된 데이터 분석을 주로 끄적일 예정입니다.

주로 다룰 내용
- 당분간 주로 Dune.xyz 데이터

정리노트(Notion) : https://dune.sohwak.com/
채널 : t.me/sohwak_data
토론 : t.me/sohwak_data_chat
Download Telegram
Channel created
Channel name was changed to «코인 데이터 잡기장 w/ sohwak»
이 채널에선 코인과 관련된 데이터 분석을 주로 끄적일 예정입니다.

주로 다룰 내용
- Dune.xyz 데이터
- 코인 관련 데이터
- 온체인 데이터
- 기타 잡기

평소 공부좀 해야지 하고 미뤄뒀던거 공부하는 채널입니다.
당분간은 Dune.xyz 위주로 할 것 같슴니다.
아니... 그거밖에 할게 없을수도

업데이트 주기 : 내맘대로
정리내용 : 내맘대로
구독과 좋아요 : 니맘대로
Channel photo updated
Dune 공부중 /sohwak pinned «당분간 Dune Analytic 공부합니다. 자료 정리는 https://dune.sohwak.com/»
# Dune Analytics?

- 무료
- 각종 대시보드 제공
- 온체인 데이터를 별도로 적재해서 사용자들이 SQL로 활용 가능하도록 함
- Query를 작성해서 직접 실행해 볼 수 있음
- 여러 Query들을 모아 Dashboard를 생성할 수 있음
- 회사는 이곳 저곳에서 투자 많이 받았음 - 최근 2022-02-03 시리즈 B $70M 까지 받음
- 토큰 발행 예정은 없음

# 요금 체계
- Free와 Pro로 나뉘며, 현재 Pro는 월 $390
- 다른 사용자가 만든 대시보드나 쿼리를 보는 것은 로그인 하지 않아도 가능
- Free는 쿼리를 만들고 대시보드를 만들 수 있는 기능을 사용 가능
- Pro의 기능은
- 공개하지 않는 Private 쿼리 및 대시보드를 생성할 수 있음
- 쿼리 결과를 CSV로 Export 할 수 있음
- 공유(embed)할 때 워터마크를 뺄 수 있음
- 좀 더 빠르게 수행할 수 있다... 뭐 그런건데...
- Private 쿼리 기능 때문에 할만할 듯. 추후 아마 구독할 듯 하다.

https://dune.sohwak.com/Dune-Analytics-ce3e6f0abaf2490a91d9459b33c3a0ab
# 1. Docs
- 기본적으로 Docs는 한번 읽어보는 것이 좋다. 전반적인 내용에 대해 다루고 있고, 순서대로 학습을 원한다면 다음의 Tutorial Clips를 보는 것이 좋음.
- 테이블에 대한 Schema정보도 일부 올라와 있는데, 이 부분은 변경이 빨라서 업데이트가 좀 늦은 편이다. 다른 방식으로 개인 사전을 작성하는 것이 좋을듯.

# 2. Youtube Tutorial by Dune team
1. Dune Analytics 101 overview (4:48)
2. Dune Analytics Tutorial Series Introduction (7:45)
3. Dune Analytics Tutorial Series Episode 1: Usecases and Applications (21:57)
4. Dune Analytics Tutorial Series Episode 2: The database (1:02:05)
5. Dune Analytics Tutorial Series Episode 3: Simple Queries and creating a dashboard (1:07:43)
6. Dune Analytics Tutorial Series Episode 3.2 (31:29)
- 약간의 영어가 가능하다면 튜토리얼을 보는 것이 좋음
- 시간은 좀 걸리지만... 운동하면서(?) 봐도 됨

# 3. Discord 눈팅
- Dune의 주 채널은 Discord같다. 여기에 과거 문의 이력등도 확인할 수 있음

# 4. 이제 Dune 사이트에서 이것저것 둘러보기
- Dune 홈페이지에서 대시보드를 이루고 있는 것은 쿼리인데, 대부분의 쿼리를 확인할 수 있다.

https://dune.sohwak.com/Dune-e503646dc0ce4fe99b358602b77ef11a
Channel photo updated
Dune에선 크게 다음의 온체인 데이터를 다루고 있음

- Ethereum : 이더리움 체인
- xdai : 노시스(Gnosis) 체인
- Polygon : 폴리곤(MATIC) 체인
- Optimisim (OVM 1.0) : 옵티미즘 OVM 1.0
- Optimisim (OVM 2.0) : 옵티미즘 OVM 2.0
- Binance Smart Chain : 바이낸스 체인 (BSC)
- Solana (Beta) : 솔라나 (SOL) - 최근 추가되서 베타 서비스중

대부분 이더리움이나 이더리움 사이드 체인이네... BSC는 이더리움 포크이고. 솔라나의 경우 인기가 많아서 금새 올라온듯.

클레이튼관심자(?)로 한마디 보태자면, 클레이튼 데이터가 이런 곳에 올라올 수 있을까? 이더리움의 경우 3rd-party 앱이나 이런 생태계가 정말 많고 넓다. 쉽게 말해 커뮤니티 파워가 넘사벽이라는 것. 클레이튼의 경우 이더리움의 포크라 기술적으로는 이런쪽으로 들어오기가 더 쉽다.

https://dune.sohwak.com/Dune-c59759cdf72f4d29bab7e6c85470c803
- 스키마 및 테이블 분류 (주로 ethereum 기준으로) - Dune Tutorial 파일 참고

# Raw Data
- 다음과 같은 테이블 : ethereum.transaction , ethereum.logs , ethereum.traces ...
- 인코딩된 데이터가 들어있어 바로 사용하기 어렵다는 단점

# Decoded Data
- 다음과 같은 테이블 : superrare."SuperRare_v2_evt_Transfer", aave."LendingPool_eve_Borrow", Uniswap_v2."Pair_evt_Sync"
- 대부분 특정 Contract를 decoding한 2차 테이블들

# Token Standard Tables
- 다음과 같은 테이블 : erc20."ERC20_evt_Transfer", erc721."ERC721_evt_Transfer", erc1155."ERC1155_evt_Transfer"
- 이건 ethereum의 스탠다드컨트랙트를 모은 테이블.
- 꽤 유용함

# Prepared Data
- 다음과 같은 테이블 : dex.trades, lending.collateral_change
- Dune 팀이나 커뮤니티에 의해 만들어진 테이블
- 소스는 github 레파지토리에서 관리함
- 다음을 보면 이해하기 쉬움. raw데이터의 여러 테이블을 조인해서 집계 테이블을 생성한 셈

# Price Tables
- 다음과 같은 테이블 : prices.usd, dex.view_token_prices
- 예를들어 `prices.usd`의 경우 이더리움 데이터만으로는 집계 불가능. 여기선 coinpaprika 또는 coingekco의 데이터를 사용했다고 함.
- 전체 데이터를 가져올 수는 없고, 특정 대상만 가져오고 있음. 관련 github

# Lookup Tables
- 다음과 같은 테이블 : erc20.tokens , erc20.stablecoins , Compound.view_ctokens ...

크게는 가공되지 않은 raw table + 여기서 파생된 derived table + 그리고 외부에서 가져온 또는 별도로 만들어진 table들이 있음

https://dune.sohwak.com/Dune-e503646dc0ce4fe99b358602b77ef11a#a3181f7893c341ffb9108bb91b2e36ae
# Dune 유용과 한계

- 주로 이더리움 및 이더리움과 관련된 데이터이기 때문에 다른 온체인 또는 크립토 거래소 같은 오프체인 데이터는 분석하기 어려울 수 있음
- Dune팀에 의해 적재되는 데이터 자체의 정합성은 신뢰할 수 있는 수준으로 보임. 다만 대시보드 및 쿼리는 사용자에 의한 생성되는 쿼리이므로 정확성이 떨어질 수 있음

# Dune 학습 필요 사전 지식

- 블록체인 특히 이더리움 관련 지식
Dune이 대부분 이더리움 또는 이더리움과 연관된 데이터를 다루고 있다. 따라서 이더리움에 대한 지식은 거의 필수이다. 주소, 토큰, 토큰전송, 컨트랙트등의 기본 개념은 반드시 필요하다. 개발자로의 컨트랙트 프로그래밍 관련 지식이 있다면 더할 나위 없음.
- 데이터베이스 및 SQL Query에 대한 이해
SQL에 대해 잘 몰라도 Dune을 사용하는 부분에는 문제가 없다. 다만, SQL에 대한 지식이 있다면 해당 쿼리를 확인하고 변형해서 활용할 수 있다.
Dune Analytics에 생성한 제 대시보드가 Dune Digest에 수록되었습니다.

Assange 석방 모금을 위한 AssangeDAO 관련 대시보드였는데요.
(막상 보상토큰인 JUSTICE는 반토막 난 상태입니다 ㅠㅠ )

대시보드 : https://dune.xyz/sohwak/AssangeDAO-Dashboard

다이제스트 : https://dunedigest.substack.com/p/dune-digest-16
# OpenSea의 정확한 Floor Price 찾아보기 → 불가능함

FP는 NFT에서 나름 쓸모있는 지표인데... 대략 Buy Now가 가능한 최저 가격을 의미하는 것 같다. 따라서 주문을 내놓기만 하고 팔리지 않아야 함. 아니 팔려도 된다? 특정 시간대에 팔린 최저 가격을 해도 좀 비슷할 것 같아 보이고.

대시보드를 살펴보면, 과거 테이블들은 대부분 opensea."WyvernExchange_evt_OrdersMatched", 최근 것들은 nft.trades 테이블을 이용해서 거래된 것들의 백분위 하위 것들을 가져오는 방식으로 집계하게 된다.

좀더 정확한 FP를 찾아보고 싶어서 조금 분석해보니... 결론적으로는 불가능하다. 가장 큰 문제는 Opensea에서 Listing때는 별도로 트랜잭션을 날리지 않는다.

일반적으로 Opensea에서 판매를 하려면 다음과 같은 과정을 거친다.

1. Set Approval For All 로 해당 NFT에 대해 전송할 수 있는 권한을 OpenSea에게 줌
2. 실제 Listing은 메타마스크로 트랜잭션 없이 서명만 함
3. 체결이 될 경우 Atomic Match_ 로 NFT를 전송하고 정산함
4. Listing은 기한에 따라 expire 되거나 Cancel Order_ 트랜잭션을 통해 취소할 수 있음

FP라면... Listing → (Sale | Expired | Cancel) 이력의 집합들을 가지고 구해야 하는데, 정작 개별 NFT의 Listing 시점을 구할 수 없으므로... 그냥 맘편하게 sale을 가지고 적당히 백분위에서 하위 3~10%정도의 가격을 어림(Approx.)하게 되는 것 같다.
# Dune 대시보드 탐색

이더리움 가스 관련 여러 트랜드를 볼 수 있는 대시보드가 있네요

https://dune.xyz/hildobby/Gas
# Dune 대시보드 큐레이션

NFT중 Mfers 에 대한 대시보드입니다.
https://dune.xyz/SSC0x/Mfers

중간에 보면 sales를 NFT의 attribute를 색별로 분류하여 표시한 차트가 있습니다.
NFT 컨트랙트 코드에는 이 attribute가 없습니다. 그래서 이렇게 별도로 확인해서 아래처럼 CASE로 매핑해야 저것 처럼 표현할 수 있습니다.

CASE
WHEN nft_token_ids_array[1] IN ('3','214',...) THEN 'zombie'
WHEN nft_token_ids_array[1] IN ('494','905',...) THEN 'ape'
...


...수작업이 많이 들어가죠.
👍1
최근 떠오르는(?) NFT 거래소 X2Y2의 보상토큰 $X2Y2 관련 대시보드를 만들어봤슴다...

대시보드 - https://dune.xyz/sohwak/X2Y2-Token-Distribution-Analysis

소개글 - https://t.me/sohwak/39
Channel photo updated
Channel name was changed to «Dune 공부중 /sohwak»
최근, NFT들이 소유자의 승인 없이 오픈씨에서 저가에 거래되었다는 이야기들이 있습니다. 특히나 소유자가 리스팅하지 않은 NFT조차 저가에 팔렸다고 합니다. 며칠 전 해커가 메일로 사용자들을 유인했던 피싱과는 전혀 다른 케이스로 보입니다.

제보받은 트랜잭션들을 분석해보면 대부분 비슷한 형태입니다.

1. 익명의 A계정은 믹싱툴인 Tornado Cash로 부터 ETH를 전송받습니다. (거래금액 및 수수료용)
2. A계정은 다른 사용자 B의 NFT를 저가(평균가격의 10~30%정도)에 구매합니다.
<- 여기에 문제가 있습니다. 사용자 B의 경우 NFT를 저가에 리스팅하지 않거나 아예 리스팅하지 않은 상태입니다. 여기에 문제가 있다면 오픈씨에 문제가 있을 것이라는 추측입니다.
3. A계정은 저가에 구매한 NFT를 오픈씨나 다른 NFT 거래소에 리스팅합니다.
4. NFT가 판매되면 A계정은 해당 ETH를 다시 믹싱툴인 Tornado Cash에 보냅니다.

관련하여 Dune Analytics에 대시보드를 생성하였습니다.
https://dune.xyz/sohwak/Trace-suspicious-NFT-tradings-on-OpenSea

대시보드로 확인할 수 있는 구매건은 다음과 같습니다.
- 오픈씨의 이더리움 거래
- 구매자는 최초 ETH를 Tornado Cash로 부터 받음
- 구매한 NFT는 해당 NFT가 최근 3일간 구매금액의 평균보다 50% 이하의 가격으로 구매함

트랜잭션을 확인해도 해커를 특정하기는 어렵습니다. 어쨌건 이런 NFT 탈취건을 해결할 수 있게 도움이 되면 좋겠습니다.
1
우크라이나 도네이션에 대해 스냅샷을 한다는데, 갑자기 왜... 전쟁도 지고있는것 같던데;

어쨌건 Dune에는 우크라이나 기부 관련 대시보드들이 몇개 있습니다. Dune에는 모든 체인이 있는게 아니라 Ethereum, BSC, Polygon등 주로 이더 관련 체인만 있습니다. 그래서 기부금액도 이더리움쪽만 집계해서 보여줍니다.

아래 대시보드는 msilb7라는 분이 만드신건데, 가장 정보가 많습니다.
https://dune.xyz/msilb7/Ukraine-Crypto-Donations

총 6개의 기부처에 대한 정보가 있고, 기간별/기부처별/토큰별 기부현황을 나타냅니다. (정부, PartyBid, Endaoment, RELI3F.xyz, Unchain Fund, ukraineDao) 6개 기부처 이더리움 체인만 대략 1900만 달러 상당의 토큰이 모아졌습니다.

아래 대시보드는 저라는 분이 만들었는데, 정부 주도 주소의 이더리움만 포함하고 있습니다.
https://dune.xyz/sohwak/Token-deposit-for-Ukraine

Top List도 있는데, 670 ETH가 가장 크고 (AssangeDao에서 한 것 같던데...) 그다음이 1M USDT (누구지?), 100 ETH,.. 등의 순위입니다.