SDK Reference
Methods
Deprecated
CreateChannel

createChannel

⚠️

Channels have been deprecated in favor of Contexts. Check out createContext.


Will create a new channel in an existing group. Can only be used by the admin of a group

How to use?

const res = await orbis.createChannel(group_id, options);

Parameters

  • group_id - (stream) ID of the group in which this channel should be
  • options - Object which contains the details of the channel
    • group_id - string ID of the group this channel is part of
    • name - string Name of the channel
    • description - string Description of the channel
    • type - string Display type for the channel, can be:
      • chat - If the channel should be displayed as a group chat like Discord
      • feed - If the posts shared are longer with comments and threads
    • encryptionRules - object optional A JSON object containing the optional encryption rules for this channel. Those rules must then be passed as a parameter to the createPost function.
      • type - string The type of encryption needed, only token-gated is supported for now.
      • chain - string The chain on which the smart contract is. Must be one of those in lowercase
      • contractType - string The type of contract being used, must be ERC20, ERC721 or ERC1155.
      • contractAddress - string The address of the contract.
      • minTokenBalance - string The minimum balance required to decrypt the post (in WEI for ERC20).
      • tokenId - string optional Used only for ERC1155 tokens to represent the tokenId used.
    • vcAccessRules - array optional The list of credentials requested to share content in this channel.
      • key - string The key to check in the credential JSON object.
      • id - string The value expected for the key
      • rule - string Can be = or includes. It will be used to check if the key is equal to the id or if it should simply include it.
      • issuer - string The did issuing the credential.
    • data - object optional Can be used to attach some custom data to a channel

Returns

{
  status: 200,
  doc: "kjzl6cwe1...e4wvxhiqj",
  result: "Success creating TileDocument."
}

Examples

Access Gating via Gitcoin Passport

Creates a channel that requires users to have a Github Credential in their Gitcoin Passport.

const res = await orbis.createChannel(
  "kjzl6cwe1...e4wvxhiqj",
  {
    group_id: "kjzl6cwe1...e4wvxhiqj",
    pfp: "https://...",
    name: "developers-only",
    description: "Channel restricted to developers.",
    "vcAccessRules": [
      {
        "id": "GitHub",
        "key": "provider",
        "rule": "=",
        "issuer": "did:key:z6mkghvghlobledj1bgrlhs4lpgjavbma1tn2zcryqmyu5lc"
      }
    ]
  }
);