> For the complete documentation index, see [llms.txt](https://doc.cess.network/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://doc.cess.network/developer/cess-sdk/sdk-rust/chain/oss/register.md).

# Register

This function allows an account to register as an OSS in the pallet.

```rust
/// Register an OSS
///
/// This function allows an account to register as an OSS in the pallet.
/// An OSS is a service provider that offers its services via a defined endpoint.
/// Registering as an OSS enables the account to make its services accessible to other users and be authorized for certain actions.
///
/// # Parameters
///
/// - `endpoint`: The unique peer ID or endpoint that identifies the OSS and its services, represented as a byte array of length 38.
/// - `domain`: A bounded vector of up to 50 bytes representing the domain or description of the OSS.
///
/// # Returns
///
/// Returns a `Result` that, on success, contains a tuple with:
/// - `TxHash`: The transaction hash associated with the registration of the OSS.
/// - `OssRegister`: A structure representing the result of the OSS registration process.
///
pub async fn register(
    &self,
    endpoint: [u8; 38],
    domain: BoundedVec<u8>,
) -> Result<(TxHash, OssRegister), Box<dyn std::error::Error>>
```
