# Add Service Endpoint

### Before you begin

Before you begin, Make sure you have the following:

* [Creating InfraDID](https://docs.infrablockchain.net/infrablockchain-docs/infrablockchain/tutorials/service-chains/infra-did-parachain/create-infra-did)

### Adding Service Endpoints to InfraDID

To make a list of service endpoints available for a specific DID and store it on the chain, making it public for others to inspect the Document of a specific DID, follow these steps:

1. Visit the [InfraBlockchain Explorer](https://portal.infrablockspace.net) and follow the steps below.

* Go to `Developer` - `Extrinsic` and select the `addServices` extrinsic of the `didModule` palette.

  Configure it as shown below and trigger the extrinsic:

  ![add-services](https://3394686052-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5FcHUSDzEQOuSRhER7FQ%2Fuploads%2Fgit-blob-7f797697c32864d15af53706e03fa9d7d02973d4%2Fadd-services.png?alt=media)

### Removing Service Endpoints from InfraDID

To remove service endpoints from InfraDID, follow these steps:

1. Visit the [InfraBlockchain Explorer](https://portal.infrablockspace.net) and follow the steps below.

* Go to `Developer` - `Extrinsic` and select the `removeServices` extrinsic of the `didModule` palette.

  Configure it as shown below and trigger the extrinsic:

  ![remove-services](https://3394686052-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5FcHUSDzEQOuSRhER7FQ%2Fuploads%2Fgit-blob-ebc4a265b55d960687a32430a4709c27d28ae696%2Fremove-services.png?alt=media)

### Adding and Removing Service Endpoints from InfraDID Using the `infra-did-js` Library

To add and remove service endpoints from InfraDID using the `infra-did-js` library:

1. Install the [`infra-did-js`](https://github.com/InfraBlockchain/infra-did-js) library.

   ```shell
   yarn add infra-did-js
   ```
2. Write code to set up the basic configuration code for accessing InfraDID chain, as shown below:

   ```typescript
   import  {InfraSS58, CRYPTO_INFO} from 'infra-did-js';

   const txfeePaterAccountKeyPair = await InfraSS58.getKeyPairFromUri('//Alice', 'sr25519');
   const confBlockchainNetwork = {
     networkId: 'space',
     address: 'ws://localhost:9944',
     // seed or keyPair required
     txfeePayerAccountKeyPair,
     // or txfeePayerAccountSeed: 'TX_FEE_PAYER_ACCOUNT_SEED'
   };
   const conf = {
     ...confBlockchainNetwork,
     did: 'did:infra:space:5CRV5zBdAhBALnXiBSWZWjca3rSREBg87GJ6UY9i2A7y1rCs',
     // seed or keyPair required
     seed: 'DID_SEED',
     // keyPair: keyPair,
     controllerDID: 'did:infra:space:5HdJprb8NhaJsGASLBKGQ1bkKkvaZDaK1FxTbJRXNShFuqgY'
     controllerSeed: 'DID_CONTROLLER_SEED',
     // or controllerKeyPair: controllerKeyPair
   };
   const infraApi = await InfraSS58.createAsync(conf);
   ```
3. Write code to add service endpoints to InfraDID:

   ```typescript
   // Add Service Endpoint
   /*
   addServiceEndpoint(
     originsTexts: string[],
     endpointType?: ServiceEndpointType,
     endpointIdText?: string,
   )
   */
   await infraApi.didModule.addServiceEndpoint(SOME_SERVICE_ENDPOINT_URLS);
   ```
4. Alternatively, write code to remove service endpoints from InfraDID:

   ```typescript
   // Remove Service Endpoint
   /*
   removeServiceEndpoint(
     endpointIdText?: string
   )
   */
   await infraApi.didModule.removeServiceEndpoint();
   ```
