snapshot
Blog
  • Welcome to Snapshot docs
  • User guides
    • Spaces
      • What is a space?
      • Create a space
        • Register an ENS domain
        • Alternative way to create a space
      • Settings
      • Sub-spaces
      • Space verification
      • Space hibernation
      • Add a custom domain
      • Add a skin
      • Space roles
      • Space badges
      • Snapshot Pro
      • Space handbook
        • Most common
        • Voting threshold
        • Anti-whale
        • Sybil resistance, scam & spam prevention
        • Liquidity / staking pool
        • Delegation
        • NFT voting
          • Most common: ERC-721
          • Multi-token: ERC-1155
          • POAP - Proof of Attendance
        • Custom calculations
    • Create a proposal
    • Voting
      • Vote on a proposal
      • Delegate your voting power
    • Voting strategies
    • Validation strategies
    • Using Safe multi-sig
    • Delegation
  • Developer Guides
    • Create a voting strategy
    • Create a validation strategy
    • Identify integrator activity
    • Add a network
  • Tools
    • Tools overview
    • Snapshot.js
    • API
      • API Keys
    • Webhooks
    • Subgraphs
    • Mobile notifications
    • Bots
  • Snapshot X
    • Overview
    • User guides
      • Create a space
      • Proposals
      • Voting
      • Safe execution setup
    • Protocol
      • Overview
      • Space actions
      • Space controller actions
      • Authenticators
      • Proposal validations
      • Voting strategies
      • Starknet specifics
      • Execution strategies
      • Audits
    • Services
      • Architecture
      • API
      • SX.js
      • UI
      • Mana
  • V1 interface
    • Email notifications
    • Plugins
      • What is a plugin?
      • Create a plugin
      • oSnap
      • SafeSnap
      • POAP
      • Quorum
      • Domino notifications
      • Galxe
    • Boost
  • Community
    • Help center
    • Discord
    • X (Twitter)
    • GitHub
Powered by GitBook
On this page
  • Using app with Snapshot.js
  • Adding app to Snapshot URLs

Was this helpful?

Edit on GitHub
Export as PDF
  1. Developer Guides

Identify integrator activity

PreviousCreate a validation strategyNextTools overview

Last updated 6 months ago

Was this helpful?

To help integrators track and identify activity originating from their applications, Snapshot supports an optional app parameter. This parameter can be included when users cast votes or create proposals, allowing you to tag these actions with your application's identifier.

Using app with Snapshot.js

If you're integrating Snapshot's voting and proposal functionalities directly into your platform using , you can include the app parameter in your function calls:

import { Web3Provider } from '@ethersproject/providers';

const web3 = new Web3Provider(window.ethereum);
const [account] = await web3.listAccounts();

const receipt = await client.vote(web3, account, {
  space: 'yam.eth',
  proposal: '0x21ea31e896ec5b5a49a3653e51e787ee834aaf953263144ab936ed756f36609f',
  type: 'single-choice',
  choice: 1,
  reason: 'Choice 1 makes a lot of sense',
  app: 'yourappname'
});

Adding app to Snapshot URLs

For platforms that redirect users to Snapshot, you can append the app parameter to the URL. This tags the action with your application's identifier when the user interacts on Snapshot.

URL format:

https://snapshot.box/#/{network}:{space}/proposal/{proposalId}?app={yourappname}

Example:

https://snapshot.box/#/s:ens.eth/proposal/0xfa54ff2b55f0495c96ec2d8645241bcff48ca6afe1f4925fb51f29c4667252df?app=boardroom

Parameter requirements

  • Format: Lowercase alphanumeric string

  • Maximum length: 24 characters

  • Purpose: The app parameter will be stored with the vote or proposal data on Snapshot. This enables you to identify and analyze activities originating from your application.

By using the app parameter, you can seamlessly integrate Snapshot into your platform while maintaining clear visibility over user interactions related to your application.

Snapshot.js