EngagementOracle.recordAction(user, actionType, weight, targetId) call with the authorized oracle wallet. The user’s address is attributed inside the calldata, not in the tx signer, so the app never has to touch the user’s private key.
Behaves identically to /api/mobile/engagement on chain — the only difference is the explicit no-private-key contract.
Request
Fields
string
required
User’s address (the account whose ES + pending YCR the action accrues to).
string
required
One of
post, like, share, comment, watch, nft_create, tip.string
required
Opaque string identifying the content acted upon (hashed to bytes32 on-chain).
object
Device context used for the quality signal (see Engagement Score).
integer
Unix seconds. Used to flag clock skew; the canonical timestamp is still the block’s.
Response — 200 OK
Example
How attribution works
address, not to the oracle wallet. ES, pending YCR, and leaderboard rank all accrue to address.