# Explain to me syntax like "!PubKeyHash" please - what does "!" here means? Where PubKeyHash comes from? etc

**URL:** <https://forum.cardano.org/t/explain-to-me-syntax-like-pubkeyhash-please-what-does-here-means-where-pubkeyhash-comes-from-etc/108165>\
**Category:** Smart Contracts\
**Tags:** cardano, plutus, haskell\
**Created:** [26 September 2022 08:40 UTC](https://forum.cardano.org/t/explain-to-me-syntax-like-pubkeyhash-please-what-does-here-means-where-pubkeyhash-comes-from-etc/108165 "2022-09-26T08:40:56Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![vietcuongmonad](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.cardano.org/vietcuongmonad/32/58204_2.png) [@vietcuongmonad](https://forum.cardano.org/u/vietcuongmonad)\
**Post date:** [26 September 2022 08:40 UTC](https://forum.cardano.org/t/explain-to-me-syntax-like-pubkeyhash-please-what-does-here-means-where-pubkeyhash-comes-from-etc/108165/1 "2022-09-26T08:40:56Z")

</div>

Hello guys, I’m new to Plutus (somewhat experienced in Haskell). I have a question about the [English Auction Contract](https://github.com/chris-moreton/plutus-pioneer-program/blob/main/code/week01/src/Week01/EnglishAuction.hs). I’m looking at this code:

```auto
data Auction = Auction
    { aSeller :: !PubKeyHash
    , aDeadline :: !POSIXTime
    , aMinBid :: !Integer
    , aCurrency :: !CurrencySymbol
    , aToken :: !TokenName
    } deriving (Show, Generic, ToJSON, FromJSON, ToSchema)

```

Can anyone tell me what does ‘!’ in ‘!PubKeyHash’ mean please? Where does “PubKeyHash” comes from? Thank you!  
I tried to search it but it is not effective and it is hard to get an answer, even using [Hoggle](https://hoogle.haskell.org/).

---

<div class="post-metadata">

**Author:** ![HeptaSean](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.cardano.org/heptasean/32/82306_2.png) [@HeptaSean](https://forum.cardano.org/u/HeptaSean)\
**Post date:** [26 September 2022 08:43 UTC](https://forum.cardano.org/t/explain-to-me-syntax-like-pubkeyhash-please-what-does-here-means-where-pubkeyhash-comes-from-etc/108165/2 "2022-09-26T08:43:51Z")

</div>

Not a Haskell or Plutus expert here, but does [https://stackoverflow.com/questions/993112/what-does-the-exclamation-mark-mean-in-a-haskell-declaration](https://stackoverflow.com/questions/993112/what-does-the-exclamation-mark-mean-in-a-haskell-declaration) maybe help?

---

<div class="post-metadata">

**Author:** ![vietcuongmonad](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.cardano.org/vietcuongmonad/32/58204_2.png) [@vietcuongmonad](https://forum.cardano.org/u/vietcuongmonad)\
**Post date:** [26 September 2022 10:20 UTC](https://forum.cardano.org/t/explain-to-me-syntax-like-pubkeyhash-please-what-does-here-means-where-pubkeyhash-comes-from-etc/108165/3 "2022-09-26T10:20:48Z")

</div>

Hey man, I just checked the message! I think I just got scam by some dude name something like “Z…\_dev”. What happen? Did you ban him?

---

<div class="post-metadata">

**Author:** ![HeptaSean](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.cardano.org/heptasean/32/82306_2.png) [@HeptaSean](https://forum.cardano.org/u/HeptaSean)\
**Post date:** [26 September 2022 10:23 UTC](https://forum.cardano.org/t/explain-to-me-syntax-like-pubkeyhash-please-what-does-here-means-where-pubkeyhash-comes-from-etc/108165/4 "2022-09-26T10:23:32Z")

</div>

We cannot see direct messages, unless you flag them to us (lower right of the message). Please do that! I will happily suspend them forever.

---

<div class="post-metadata">

**Author:** ![vietcuongmonad](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.cardano.org/vietcuongmonad/32/58204_2.png) [@vietcuongmonad](https://forum.cardano.org/u/vietcuongmonad)\
**Post date:** [26 September 2022 10:31 UTC](https://forum.cardano.org/t/explain-to-me-syntax-like-pubkeyhash-please-what-does-here-means-where-pubkeyhash-comes-from-etc/108165/5 "2022-09-26T10:31:36Z")

</div>

No, not private message. I mean the message in this post. Before u comment out like this, there is a dude named [Zyroxa\_dev](https://forum.cardano.org/u/Zyroxa_dev) (the link don’t show now, don’t know why, maybe u banned him). He basically hide the content of my questions (I thought he is the mod so he can do that) and ask me to join a live chat in this forum [Link to scam forum deleted by @HeptaSean]  
to ask that question through live chat. When I join some dude required me to connect the a wallet using 24-phrase. I thought it is weird but I did it because my wallet have 0 ADA to behonest, but now I realize that website is just the fake website of the real one: https:// developers .cardano.org/ (the forum don’t allow me to post 2 links for new user so I separate the link by space)  
We need to do something about this? Many people can get scam easily by this.

---

<div class="post-metadata">

**Author:** ![HeptaSean](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.cardano.org/heptasean/32/82306_2.png) [@HeptaSean](https://forum.cardano.org/u/HeptaSean)\
**Post date:** [26 September 2022 10:56 UTC](https://forum.cardano.org/t/explain-to-me-syntax-like-pubkeyhash-please-what-does-here-means-where-pubkeyhash-comes-from-etc/108165/6 "2022-09-26T10:56:10Z")

</div>

> [@vietcuongmonad](#):
>
> (the link don’t show now, don’t know why, maybe u banned him)

Wasn’t me. The real @Zyroxa banned his clone and deleted all their messages.

> [@vietcuongmonad](#):
>
> He basically hide the content of my questions (I thought he is the mod so he can do that)

??? No, he cannot do that. And your question was there all the time.

If you answer to a forum post via direct message, it might _look_ a bit like that. It’s a message with the same title with “RE:” put in front of it.

> [@vietcuongmonad](#):
>
> I thought it is weird but I did it because my wallet have 0 ADA to behonest

Please don’t use that wallet for anything anymore! Totally compromised now.

> [@vietcuongmonad](#):
>
> We need to do something about this? Many people can get scam easily by this.

Trying to get rid of scammers in crypto is tilting at windmills.

If we see them or they get flagged, we delete them as soon as possible. On other platforms – Telegram, Discord, … – they are even harder to control, because they can only be banned from the channels/servers, but can still write direct messages and do that en masse.

Every person getting into cryptocurrency should really have gotten the message to never share the seed phrase to anyone multiple times. As well as the message that admins and moderators never send direct messages.
