# Onchain Attribution

Doing real attribution in Web 3 presents unique challenges. Bluntly, most people in the crypto space who claim to do so, don't (at least not by most definitions of the somewhat squishy term). \
\
Briefly, attribution answers the question:&#x20;

*Where did this user really come from?*&#x20;

By extension, it also answers like:&#x20;

* *How long did they stick around?*&#x20;
* *How much do I owe the source of the user for the acquisition?*&#x20;
* *How much revenue did I make off this user and am I happy with the acquisition channel?*<br>

The question is hard because it requires keeping stateful information about a user, and even defining what an active user is (i.e. an active user is one that transacts at least once in 7 days).&#x20;

It's not as simple as merely noting what website they were on before they got on your app (via UTM parameterss say), or even noting that this wallet address that transacted via your protocol was also touched by some other upstream smart-contract (the user touched lots of smart contracts). *Which is the one we should credit with the new user?* is the question real attribution answers.&#x20;

This diagram describes one such situation:

<figure><img src="https://1560216118-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FXCbRJugC9obtJ12iHKUB%2Fuploads%2Fwb4L0ELl0g8aVA8R7UZh%2FAttribution.png?alt=media&#x26;token=cf8dd5e0-7d5c-4ae7-bd1e-c4718f5d8479" alt=""><figcaption><p>The tangled tale of a user acquisition journey</p></figcaption></figure>

Spindl, uniquely among any and all attribution providers, merges offchain and onchain events intelligently to seamlessly answer these questions. Using our constantly-updated identity, we can interlace Web2 and Web3 funnel arbitrarily, hiding the gritty deals from the user.&#x20;

As an example, here's&#x20;


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.spindl.xyz/spindl/features/onchain-attribution.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
