putty
API ReferenceArtifacts

Post analytics for a connected account

Reads Zernio's post metrics for one connected account over a window, through the caller's own key. The account must be on the caller's Zernio profile; an account id belonging to someone else answers the same 404 as one that does not exist. Zernio's own maximum range is 366 days.

GET
/social/analytics

Reads Zernio's post metrics for one connected account over a window, through the caller's own key. The account must be on the caller's Zernio profile; an account id belonging to someone else answers the same 404 as one that does not exist. Zernio's own maximum range is 366 days.

Authorization

bearerAuth
AuthorizationBearer <token>

A bearer token. The Account routes accept a Privy access token; the MCP transport accepts an sk- API key issued by POST /account/api-keys.

In: header

Query Parameters

accountId*string

A connected account on the caller's profile.

since*string

Inclusive lower bound in YYYY-MM-DD, the form Zernio's fromDate takes.

Match^\d{4}-\d{2}-\d{2}$
limit?integer

How many posts to read. Defaults to 50.

Range1 <= value <= 100

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/social/analytics?accountId=string&since=string"
{  "accountId": "string",  "since": "string",  "overview": null,  "posts": [    null  ]}

Cancel a draft or scheduled post POST

Cancels a post that has not gone out. A scheduled post is deleted in Zernio; a draft never reached Zernio at all and is simply marked `cancelled`. A post that already published answers the same 404 as one that does not exist, because Zernio refuses to delete a published post and putty does not expose unpublishing.

Read a token's trust receipts GET

Reads a token's Trust Kit setup straight from the chain and returns it as a public document: every module found, every wallet it references with its live balance, and — the part that matters — exactly what can change, who can change it, and how fast. **It works for any token on any supported chain.** There is no allowlist and no putty-only path: a module is recognised by the getters its contract answers, so a token launched on Pons or Hookr reads the same as one launched here, and a token putty never heard of reads too. A token with no modules returns an empty `modules` array, not a 404 — the token is real, its setup is simply empty. **Every amount is a decimal string in the token's base unit.** Divide by `10^decimals` to display one; do not parse with `Number()`, which loses precision on exactly the values a trust page exists to be precise about. **`mutable` is the load-bearing field.** A control with `mutable: false` is a Solidity `immutable`: there is no setter in the bytecode, so nothing can change it. A control with `mutable: true` always carries a `range` and a `timelockSeconds` — the projector's one invariant — so a bounded, delayed change cannot be rendered as an instant one. When a bound or a timelock could not be read from the chain, the parameter is reported as immutable and a warning is recorded, because showing an unbounded parameter as bounded is the one failure this page must not have. `provenance.warnings` is empty only when the whole document was read. A partial read is reported as partial rather than presented as complete, and a node that could not answer never becomes a silent zero.