Skip to content

Checking your own strk20.json before the deadline: which of your hashes count, and why one might not #244

Description

@PugarHuda

Submissions close tomorrow at 23:59 UTC. A strk20.json that lists three hashes
is not the same thing as three hashes that count, and the difference is only
visible after the deadline unless you go looking for it.

Reading projects.json this morning, against the chain:

  • 9 entries list transactions and not one of them counts.
  • 11 more list transactions the verifier counts fewer than three of.
  • 17 projects meet the mainnet requirement but still have no demo_video.

Those teams have done the work. Something narrower is wrong, and most of it is
fixable in the hours that are left — if you know which hash, and why.

Checking yours

Jalin's deployment answers for any repository, not only its own:

https://jalin-five.vercel.app/api/manifest?owner=<owner>&repo=<repo>

It reads your strk20.json from GitHub and checks each hash against Starknet
mainnet: that it exists, that it succeeded, that it touched the STRK20 pool, and
— if you deployed contracts — that it ran through one of yours. It flags
duplicates too, which cost a listing three slots while looking like three
transactions.

The two failures it actually finds

The hash is not on mainnet at all. By far the most common, and the one that
looks like nothing is wrong:

0x27db4ee6…  exists ✗
0x3be9a8a8…  exists ✗
counted 0 of 4

Four real hashes from a real run — on Sepolia. Paste them into a mainnet
explorer and you get "not found", which reads like the explorer's problem rather
than yours.

It ran, it succeeded, and it never reached the pool:

0x2523…  exists ✓  succeeded ✓  touched pool ✓
0x2b78…  exists ✓  succeeded ✓  touched pool ✗   ← counts for nothing
0x15fc…  exists ✓  succeeded ✓  touched pool ✓
counted 2 of 3

That transaction is green in every explorer. Nothing on the page tells you the
pool was never in the receipt.

There is also /api/hub?repo=<owner>/<name>, which returns the hub's own verdict
on your entry — verified_txs, and which of the three requirements you are still
missing — without reading a file of 175 entries by hand.

No signup, no key, GET only, cached five minutes. MIT, and the checking half is
in sdk/; the endpoint is
app/app/api/manifest/route.ts
if you would rather run it yourself than trust someone else's host on the last
day, which is a reasonable thing to prefer.

Disclosure: this is from my own entry (jalin).
I built it to check my own submission and there is no reason it should only check
mine. If it gets your entry wrong, say so — that is a bug, and today it is an
expensive one.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions