# TopShot Play MetaData

**URL:** <https://forum.flow.com/t/topshot-play-metadata/2388>\
**Category:** Uncategorized\
**Created:** [September 14, 2021, 3:05pm UTC](https://forum.flow.com/t/topshot-play-metadata/2388 "2021-09-14T15:05:27Z")\
**Posts on this page:** 4\
**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:** [September 14, 2021, 3:05pm UTC](https://forum.flow.com/t/topshot-play-metadata/2388/1 "2021-09-14T15:05:27Z")

</div>

Hey there,  
does anyone have an example what you should use as an argument (metadata) for Play Creation Transaction?  
I keep getting this error in GO:  
error: invalid argument at index 0: expected value of type `{String: String}`

This is the original transaction:  
transaction(metadata: {String: String}) {

Tnx

---

<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:** [September 15, 2021, 3:35pm UTC](https://forum.flow.com/t/topshot-play-metadata/2388/2 "2021-09-15T15:35:42Z")

</div>

Ok, so I found the solution:  
The actual argument in the Golang func goes like this:  
map[string]string{  
“FullName”: “Player Name”,  
“DateOfMoment”: “2021-05-30 19:30:00 +0000 UTC”,  
“PlayCategory”: “Stunt”,  
“PlayType”: “Fast”,  
}

And this is how it looks when being added to the transaction as an argument:

metadata := cadence.NewDictionary([]cadence.KeyValuePair{  
{  
Key: cadence.String(“FullName”),  
Value: cadence.String(playMetadata[“FullName”]),  
},  
{  
Key: cadence.String(“DateOfMoment”),  
Value: cadence.String(playMetadata[“DateOfMoment”]),  
},  
{  
Key: cadence.String(“PlayCategory”),  
Value: cadence.String(playMetadata[“PlayCategory”]),  
},  
{  
Key: cadence.String(“PlayType”),  
Value: cadence.String(playMetadata[“PlayType”]),  
},  
})

```
err = tx.AddArgument(metadata)
if err != nil {
	panic(err)
}

```

I hope someone finds this helpful because it is not documented anywhere

---

<div class="post-metadata">

**Author:** ![MaxStarka](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.flow.com/maxstarka/32/56_2.png) [@MaxStarka](https://forum.flow.com/u/MaxStarka)\
**Post date:** [September 15, 2021, 7:14pm UTC](https://forum.flow.com/t/topshot-play-metadata/2388/3 "2021-09-15T19:14:16Z")

</div>

I’m pretty sure you should not create new Plays 😃  
Or you was looking for it mostly for educational purpose?

---

<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:** [September 16, 2021, 1:38pm UTC](https://forum.flow.com/t/topshot-play-metadata/2388/4 "2021-09-16T13:38:38Z")

</div>

ok, maybe I wasn’t clear @MaxStarka - I am not trying to create new Plays for NBA Top Shot. The thing that we are building is a brand new NFT marketplace - we are using most of the original NBA Top Shot smart contract functionality. Why should we reinvent the wheels…
