Account-Based Attribution for Crypto article thumbnail

Account-Based Attribution for Crypto

Yos Riady

Yos Riady

ยท Published

ยท Updated on

Updated

Updated

Key takeaways

  • Credit the organization that buys, such as a DAO, a fund, or a protocol team that pays from a Safe, not a single wallet. One account has several people and many wallets.

  • Group wallets into accounts only with evidence. Shared login and device links are deterministic. CRM and self-reported company data are inferred, so label them that way.

  • Account first touch is the earliest touch by any member. Account last touch is the last touch before the opportunity was created.

  • Report sourced pipeline and influenced pipeline as two separate numbers. Never add them.

  • Onchain actions from a Safe usually look like Direct traffic. The account roll-up recovers the campaign that started the deal.

Account-based attribution for crypto credits marketing to the organization that buys, not to a single wallet. That organization is a protocol team, a DAO, a fund, or a company, and it often acts onchain through a Safe multisig with several signers. You group the wallets and people of each account, collect every touch across them, and report which campaigns sourced or influenced the account's pipeline.

What is account-based attribution in crypto?

Account-based attribution assigns campaign credit to an account instead of a person or a wallet. In crypto, an account is the organization behind a set of addresses and people: a protocol team, a DAO, a fund, or a company. You join web touches, wallet activity, and CRM records per account, then measure which campaigns created or moved pipeline.

First-touch attribution asks which campaign brought a visitor. Account-based attribution asks which campaigns brought an account to a deal. That matters when a head of engineering, a treasury signer, and a founder must all agree.

The approach is common in B2B. In 6sense's 2024 Account-Based Marketing Benchmark (published March 12, 2025; 1,332 B2B marketers across two surveys), 64% said their teams have an ABM program or a broader target-account approach. Crypto infrastructure companies sell the same way: RPC providers, wallet SDKs, custody, data platforms, and protocols that sell integrations to other protocols. Resolving wallets into accounts is covered in our guide to account intelligence for crypto. This article covers what to do with those accounts in attribution.

Why does wallet-level attribution break for B2B crypto?

Wallet-level attribution gives credit to one address. A B2B deal involves many people, devices, and wallets, and the wallet that pays is often a Safe that never visited your site. So wallet-level reports split one deal into unrelated journeys and miss the touch that started it.

A common pattern for an infrastructure company:

  1. A developer at a lending protocol reads your docs after a conference talk. They have no wallet connected.

  2. Two weeks later, their head of growth clicks a LinkedIn ad and connects a personal wallet in your demo.

  3. A treasury signer pays from the protocol's Safe.

Wallet-level reports show three stories and no account journey. Multi-wallet behavior makes this worse. A YouGov survey of 1,000 active crypto users in the US and UK, run for the 2025 State of Onchain UX report by Reown and Nansen, found that 62% manage two or more wallets (Decrypt, April 30, 2025). The Safe Ecosystem Foundation counted 61.11 million Safe accounts at the end of Q1 2026 in its Q1 2026 report (published April 23, 2026).

What counts as an account for a B2B crypto company?

An account is the organization that signs the contract or the transaction. In crypto it can be a registered company, a protocol team, a DAO, or a fund. Each type shows up onchain in a different way, so decide per type which addresses and people belong to it before you count any touch.

Account type

How it acts onchain

People who see your marketing

Good evidence to link a wallet

Protocol team

Deployer wallets, team multisig, treasury

Engineers, BD lead, founders

Login with identify, signed message

DAO

Governance contracts, Safe treasury

Delegates, grant committee

Governance post that names the Safe

Fund

Fund Safe, custody, trading wallets

Partners, analysts, operations

CRM record from a call, form entry

Company with embedded wallets

Wallets it creates for its users

Product and growth team

Your app login (user ID)

Exchange or custodian

Pooled deposit and hot wallets

BD and listings team

Never link pooled addresses

A Safe is a smart account (a smart contract wallet) with multisig logic: a set of owners and a threshold of owners that must confirm each transaction. Owners can be EOAs (externally owned accounts), other smart accounts, or passkeys. Treat the Safe as the account's onchain identity and its owners as members of the buying group. The owner list is public onchain, but an owner address does not tell you who the person is. Confirm that with the team.

How do you group wallets into accounts?

Group wallets into accounts with an evidence ladder. Use deterministic links (a shared login or the same device) to join wallets to a person. Use CRM, form, or self-reported data to join people to an account, and mark those links as inferred. Never merge on weak signals such as shared funding sources or timing.

Evidence

Strength

Use it to

Same user ID from your login, sent with identify

Deterministic

Join wallets to one person

Same device cookie (anonymous ID)

Strong

Join wallets to one person

Signed message linking a wallet to a company

Deterministic

Join a wallet to an account

Work email domain in the CRM

Inferred

Join a person to an account

Wallet given on a form or a call

Inferred, self-reported

Join a wallet to an account

Safe owners matched to known team wallets

Inferred

Join a Safe to an account

Shared funding source, similar timing

Weak

Research only, never merge

In Formo, wallets link only through the anonymous ID cookie (same browser or device, across sessions and days) and the user ID you set with identify. Formo does not use IP addresses, device fingerprinting, onchain transfers, or funding sources. These are person-level links. To join people to an account, write your CRM account ID as a custom label on each wallet, plus a second label for the evidence source, such as crm_email or self_reported. Formo accepts custom labels from the dashboard and the Profiles API, and you can filter users by them.

Do not send the CRM account ID as the identify user ID. Clusters group wallets through shared user IDs, so every team member would merge into one "user". Keep the user ID for the person and the label for the account.

How do you attribute campaigns to accounts?

To attribute campaigns to accounts, collect the touches of every wallet and contact in the account, sort them by time, and pick the account's first touch and its last touch before the opportunity. Then tag each opportunity as sourced or influenced per campaign. The steps work with any CRM.

  1. List target accounts. Give each protocol, DAO, or fund a CRM account ID and a type.

  2. Identify people. Call identify with your own user ID after login, so each person's wallets join.

  3. Map wallets to accounts. Write the account ID and evidence source as labels on each known wallet, including the Safe.

  4. Collect touches. Pull each wallet's first-touch and last-touch fields. Add offchain touches from the CRM, such as events and calls.

  5. Roll up to the account. Take the earliest touch by any member, and the latest touch before the opportunity.

  6. Classify pipeline. The campaign with the account's first touch before the opportunity sourced it. Campaigns that touched the account while the opportunity was open influenced it.

  7. Report by campaign. Show sourced pipeline, influenced pipeline, and won revenue, with the account count behind each number.

On Formo wallet profiles, first touch and last touch use the wallet's full history, with no lookback window. Each field (each UTM parameter, the referrer, the referral code, and the ad click) is resolved on its own. So a wallet's first utm_source and first referrer can come from different visits. Pick one field, such as utm_campaign, as the account's channel of record, and use it the same way every quarter.

Report sourced and influenced pipeline as two separate numbers at the account level. For how to define each one and handle a buying committee, see pipeline attribution for B2B crypto.

How do account-level first touch and last touch work?

Account-level first touch is the earliest touch by any person or wallet in the account. Account-level last touch is the latest touch before a set milestone, usually opportunity creation. Compute both across all members, then store them on the account record in your CRM.

Example (illustrative dates and campaigns): a lending protocol buys an RPC plan.

Date

Member

Touch

Source

Aug 4

Developer, no wallet yet

Visited docs from a conference QR code

utm_campaign=conference_talk

Aug 19

Head of growth, personal EOA

Clicked a LinkedIn ad, connected in demo

Paid Social

Aug 21

Sales

Opportunity created

CRM

Sep 2

Head of growth, same wallet

Opened a newsletter link

Email

Sep 20

Protocol Safe

Paid onchain

Direct

The conference sourced the deal: it is the account's first touch. The LinkedIn ad is the account's last touch before the opportunity. The newsletter influenced the deal, because it touched the open opportunity. If your rules also give influence credit to touches before the opportunity, write that rule down and apply it every quarter.

Two details matter. First, the developer's visit is anonymous until they connect or log in, and Formo keeps pre-connect touches on the anonymous profile, not on the wallet. Add the developer to the account in your CRM when they sign up. Second, a Formo contract event inherits the attribution of the same wallet's SDK session from the last hour, else it is Direct. A Safe that signs in its own interface usually shows as Direct. Only the account roll-up connects that payment to the conference.

What mistakes should you avoid?

Most errors in account-based attribution come from merging wallets that do not belong together, or from crediting campaigns for touches that came from noise. Both make weak campaigns look strong. Check your model against these four rules before you share a report with sales or leadership.

  • Merging on weak evidence. Exchanges fund thousands of unrelated wallets, so shared funding is not proof of one account.

  • Linking pooled addresses. Exchange deposit wallets, routers, bridges, and bundlers belong to no single account.

  • Counting the Safe as a person. A Safe is the account's wallet. Its signers are people.

  • Crediting bots. Formo labels known crawlers and automated clients with the device type Bots but keeps them in visitor counts. Filter them out with the Device filter.

How does Formo support account-based attribution?

Formo covers the wallet and web side of account-based attribution: identity, touches, and onchain activity for each wallet. Your CRM keeps the accounts, contacts, and opportunities. You join the two with custom labels on the Formo side and exports into the CRM or warehouse.

  • Identity. Wallets join to a person through the anonymous ID cookie or your identify user ID. The Clusters tab on the Users page shows multi-wallet groups.

  • Account labels. Write custom labels one wallet at a time, or up to 100 per batch request.

  • Touches. Wallet profiles store first-touch and last-touch UTM parameters, referrer, referral code, and ad click. Google and Microsoft click IDs map to Paid Search. Meta, TikTok, X, LinkedIn, and Reddit click IDs map to Paid Social.

  • Onchain activity. Add your contracts in project settings, and their events appear on wallet profiles next to web activity.

  • Export. Export a segment as CSV or query the Profiles API. Data sync to Google Cloud Storage or Amazon S3 is in development; contact Formo support for access.

Formo does not create CRM accounts or compute sourced and influenced pipeline. Do the account roll-up in your CRM or warehouse, where the opportunity dates live.

Frequently asked questions

What is account-based attribution?

Account-based attribution assigns marketing credit to an organization instead of one person or wallet. It joins the touches of every member of the account and measures which campaigns created or moved its pipeline.

How is it different from wallet-level attribution?

Wallet-level attribution credits the touches of one address. Account-based attribution combines all people, wallets, and Safes of one organization, so a deal that starts with a developer and closes with a treasury signer is one journey.

Can I attribute a Safe multisig to a campaign?

Yes, through the account. A Safe usually signs in its own interface, so its onchain actions rarely carry campaign data. Link the Safe to the account, then use the account's first touch.

How do I link wallets to a company?

Use deterministic links where you can, such as a login with identify or a signed message. Add CRM or self-reported links as inferred, with a label for the source. Never merge wallets on shared funding or timing alone.

Does Formo use a lookback window for first touch?

No. Wallet profiles use each wallet's full history for first touch and last touch. Funnel breakdowns use the selected date range.

Related articles

Glossary: identity resolution, wallet clustering.

About the Author

About the Author
About the Author
Yos Riady

Founder

Founder

Yos is the founder of Formo, where he helps DeFi teams make analytics and attribution simple. Prior to Formo, Yos was a staff software engineer and tech lead at Chainlink Labs. He helped scale Chainlink into the industry-standard oracle for leading DeFi protocols. A long-time builder in crypto with experience across smart contracts, data engineering, and security.

Yos is the founder of Formo, where he helps DeFi teams make analytics and attribution simple. Prior to Formo, Yos was a staff software engineer and tech lead at Chainlink Labs. He helped scale Chainlink into the industry-standard oracle for leading DeFi protocols. A long-time builder in crypto with experience across smart contracts, data engineering, and security.

Table of Contents

Measure what matters onchain

Formo makes analytics and attribution simple for DeFi apps.

Measure what matters onchain

Formo makes analytics and attribution simple for DeFi apps.

Measure what matters onchain

Formo makes analytics and attribution simple for DeFi apps.

Stay up to date with weekly product updates and the latest industry insights.

Stay up to date with weekly product updates and the latest industry insights.

Stay up to date with weekly product updates and the latest industry insights.