Skip to Content
DocumentationFingerprint & Attribution

Fingerprint & Attribution

Every response from Stacknet includes a fingerprint — a unique identifier linking to a prompt contract that traces the full provenance of the generation. This enables transparent attribution and origination tracking across the network.

What’s in a fingerprint

A Stacknet fingerprint encodes a prompt contract:

fingerprint = hash(stackId + nodeKeyId + skillIds + injectionIds + timestamp)
ComponentDescription
Stack IDThe Stack that originated the request
Node Key IDThe aISP node that executed the work
Skill IDsAny registered skills invoked during execution
Injection IDsSystem prompts, tools, or context injected by the Stack
TimestampExecution timestamp for ordering

How attribution works

User Request Stack (originator) ← Credited for bringing the user Prompt Contract ← Encodes all attribution rules ├─► aISP Node (executor) ← Credited for computation ├─► Skill (if used) ← Creator credited for skill usage ├─► Model/Tensor provider ← Creator credited for model usage └─► Data provider ← Creator credited for data usage Paperwork ← Immutable record of all credits

Origination credits

Stacks earn origination credits for:

ActivityCredit
Bringing aISPs to the networkOngoing revenue share
Bringing users to the networkOngoing revenue share
Skills users create and registerRevenue when skills are reused
Models/tensors users createRevenue when models/tensors are used
Secondary market key resalesTransaction fee
aISP task executionRevenue share per task
User subscriptionsRevenue share
User billing top-upsRevenue share

User credits

Users who create content also earn attribution credits:

Content typeWhen credited
SkillsWhen another user invokes the skill
Models/TensorsWhen another user runs inference with the model
Social posts (remixes)When content is remixed by other users

Verifying a fingerprint

Fingerprints are cryptographically signed by the executing aISP’s Ed25519 key:

// Response includes fingerprint { "id": "chatcmpl-abc123", "fingerprint": "fp_a1b2c3d4e5f6", "attribution": { "stack": "stk_xxx", "node_key": "nk_yyy", "skills": ["skill_zzz"], "signed_by": "ed25519:public_key_hex" } }
Last updated on