# Track record: 0x77c5c72add6df5adfb6d3c5c78123a742828df8b

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-test.thirdfy.com/api/v1/track-record/public/0x77c5c72add6df5adfb6d3c5c78123a742828df8b

## Hyperliquid: `0x39044667f4878b8e78fb7cf4ff4222f629c38b55`

- Proof: The wallet signed a challenge (EIP-191), 30 Oct 2026.
- Public history: https://app.hyperliquid.xyz/explorer/address/0x39044667f4878b8e78fb7cf4ff4222f629c38b55
- Window: 30 days, 30 Sept 2026 to 30 Oct 2026
- Eligible: no (The account history is shorter than the minimum; Too few trades in the window)
- Scored: 30 Oct 2026, 16:15 UTC

- **PnL:** $0.00 (Net of deposits and withdrawals)
- **Max drawdown:** 0% ($0.00 from peak account value)
- **Trades:** 0
- **Volume:** $0.00
- **Round trips:** 0 (Opened and closed, per market)
- **Account history:** 0 days
- **Deposits:** $0.00
- **Withdrawals:** $0.00
- **Very short holds:** 0% (Share of round trips)
- **Self-trades:** 0% (Share of trades)

Equity is the account value, net of deposits and withdrawals.

Rules:
- At least 14 days of account history
- At least 20 trades in the window
- At most 30% of round trips shorter than 60 seconds
- At most 2% of trades against itself

Evidence (public requests anyone can repeat):
- https://api.hyperliquid.xyz/info `{"type":"portfolio","user":"0x39044667f4878b8e78fb7cf4ff4222f629c38b55","window":"month"}`: 11 items
- https://api.hyperliquid.xyz/info `{"type":"userFillsByTime","user":"0x39044667f4878b8e78fb7cf4ff4222f629c38b55","endTime":1793376942513,"startTime":1790784942513}`: 0 items
- https://api.hyperliquid.xyz/info `{"type":"userNonFundingLedgerUpdates","user":"0x39044667f4878b8e78fb7cf4ff4222f629c38b55","endTime":1793376942513,"startTime":1790784942513}`: 0 items

Signature: **Signature verified.** The digest matches this score and the signature recovers to Thirdfy's signer.

- Digest: `0x98e4489bdc4511d9bd53432e20b8d487f5b60d310d10d724d47e8c1ec6ab3b81`
- Signature: `0xd53a66c7c87d723bfae60e34cc5ec0ea3cb11b51f9c02ab262d3d74af3b40fec680d8a2bd24d7590d115c59cd1979463eae3095d3dbed57a5a48c3935febf4671c`
- Signer: `0x75861bB5FbAE6D56743e077EE6F4215430d21b80`

## Check a signature

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

Signer: `0x75861bB5FbAE6D56743e077EE6F4215430d21b80`

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._
