LogoLogo
  • 🚀DeSo Vision
  • 🪙DeSo Tokenomics
    • No Equity, Just Coins and Code
    • Current DESO Supply
    • Initial DESO Distribution
    • DESO Sinks
    • The BMF: Burn-Maximizing Fee Mechanism
    • Designed for the End-Game
  • 🏛️DeSo Governance
  • ⭐DeSo Tutorial (Build Apps)
  • 🖥️Node Architecture Overview
    • Setup a Node & Frontend Locally
    • Making Your First Changes
  • 📅DeSo Roadmap
  • 🔍DeSo Block Explorer
  • 💸DeSo Wallet
  • 💬DeSo Chat Protocol
  • 👽Openfund
  • 👀Focus
  • 🛠️DeSo Tech Stack
  • 🌐DeSo Applications
  • DeSo Blockchain
    • 1️⃣Bare Metal
    • 2️⃣Scaling Roadmap
    • 3️⃣Content Moderation
    • 4️⃣Infinite-State
    • 5️⃣On-Chain Data
    • 6️⃣Smart Services
    • 7️⃣User Security
  • DeSo Features
    • 1️⃣Associations
    • 2️⃣Creator Coins
    • 3️⃣Feeds & Moderation
    • 4️⃣Social NFTs
    • 5️⃣Social Tipping
  • DeSo Identity
    • 1️⃣Identity: Overview
      • Core Concepts
      • Mobile Integration
    • 2️⃣Identity: iFrame API
      • Overview
      • Endpoints
    • 3️⃣Identity: Window API
      • Overview
      • Endpoints
  • DESO FRONTEND
    • 1️⃣Frontend: Get Started
    • 2️⃣Frontend: React Example
  • DESO BACKEND
    • 1️⃣Backend: Config
      • Onboarding
      • Phone Number Verification
      • Global State
      • Admins
      • Web Security
      • Media
        • Images
        • Videos
      • Hot Feed
      • Selling $DESO
        • Wyre - Buy with USD
        • Buy with BTC
        • Buy with ETH
      • Analytics
      • Emails
      • Supply Monitoring
    • 2️⃣Construct: API
      • Social Transactions API
      • NFT Transactions API
      • Financial Transactions API
      • Derived Keys Transaction API
      • DeSo Tokens Transactions API
      • Associations Transactions API
      • Access Groups API
    • 3️⃣Data: API
      • Admin Endpoints
      • Associations Endpoints
      • DeSo Tokens Endpoints
      • Media Endpoints
      • Miner Endpoints
      • Notification Endpoints
      • NFT Endpoints
      • Social Endpoints
      • Referral Endpoints
      • Tutorial Endpoints
      • Meta Data Endpoints
      • Transaction Spending Limits Endpoints
      • User Endpoints
      • Post Endpoints
      • Messages Endpoints
      • Access Group Endpoints
    • 4️⃣Transactions: API
  • DeSo Exchange Listings
    • 1️⃣Exchange Listing: API
  • DeSo Nodes
    • 2️⃣Node: Setup
    • 3️⃣Node: Staying Up-To-Date
    • 4️⃣Node: FAQ
  • DESO VALIDATORS
    • 1️⃣Run a Validator
  • Openfund
    • What is Openfund?
    • Openfund Tokenomics
    • Openfund Governance
    • Algorithmic Trading
      • The DeSo Python SDK
    • The DeSo Python SDK
      • Getting Help from the Community
      • Creating DeSo Testnet Accounts
      • Debugging Tips and Code Walkthrough
      • Write Blockchain Bots with AI
      • Market-Making Bots
      • Social AI Agents
      • AI-Generating Your Code
    • How Do the Advanced AMMs Work?
  • Focus
    • The Crypto Social Network
    • Next-Generation Token Mechanics
      • Launching Your Token
      • How the Order-Book AMMs Work
    • Crypto-Native Monetization
    • Focus Tokenomics
    • The Social Airdrop
    • Decentralizing Social Media
  • Contact And Media
    • ☀️DeSo Website
    • 📑DeSo Blog
    • 💻DeSo Github
    • 💎DeSo Diamond
    • 🐦DeSo Twitter
    • 📺DeSo YouTube
    • 📬Contact US
    • ⚠️Reporting an Account or Post
  • 中文
    • 什么是DeSo? (What is DeSo?)
    • 愿景 (The Vision)
Powered by GitBook
On this page
  • Get All User Access Groups
  • Get All Access Groups Owned
  • Get All Access Groups Member Only
  • Check Party Access Groups
  • Get Access Group Information
  • Get Access Group Member Information
  • Get Paginated Access Group Members
  • Get Bulk Access Group Entries

Was this helpful?

  1. DESO BACKEND
  2. Data: API

Access Group Endpoints

PreviousMessages EndpointsNextTransactions: API

Last updated 2 years ago

Was this helpful?

Get All User Access Groups

POST /api/v0/get-all-user-access-groups

Get All User Access Groups gets all Access Group Entry Responses representing all access groups owned by the public key as well as access groups of which the public key is a member.

Endpoint implementation in .

Request Body

Name
Type
Description

PublicKeyBase58Check*

String

Public key of the user for whom we want to get all access groups

{
  "AccessGroupsOwned": [
    {
      "AccessGroupOwnerPublicKeyBase58Check": "tBCKVqiE8oRZwcSLBJWN4WR5dSLBEkXZeWv5iqCfp2crknhFB6Fk2n",
      "AccessGroupKeyName": "",
      "AccessGroupPublicKeyBase58Check": "tBCKVqiE8oRZwcSLBJWN4WR5dSLBEkXZeWv5iqCfp2crknhFB6Fk2n",
      "ExtraData": null,
      "AccessGroupMemberEntryResponse": null
    },
    {
      "AccessGroupOwnerPublicKeyBase58Check": "tBCKVqiE8oRZwcSLBJWN4WR5dSLBEkXZeWv5iqCfp2crknhFB6Fk2n",
      "AccessGroupKeyName": "default-key",
      "AccessGroupPublicKeyBase58Check": "tBCKY3eUFE56gCdAA1reHnbnAr9uw69foeW12N1appXDfaHhte1Xia",
      "ExtraData": null,
      "AccessGroupMemberEntryResponse": null
    }
  ],
  "AccessGroupsMember": [
    {
      "AccessGroupOwnerPublicKeyBase58Check": "tBCKW665XZnvVZcCfcEmyeecSZGKAdaxwV2SH9UFab6PpSRikg4EJ2",
      "AccessGroupKeyName": "a super cool groupchat",
      "AccessGroupPublicKeyBase58Check": "tBCKWmLgvkMGkMuQ47Jhm8aYMhYMokXpFQTnhqBH7JXQsTuX8AYSs7",
      "ExtraData": null,
      "AccessGroupMemberEntryResponse": {
        "AccessGroupMemberPublicKeyBase58Check": "tBCKVqiE8oRZwcSLBJWN4WR5dSLBEkXZeWv5iqCfp2crknhFB6Fk2n",
        "AccessGroupMemberKeyName": "default-key",
        "EncryptedKey": "04bfaef01cf09ea7698e9f7f3897b7b5d21fc15ae79f36977f46b0fa9244663cded605cd9cbdf35a4b1f2dbdce151e77a9d0cd61e56db26d2086fa99c7940d2ff5296058a1f93b9abe814d3660455737c7d7962d459bc9eedaa9c433184ab810b4bc3e078c21e9c28280914b9289035df61c4ffbe21f9f9a3324588c26441eecfec3268243e50cb661e942a7d5d58748f183064470c783b1f98dee58f1660933e3e4e3bb375bd3ec85875e414a77120a9e",
        "ExtraData": null
      }
    }
  ]
}

Get All Access Groups Owned

POST /api/v0/get-all-user-access-groups-owned

Get All Access Groups Owned gets all Access Group Entry Responses representing all access groups owned by the public key.

Request Body

Name
Type
Description

PublicKeyBase58Check*

String

Public key of user for whom we want to fetch all groups they own

{
  "AccessGroupsOwned": [
    {
      "AccessGroupOwnerPublicKeyBase58Check": "tBCKVqiE8oRZwcSLBJWN4WR5dSLBEkXZeWv5iqCfp2crknhFB6Fk2n",
      "AccessGroupKeyName": "",
      "AccessGroupPublicKeyBase58Check": "tBCKVqiE8oRZwcSLBJWN4WR5dSLBEkXZeWv5iqCfp2crknhFB6Fk2n",
      "ExtraData": null,
      "AccessGroupMemberEntryResponse": null
    },
    {
      "AccessGroupOwnerPublicKeyBase58Check": "tBCKVqiE8oRZwcSLBJWN4WR5dSLBEkXZeWv5iqCfp2crknhFB6Fk2n",
      "AccessGroupKeyName": "default-key",
      "AccessGroupPublicKeyBase58Check": "tBCKY3eUFE56gCdAA1reHnbnAr9uw69foeW12N1appXDfaHhte1Xia",
      "ExtraData": null,
      "AccessGroupMemberEntryResponse": null
    }
  ]
}

Get All Access Groups Member Only

POST /api/v0/get-all-user-access-groups-member-only

Get All Access Groups Owned gets all Access Group Entry Responses representing all access groups owned by the public key.

Request Body

Name
Type
Description

PublicKeyBase58Check*

String

Public key of user for whom we want to fetch all groups of which they are a member

{
  "AccessGroupsMember": [
    {
      "AccessGroupOwnerPublicKeyBase58Check": "tBCKW665XZnvVZcCfcEmyeecSZGKAdaxwV2SH9UFab6PpSRikg4EJ2",
      "AccessGroupKeyName": "a super cool groupchat",
      "AccessGroupPublicKeyBase58Check": "tBCKWmLgvkMGkMuQ47Jhm8aYMhYMokXpFQTnhqBH7JXQsTuX8AYSs7",
      "ExtraData": null,
      "AccessGroupMemberEntryResponse": {
        "AccessGroupMemberPublicKeyBase58Check": "tBCKVqiE8oRZwcSLBJWN4WR5dSLBEkXZeWv5iqCfp2crknhFB6Fk2n",
        "AccessGroupMemberKeyName": "default-key",
        "EncryptedKey": "04bfaef01cf09ea7698e9f7f3897b7b5d21fc15ae79f36977f46b0fa9244663cded605cd9cbdf35a4b1f2dbdce151e77a9d0cd61e56db26d2086fa99c7940d2ff5296058a1f93b9abe814d3660455737c7d7962d459bc9eedaa9c433184ab810b4bc3e078c21e9c28280914b9289035df61c4ffbe21f9f9a3324588c26441eecfec3268243e50cb661e942a7d5d58748f183064470c783b1f98dee58f1660933e3e4e3bb375bd3ec85875e414a77120a9e",
        "ExtraData": null
      }
    }
  ]
}

Check Party Access Groups

POST /api/v0/check-party-access-groups

Check Party Access Groups checks whether both the sender and receiver have the requested access groups. If they do not, it returns the base key.

Request Body

Name
Type
Description

SenderPublicKeyBase58Check*

String

Public key of sender

SenderAccessGroupKeyName*

String

Access Group Key Name of sender

RecipientPublicKeyBase58Check*

String

Public key of recipient

RecipientAccessGroupKeyName*

String

Access Group Key Name of recipient

{
  "SenderPublicKeyBase58Check": "tBCKVqiE8oRZwcSLBJWN4WR5dSLBEkXZeWv5iqCfp2crknhFB6Fk2n",
  "SenderAccessGroupPublicKeyBase58Check": "tBCKY3eUFE56gCdAA1reHnbnAr9uw69foeW12N1appXDfaHhte1Xia",
  "SenderAccessGroupKeyName": "default-key",
  "IsSenderAccessGroupKey": true,
  "RecipientPublicKeyBase58Check": "tBCKW665XZnvVZcCfcEmyeecSZGKAdaxwV2SH9UFab6PpSRikg4EJ2",
  "RecipientAccessGroupPublicKeyBase58Check": "tBCKVNhD9Kn6WzxT1EdgR3Tf3Yop6CXQSDZnvMLbST6C33DTbsnku4",
  "RecipientAccessGroupKeyName": "default-key",
  "IsRecipientAccessGroupKey": true
}

Get Access Group Information

POST /api/v0/get-access-group-info

Get Access Group Information gets a single Access Group Entry Response for the access group as defined in the request body.

Request Body

Name
Type
Description

AccessGroupOwnerPublicKeyBase58Check*

String

Public key of the access group owner

AccessGroupKeyName*

String

Access group key name

{
  "AccessGroupOwnerPublicKeyBase58Check": "tBCKW665XZnvVZcCfcEmyeecSZGKAdaxwV2SH9UFab6PpSRikg4EJ2",
  "AccessGroupKeyName": "a super cool groupchat",
  "AccessGroupPublicKeyBase58Check": "tBCKWmLgvkMGkMuQ47Jhm8aYMhYMokXpFQTnhqBH7JXQsTuX8AYSs7",
  "ExtraData": null,
  "AccessGroupMemberEntryResponse": null,
}

Get Access Group Member Information

POST /api/v0/get-access-group-member-info

Get Access Group Member Information gets a single Access Group Member Entry Response for the access group member defined in the request body.

Request Body

Name
Type
Description

AccessGroupOwnerPublicKeyBase58Check*

String

Public key of the group owner

AccessGroupKeyName*

String

Access group key name of the group

AccessGroupMemberPublicKeyBase58Check*

String

Public key of the member for which we want to fetch a AccessGroupMemberEntryResponse

{
  "AccessGroupMemberPublicKeyBase58Check": "tBCKVqiE8oRZwcSLBJWN4WR5dSLBEkXZeWv5iqCfp2crknhFB6Fk2n",
  "AccessGroupMemberKeyName": "default-key",
  "EncryptedKey": "04bfaef01cf09ea7698e9f7f3897b7b5d21fc15ae79f36977f46b0fa9244663cded605cd9cbdf35a4b1f2dbdce151e77a9d0cd61e56db26d2086fa99c7940d2ff5296058a1f93b9abe814d3660455737c7d7962d459bc9eedaa9c433184ab810b4bc3e078c21e9c28280914b9289035df61c4ffbe21f9f9a3324588c26441eecfec3268243e50cb661e942a7d5d58748f183064470c783b1f98dee58f1660933e3e4e3bb375bd3ec85875e414a77120a9e",
  "ExtraData": null
}

Get Paginated Access Group Members

POST /api/v0/get-paginated-access-group-members

Get Paginated Access Group Members gets a page of Access Group Member Entry responses for the access group defined in the request body. This is useful in identifying all members of a group. A map of public key to profile entry response is provided for convenience.

Request Body

Name
Type
Description

AccessGroupOwnerPublicKeyBase58Check*

String

Public key of the group owner

AccessGroupKeyName*

String

name of the access group

StartingAccessGroupMemberPublicKeyBase58Check

String

Public key of the last result from the previous page. To get the first page, exclude this value or make it an empty string.

MaxMembersToFetch*

int

Maximum number of members to fetch. You will receive at most this number of members.

{
  "AccessGroupMembersBase58Check": [
    "tBCKVv5H1Gz6RTRhjxJwdzcfwfwoUo8b4PYWSKkayG4dy76Jsjt2Ro",
    "tBCKW665XZnvVZcCfcEmyeecSZGKAdaxwV2SH9UFab6PpSRikg4EJ2"
  ],
  "PublicKeyToProfileEntryResponse": {
    "tBCKVv5H1Gz6RTRhjxJwdzcfwfwoUo8b4PYWSKkayG4dy76Jsjt2Ro": {
      "PublicKeyBase58Check": "tBCKVv5H1Gz6RTRhjxJwdzcfwfwoUo8b4PYWSKkayG4dy76Jsjt2Ro",
      "Username": "lazynina",
      "Description": "",
      "IsHidden": false,
      "IsReserved": false,
      "IsVerified": false,
      "Comments": null,
      "Posts": null,
      "CoinEntry": {
        "CreatorBasisPoints": 10000,
        "DeSoLockedNanos": 6834043772,
        "NumberOfHolders": 1,
        "CoinsInCirculationNanos": 5448485463,
        "CoinWatermarkNanos": 5448485463,
        "BitCloutLockedNanos": 6834043772
      },
      "DAOCoinEntry": {
        "NumberOfHolders": 2,
        "CoinsInCirculationNanos": "0x1794bb7c13520200",
        "MintingDisabled": false,
        "TransferRestrictionStatus": "profile_owner_only"
      },
      "CoinPriceDeSoNanos": 3762905032,
      "CoinPriceBitCloutNanos": 3762905032,
      "UsersThatHODL": null,
      "IsFeaturedTutorialWellKnownCreator": false,
      "IsFeaturedTutorialUpAndComingCreator": false,
      "ExtraData": {
        "DAOPublicKeysPurchased": "tBCKY3nVGx7M9FT7h1RcpJyWSUpnjEzJQRXSqwAPaqcAF42W9TEwt8",
        "DerivedPublicKey": "tBCKUoDRjbVj2JMWkMqiDzvbFrSGSdD9nGty4YXsNu4zZW5cySUrbG",
        "DiscordURL": "",
        "DisplayName": "",
        "FeaturedImageURL": "",
        "LargeProfilePicURL": "",
        "MarkdownDescription": "",
        "TelegramURL": "",
        "TwitterURL": "",
        "WebsiteURL": ""
      },
      "DESOBalanceNanos": 16516822968844,
      "BestExchangeRateDESOPerDAOCoin": 0
    },
    "tBCKW665XZnvVZcCfcEmyeecSZGKAdaxwV2SH9UFab6PpSRikg4EJ2": {
      "PublicKeyBase58Check": "tBCKW665XZnvVZcCfcEmyeecSZGKAdaxwV2SH9UFab6PpSRikg4EJ2",
      "Username": "cloutchaser",
      "Description": "",
      "IsHidden": false,
      "IsReserved": false,
      "IsVerified": false,
      "Comments": null,
      "Posts": null,
      "CoinEntry": {
        "CreatorBasisPoints": 10000,
        "DeSoLockedNanos": 1124400018,
        "NumberOfHolders": 1,
        "CoinsInCirculationNanos": 9999331379,
        "CoinWatermarkNanos": 9999331379,
        "BitCloutLockedNanos": 1124400018
      },
      "DAOCoinEntry": {
        "NumberOfHolders": 3,
        "CoinsInCirculationNanos": "0xd96914214a6b400",
        "MintingDisabled": false,
        "TransferRestrictionStatus": "profile_owner_only"
      },
      "CoinPriceDeSoNanos": 337342594,
      "CoinPriceBitCloutNanos": 337342594,
      "UsersThatHODL": null,
      "IsFeaturedTutorialWellKnownCreator": false,
      "IsFeaturedTutorialUpAndComingCreator": false,
      "ExtraData": {
        "BlogSlugMap": "{\"da39a3ee5e\":\"7f9b91cd09ed5cefa0e2bbe2d70698dc665f3d4d31ee2a3a64c91ead3552ed51\"}"
      },
      "DESOBalanceNanos": 5914499057,
      "BestExchangeRateDESOPerDAOCoin": 0
    }
  }
}

Get Bulk Access Group Entries

POST /api/v0/get-bulk-access-group-entries

Get Bulk Access Group Entries returns an array of AccessGroupEntryResponse objects for the request list of group owner + group key name pairs in the request body.

Request Body

Name
Type
Description

GroupOwnerAndGroupKeyNamePairs*

GroupOwnerAndGroupKeyNamePair[]

An array of objects containing the below attributes.

GroupOwnerPublicKeyBase58Check: the owner of the group

GroupKeyName: the name of the group

This endpoint will return the associated AccessGroupEntryResponse for each object. If the AccessGroupEntryResponse is not found, this object will appear in the PairsNotFound array in the response.

{
  "AccessGroupEntries": [
    {
      "AccessGroupOwnerPublicKeyBase58Check": "tBCKVapwwkTTdgpfEKGphh5bGMvcU9aLJTqssRopKX7wQyzwGvoxGL",
      "AccessGroupKeyName": "default-key",
      "AccessGroupPublicKeyBase58Check": "tBCKWgxWqvmmMF1H9K49onuyp1bcYEs1PqAuCFJJbCg8RJPb4jvBTG",
      "ExtraData": null,
      "AccessGroupMemberEntryResponse": null
    }
  ],
  "PairsNotFound": null
}

Endpoint implementation in .

Endpoint implementation in .

Endpoint implementation in .

Endpoint implementation in .

Endpoint implementation in .

Endpoint implementation in .

Endpoint implementation in .

3️⃣
backend
backend
backend
backend
backend
backend
backend
backend