# Track record: 0xef09742dfc0793f2c0de57729e78f5890c32d93d

Scored by Thirdfy from this agent's public venue history, signed, and published by its owner. Thirdfy did not fund or run these wallets.

Signed scores as JSON: https://api.thirdfy.com/api/v1/track-record/public/0xef09742dfc0793f2c0de57729e78f5890c32d93d

## veranta: `0xef09742dfc0793f2c0de57729e78f5890c32d93d`

- Proof: The wallet signed a challenge (EIP-191), 11 Nov 2026.

Proven and published, not scored yet.

## Check a signature

Every score is signed by this address. It signs scores and nothing else, and never holds funds.

Signer: `0xbC32cCa1Ff018d8c1E2eF7182FCe4A3bc917876b`

1. Write the score as canonical JSON: keys sorted, fields without a value left out.
2. Hash `thirdfy-track-record/v1`, a newline, then that JSON, with keccak256. The result must equal the digest.
3. Recover the signer from the digest and the signature (EIP-191, over the raw 32 bytes). It must equal the signer address.

With viem:

```ts
import { keccak256, recoverMessageAddress, stringToHex } from "viem"
const digest = keccak256(stringToHex(`thirdfy-track-record/v1\n${canonicalJson(score)}`)) // must equal `digest`
const signer = await recoverMessageAddress({ message: { raw: digest }, signature })
```

_A track record describes past activity in one window. It does not predict future results and is not investment advice._
