# NBA Top Shot architecture reverse engineering

**URL:** <https://forum.flow.com/t/nba-top-shot-architecture-reverse-engineering/2114>\
**Category:** Uncategorized\
**Created:** [June 23, 2021, 2:35pm UTC](https://forum.flow.com/t/nba-top-shot-architecture-reverse-engineering/2114 "2021-06-23T14:35:13Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![dh77](https://avatars.discourse-cdn.com/v4/letter/d/ac91a4/32.png) [@dh77](https://forum.flow.com/u/dh77)\
**Post date:** [June 23, 2021, 2:35pm UTC](https://forum.flow.com/t/nba-top-shot-architecture-reverse-engineering/2114/1 "2021-06-23T14:35:13Z")

</div>

Hello,  
we’re trying to reverse engineer how NBA Top Shot is working and one of the main things is to understand where certain resources (metadata) are stored and what is stored on-chain and what off-chain.  
Example:  
Series - are they stored in private storage of the Admin account only?  
Sets - same question  
Plays - are they stored within the Moment NFT or?

Account Details - I guess those are stored off-chain inside a DB

---

<div class="post-metadata">

**Author:** ![bluesign](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.flow.com/bluesign/32/1359_2.png) [@bluesign](https://forum.flow.com/u/bluesign)\
**Post date:** [June 23, 2021, 3:28pm UTC](https://forum.flow.com/t/nba-top-shot-architecture-reverse-engineering/2114/2 "2021-06-23T15:28:58Z")

</div>

Series, Sets, Plays all stored on contract.

[https://flowscan.org/contract/A.0b2a3299cc857e29.TopShot](https://flowscan.org/contract/A.0b2a3299cc857e29.TopShot)

---

<div class="post-metadata">

**Author:** ![dh77](https://avatars.discourse-cdn.com/v4/letter/d/ac91a4/32.png) [@dh77](https://forum.flow.com/u/dh77)\
**Post date:** [June 25, 2021, 2:31pm UTC](https://forum.flow.com/t/nba-top-shot-architecture-reverse-engineering/2114/3 "2021-06-25T14:31:16Z")

</div>

Tnx @bluesign that makes sense. Is there a simple “storage explorer” out there or do I need to build my own to see the metadata?  
Like this one:  
[https://medium.com/@eric.ren\_51534/polling-nba-top-shot-p2p-market-purchase-events-from-flow-blockchain-using-flow-go-sdk-3ec80119e75f](https://medium.com/@eric.ren_51534/polling-nba-top-shot-p2p-market-purchase-events-from-flow-blockchain-using-flow-go-sdk-3ec80119e75f)

---

<div class="post-metadata">

**Author:** ![bluesign](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.flow.com/bluesign/32/1359_2.png) [@bluesign](https://forum.flow.com/u/bluesign)\
**Post date:** [June 25, 2021, 5:50pm UTC](https://forum.flow.com/t/nba-top-shot-architecture-reverse-engineering/2114/4 "2021-06-25T17:50:49Z")

</div>

metadata is on contract, with script you can get all.

---

<div class="post-metadata">

**Author:** ![dh77](https://avatars.discourse-cdn.com/v4/letter/d/ac91a4/32.png) [@dh77](https://forum.flow.com/u/dh77)\
**Post date:** [June 28, 2021, 3:48pm UTC](https://forum.flow.com/t/nba-top-shot-architecture-reverse-engineering/2114/5 "2021-06-28T15:48:07Z")

</div>

ok, tnx @bluesign - I’ve build a basic NBA Top Shot explorer
