80trust / 100
Crypto Typed Data Hash
by API Acre in Onchain & crypto
x402 APIPassing, checked 1 h ago
Validate EIP-712 typed structured data and derive its domain separator, message hash, and signing digest.
POST https://apiacre.com/v1/crypto/typed-data-hash
Last 30 days
All checks passedSome failedAll failedNot checked
- Uptime
- 100%
- Response time
- 72 ms typical, 72 ms slowest 5%
- Last check
- 1 h ago
- Next check
- any minute now
How to call it
# See the payment challenge (nothing is charged)
curl -i -X POST "https://apiacre.com/v1/crypto/typed-data-hash" \
-H "content-type: application/json" \
-d '{"typed_data":{"domain":{"name":"API Acre Example"},"message":{"contents":"Hello"},"primaryType":"Message","types":{"EIP712Domain":[{"name":"name","type":"string"}],"Message":[{"name":"contents","type":"string"}]}}}'import { wrapFetchWithPayment } from "@x402/fetch";
import { x402Client } from "@x402/core/client";
import { ExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";
const client = new x402Client().register(
"eip155:8453",
new ExactEvmScheme(privateKeyToAccount(process.env.AGENT_KEY)),
);
const pay = wrapFetchWithPayment(fetch, client);
// Not sure it's safe to pay? Preflight it first for $0.005:
// GET https://toolvet.app/api/v1/check?url=https%3A%2F%2Fapiacre.com%2Fv1%2Fcrypto%2Ftyped-data-hash
const res = await pay("https://apiacre.com/v1/crypto/typed-data-hash", {
method: "POST",
headers: { "content-type": "application/json" },
body: JSON.stringify({"typed_data":{"domain":{"name":"API Acre Example"},"message":{"contents":"Hello"},"primaryType":"Message","types":{"EIP712Domain":[{"name":"name","type":"string"}],"Message":[{"name":"contents","type":"string"}]}}}),
});
console.log(await res.json());Example input
{
"typed_data": {
"domain": {
"name": "API Acre Example"
},
"message": {
"contents": "Hello"
},
"primaryType": "Message",
"types": {
"EIP712Domain": [
{
"name": "name",
"type": "string"
}
],
"Message": [
{
"name": "contents",
"type": "string"
}
]
}
}
}Example output
{
"data": {
"domainSeparator": "0xc167959bdf834486717879a8cd6eb3e12a864d1b1d7dbcecec40455e1b4bc8c8",
"messageHash": "0xd6a9eadbfb49313d8b83d02d2bb22b916a5b16e6006946c9ca6fa7959d934b3a",
"primaryType": "Message",
"signingHash": "0x7433e410d5f2857cb42d0bfd31bc71e8aa553f02ce0eed397927f01dfb46424c",
"valid": true
},
"meta": {
"cached": false,
"duration_ms": 42,
"next_actions": [],
"sources": [],
"warnings": []
},
"request_id": "018f1f54-7f38-7ba2-8dc3-5f90272d9f1a",
"service": "crypto.typed-data-hash",
"version": "1"
}Security scan
- No findings. We scan names, descriptions and tool definitions for hidden instructions and other prompt-injection patterns.
Recent checks
| When | Result | HTTP | Time | Price |
|---|---|---|---|---|
| 1 h ago | Passed | 402 | 72 ms | $0.01 |
| 6 h ago | Passed | 402 | 78 ms | $0.01 |