<p>This looks like a bug in <code>explorer.cardano.org</code>.</p>
<p>You can use the JS package <code>@emurgo/cip14-js</code> to check for yourself.</p>
<pre><code>import AssetFingerprint from '@emurgo/cip14-js'

const assetFingerprint = new AssetFingerprint(
    Buffer.from('333427e94971f530653bb945f34f914252ad570c0b84dfd8c8e8c97b', 'hex'),
    Buffer.from('457874726148617465303637', 'hex'),
  )
assetFingerprint.fingerprint()
// returns asset1yjj6l5ude4gf274ya0exk4vymaaj0464yxmnvm
</code></pre>

CC BY-SA 4.0
2021-06-17T08:47:09.887Z
2021-06-17T08:47:09.887Z
vaz
<p>Fixed in <a href="https://github.com/input-output-hk/cardano-graphql/pull/526" rel="nofollow noreferrer">https://github.com/input-output-hk/cardano-graphql/pull/526</a>. Thanks for the investigation.</p>
<p>Edit: Released in <a href="https://github.com/input-output-hk/cardano-graphql/releases/tag/5.0.0" rel="nofollow noreferrer">5.0.0</a>, adopted by <code>cardano-explorer-app</code> in <a href="https://github.com/input-output-hk/cardano-explorer-app/releases/tag/1.6.0" rel="nofollow noreferrer">1.6.0</a></p>

CC BY-SA 4.0
2021-06-25T09:50:09.073Z
2021-07-29T05:03:12.370Z
2021-07-29T05:03:12.370Z
Rhys Bartels-Waller
<p>Wow, good catch. You can see fingerPrint function <a href="https://github.com/input-output-hk/cardano-graphql/blob/11c4eb81f7790d93807cc760c05e4a3552677525/packages/api-cardano-db-hasura/src/DataSyncController.ts#L15" rel="nofollow noreferrer">here</a>. It's located in <code>cardano-graphql</code> project.</p>
<pre><code>export const assetFingerprint = (asset: Pick&lt;Asset, 'assetName' | 'policyId'&gt;) =&gt;
  new AssetFingerprint(
    Buffer.from(asset.policyId, 'hex'),
    asset.assetName !== '' ? Buffer.from(asset.assetName, 'hex') : undefined)
    .fingerprint()
</code></pre>
<p>After running this code</p>
<pre><code>const fingerPrint = ({ policyId, assetName }) =&gt; {
  const af = new AssetFingerprint(
    Buffer.from(policyId, 'hex'),
    Buffer.from(assetName, 'hex'),
  ).fingerprint()

  return af
}

const combinations = [
  {policyId:'333427e94971f530653bb945f34f914252ad570c0b84dfd8c8e8c97b',
   assetName:'457874726148617465303637'},
  {policyId: &quot;&quot;,
   assetName:'457874726148617465303637'},
  {policyId: '333427e94971f530653bb945f34f914252ad570c0b84dfd8c8e8c97b',
   assetName: &quot;&quot;},
]

combinations.map(fingerPrint)
</code></pre>
<p>I got</p>
<pre><code>[
  'asset1yjj6l5ude4gf274ya0exk4vymaaj0464yxmnvm',
  'asset1q7c0qhulpty4tcdp3cwt8eg5edws9c8lqyldlr',
  'asset19nqnahcv54krdv8mcc0ne60wlkealw5qaztzvp'
]
</code></pre>
<p>Which means that <code>policyId</code> is missing in the explorer but the fingerprint function is the same.</p>
<p>You can rerun my code in <a href="https://replit.com/@yanisurbis/token-fingerprint#index.js" rel="nofollow noreferrer">replit</a>.</p>
<p>I also created an <a href="https://github.com/input-output-hk/cardano-explorer-app/issues/410" rel="nofollow noreferrer">issue</a> for <code>cardano-explorer-app</code>.</p>

CC BY-SA 4.0
2021-06-17T14:46:39.027Z
2021-06-17T14:55:51.920Z
2021-06-17T14:55:51.920Z
Yanis Urbis
<p>I have an question about the asset fingerprint.</p>
<p>For example here:
<a href="https://pool.pm/333427e94971f530653bb945f34f914252ad570c0b84dfd8c8e8c97b.ExtraHate067" rel="noreferrer">https://pool.pm/333427e94971f530653bb945f34f914252ad570c0b84dfd8c8e8c97b.ExtraHate067</a>
it shows <code>asset1yjj6l5ude4gf274ya0exk4vymaaj0464yxmnvm</code></p>
<p>here it shows the same: <a href="https://cardano-tools.io/latest?q=ExtraHate067" rel="noreferrer">https://cardano-tools.io/latest?q=ExtraHate067</a></p>
<p>but the explorer
<a href="https://explorer.cardano.org/en/transaction?id=0d560535733237eaafa4f3c25e648d147dc93a048e3dc66e5199cd86986b5a2c" rel="noreferrer">https://explorer.cardano.org/en/transaction?id=0d560535733237eaafa4f3c25e648d147dc93a048e3dc66e5199cd86986b5a2c</a>
shows <code>asset1q7c0qhulpty4tcdp3cwt8eg5edws9c8lqyldlr</code> did they change the hash algorithm?</p>

CC BY-SA 4.0
2021-06-16T19:32:16.853Z
Yes, it's really strange. I managed to find a transaction where fingerprints are equal. Necromancer 003 https://cardano-tools.io/latest?q=f4988f549728dc76b58d7677849443caf6e5385dc67e6c25f6aa901e https://explorer.cardano.org/en/transaction?id=a4b4c4c637bf297af7ece2079bdbf6af8bbbcb6611603ae8a6109a47ea804de7
Yanis Urbis
<native-assets>
Did the token fingerprint hash algorithm change?
# Did the token fingerprint hash algorithm change?

(Asked by: username_0 on 2021-06-15)

I have an question about the asset fingerprint.

For example here:
<https://pool.pm/333427e94971f530653bb945f34f914252ad570c0b84dfd8c8e8c97b.ExtraHate067>
it shows `asset1yjj6l5ude4gf274ya0exk4vymaaj0464yxmnvm`

here it shows the same: <https://cardano-tools.io/latest?q=ExtraHate067>

but the explorer
<https://explorer.cardano.org/en/transaction?id=0d560535733237eaafa4f3c25e648d147dc93a048e3dc66e5199cd86986b5a2c>
shows `asset1q7c0qhulpty4tcdp3cwt8eg5edws9c8lqyldlr` did they change the hash algorithm?

**Tags:** native-assets
> **Comments:**
> **username_1**: Yes, it's really strange. I managed to find a transaction where fingerprints are equal. Necromancer 003 https://cardano-tools.io/latest?q=f4988f549728dc76b58d7677849443caf6e5385dc67e6c25f6aa901e https://explorer.cardano.org/en/transaction?id=a4b4c4c637bf297af7ece2079bdbf6af8bbbcb6611603ae8a6109a47ea804de7  

---

## 3 answers

### Answer by username_1 on 2021-06-17. Score: 1 | Accepted answer

Wow, good catch. You can see fingerPrint function here. It's located in cardano-graphql project.
export const assetFingerprint = (asset: Pick) =>
  new AssetFingerprint(
    Buffer.from(asset.policyId, 'hex'),
    asset.assetName !== '' ? Buffer.from(asset.assetName, 'hex') : undefined)
    .fingerprint()

After running this code
const fingerPrint = ({ policyId, assetName }) => {
  const af = new AssetFingerprint(
    Buffer.from(policyId, 'hex'),
    Buffer.from(assetName, 'hex'),
  ).fingerprint()

  return af
}

const combinations = [
  {policyId:'333427e94971f530653bb945f34f914252ad570c0b84dfd8c8e8c97b',
   assetName:'457874726148617465303637'},
  {policyId: "",
   assetName:'457874726148617465303637'},
  {policyId: '333427e94971f530653bb945f34f914252ad570c0b84dfd8c8e8c97b',
   assetName: ""},
]

combinations.map(fingerPrint)

I got
[
  'asset1yjj6l5ude4gf274ya0exk4vymaaj0464yxmnvm',
  'asset1q7c0qhulpty4tcdp3cwt8eg5edws9c8lqyldlr',
  'asset19nqnahcv54krdv8mcc0ne60wlkealw5qaztzvp'
]

Which means that policyId is missing in the explorer but the fingerprint function is the same.
You can rerun my code in replit.
I also created an issue for cardano-explorer-app.


---

### Answer by username_2 on 2021-06-17. Score: 3

This looks like a bug in explorer.cardano.org.
You can use the JS package @emurgo/cip14-js to check for yourself.
import AssetFingerprint from '@emurgo/cip14-js'

const assetFingerprint = new AssetFingerprint(
    Buffer.from('333427e94971f530653bb945f34f914252ad570c0b84dfd8c8e8c97b', 'hex'),
    Buffer.from('457874726148617465303637', 'hex'),
  )
assetFingerprint.fingerprint()
// returns asset1yjj6l5ude4gf274ya0exk4vymaaj0464yxmnvm


---

### Answer by username_3 on 2021-06-25. Score: 1

Fixed in <https://github.com/input-output-hk/cardano-graphql/pull/526>. Thanks for the investigation.

Edit: Released in [5.0.0](https://github.com/input-output-hk/cardano-graphql/releases/tag/5.0.0), adopted by `cardano-explorer-app` in [1.6.0](https://github.com/input-output-hk/cardano-explorer-app/releases/tag/1.6.0)


---

