# RegistrationStrategy · FT4 TypeScript client · Chromia Docs (concept)

> Functions that can be used to register an account interface RegistrationStrategy { fee : (
        senderBlockchainRid: BufferId,
        feeAsset: Asset ,

Source: https://docs.chromia.com/pages/ft4-ts-client/interfaces/registration.RegistrationStrategy/

Interface

# RegistrationStrategy

On this page

* [Properties](#properties)
* [fee](#fee)
* [importStrategy](#importstrategy)
* [open](#open)
* [subscription](#subscription)
* [transferFee](#transferfee)
* [transferOpen](#transferopen)
* [transferSubscription](#transfersubscription)

Functions that can be used to register an account

```signature
interface RegistrationStrategy {
    fee: (
        senderBlockchainRid: BufferId,
        feeAsset: Asset,
        authDescriptor: AnyAuthDescriptorRegistration,
        loginConfig?: LoginConfigOptions | null,
    ) => Strategy;
    importStrategy: (
        originBrid: BufferId,
        mainAuthDescriptor: AnyAuthDescriptorRegistration,
        loginConfig?: LoginConfigOptions | null,
        options?: ImportStrategyOptions,
    ) => Strategy;
    open: (
        authDescriptor: AnyAuthDescriptorRegistration,
        loginConfig?: LoginConfigOptions | null,
    ) => Strategy;
    subscription: (
        senderBlockchainRid: BufferId,
        subscriptionAsset: Asset,
        authDescriptor: AnyAuthDescriptorRegistration,
        loginConfig?: LoginConfigOptions | null,
    ) => Strategy;
    transferFee: (
        feeAsset: Asset,
        authDescriptor: AnyAuthDescriptorRegistration,
        loginConfig?: LoginConfigOptions | null,
    ) => Strategy;
    transferOpen: (
        authDescriptor: AnyAuthDescriptorRegistration,
        loginConfig?: LoginConfigOptions | null,
    ) => Strategy;
    transferSubscription: (
        subscriptionAsset: Asset,
        authDescriptor: AnyAuthDescriptorRegistration,
        loginConfig?: LoginConfigOptions | null,
    ) => Strategy;
}
```

## Properties

### fee

```signature
fee: (
    senderBlockchainRid: BufferId,
    feeAsset: Asset,
    authDescriptor: AnyAuthDescriptorRegistration,
    loginConfig?: LoginConfigOptions | null,
) => Strategy
```

Registers an account using the fee strategy

#### Type Declaration

* ```signature
  (
      senderBlockchainRid: BufferId,
      feeAsset: Asset,
      authDescriptor: AnyAuthDescriptorRegistration,
      loginConfig?: LoginConfigOptions | null,
  ): Strategy
  ```

  + #### Parameters

    - senderBlockchainRid: BufferId

      the blockchain rid from which the assets will be paid
    - feeAsset: [Asset](https://docs.chromia.com/pages/ft4-ts-client/types/asset.Asset/)

      the asset that will be used to pay the fee
    - authDescriptor: [AnyAuthDescriptorRegistration](https://docs.chromia.com/pages/ft4-ts-client/types/accounts.AnyAuthDescriptorRegistration/)

      the auth descriptor of the new account
    - `Optional`loginConfig: [LoginConfigOptions](https://docs.chromia.com/pages/ft4-ts-client/types/authentication.LoginConfigOptions/) | null

      the config if the account should be created with an active session, otherwise `null`

    #### Returns [Strategy](https://docs.chromia.com/pages/ft4-ts-client/interfaces/registration.Strategy/)

    Strategy instance that can be used to retrieve registration details

### importStrategy

```signature
importStrategy: (
    originBrid: BufferId,
    mainAuthDescriptor: AnyAuthDescriptorRegistration,
    loginConfig?: LoginConfigOptions | null,
    options?: ImportStrategyOptions,
) => Strategy
```

Creates an account using the import strategy

#### Type Declaration

* ```signature
  (
      originBrid: BufferId,
      mainAuthDescriptor: AnyAuthDescriptorRegistration,
      loginConfig?: LoginConfigOptions | null,
      options?: ImportStrategyOptions,
  ): Strategy
  ```

  + #### Parameters

    - originBrid: BufferId

      the blockchain rid where the original account exists
    - mainAuthDescriptor: [AnyAuthDescriptorRegistration](https://docs.chromia.com/pages/ft4-ts-client/types/accounts.AnyAuthDescriptorRegistration/)

      The main auth descriptor of the account to import
    - `Optional`loginConfig: [LoginConfigOptions](https://docs.chromia.com/pages/ft4-ts-client/types/authentication.LoginConfigOptions/) | null

      the config if the account should be created with an active session, otherwise `null`
    - `Optional`options: [ImportStrategyOptions](https://docs.chromia.com/pages/ft4-ts-client/types/registration.ImportStrategyOptions/)

      the options for the import strategy

    #### Returns [Strategy](https://docs.chromia.com/pages/ft4-ts-client/interfaces/registration.Strategy/)

    Strategy instance that can be used to retrieve registration details

### open

```signature
open: (
    authDescriptor: AnyAuthDescriptorRegistration,
    loginConfig?: LoginConfigOptions | null,
) => Strategy
```

Registers an account using the open strategy

#### Type Declaration

* ```signature
  (
      authDescriptor: AnyAuthDescriptorRegistration,
      loginConfig?: LoginConfigOptions | null,
  ): Strategy
  ```

  + #### Parameters

    - authDescriptor: [AnyAuthDescriptorRegistration](https://docs.chromia.com/pages/ft4-ts-client/types/accounts.AnyAuthDescriptorRegistration/)

      the auth descriptor of the new account
    - `Optional`loginConfig: [LoginConfigOptions](https://docs.chromia.com/pages/ft4-ts-client/types/authentication.LoginConfigOptions/) | null

      the config if the account should be created with an active session, otherwise `null`

    #### Returns [Strategy](https://docs.chromia.com/pages/ft4-ts-client/interfaces/registration.Strategy/)

    Strategy instance that can be used to retrieve registration details

### subscription

```signature
subscription: (
    senderBlockchainRid: BufferId,
    subscriptionAsset: Asset,
    authDescriptor: AnyAuthDescriptorRegistration,
    loginConfig?: LoginConfigOptions | null,
) => Strategy
```

Registers an account using the subscription strategy

#### Type Declaration

* ```signature
  (
      senderBlockchainRid: BufferId,
      subscriptionAsset: Asset,
      authDescriptor: AnyAuthDescriptorRegistration,
      loginConfig?: LoginConfigOptions | null,
  ): Strategy
  ```

  + #### Parameters

    - senderBlockchainRid: BufferId

      the blockchain rid from which the assets will be paid
    - subscriptionAsset: [Asset](https://docs.chromia.com/pages/ft4-ts-client/types/asset.Asset/)

      the asset that will be used to pay the subscription
    - authDescriptor: [AnyAuthDescriptorRegistration](https://docs.chromia.com/pages/ft4-ts-client/types/accounts.AnyAuthDescriptorRegistration/)

      the auth descriptor of the new account
    - `Optional`loginConfig: [LoginConfigOptions](https://docs.chromia.com/pages/ft4-ts-client/types/authentication.LoginConfigOptions/) | null

      the config if the account should be created with an active session, otherwise `null`

    #### Returns [Strategy](https://docs.chromia.com/pages/ft4-ts-client/interfaces/registration.Strategy/)

    Strategy instance that can be used to retrieve registration details

### transferFee

```signature
transferFee: (
    feeAsset: Asset,
    authDescriptor: AnyAuthDescriptorRegistration,
    loginConfig?: LoginConfigOptions | null,
) => Strategy
```

Creates an account that previously had assets transferred to it, and paying a fee

#### Type Declaration

* ```signature
  (
      feeAsset: Asset,
      authDescriptor: AnyAuthDescriptorRegistration,
      loginConfig?: LoginConfigOptions | null,
  ): Strategy
  ```

  + #### Parameters

    - feeAsset: [Asset](https://docs.chromia.com/pages/ft4-ts-client/types/asset.Asset/)

      the asset in which to pay the fee. The asset needs to be present on the account
    - authDescriptor: [AnyAuthDescriptorRegistration](https://docs.chromia.com/pages/ft4-ts-client/types/accounts.AnyAuthDescriptorRegistration/)

      the auth descriptor of the new account
    - `Optional`loginConfig: [LoginConfigOptions](https://docs.chromia.com/pages/ft4-ts-client/types/authentication.LoginConfigOptions/) | null

      the config if the account should be created with an active session, otherwise `null`

    #### Returns [Strategy](https://docs.chromia.com/pages/ft4-ts-client/interfaces/registration.Strategy/)

    Strategy instance that can be used to retrieve registration details

### transferOpen

```signature
transferOpen: (
    authDescriptor: AnyAuthDescriptorRegistration,
    loginConfig?: LoginConfigOptions | null,
) => Strategy
```

Creates an account that previously had assets transferred to it, without paying a fee

#### Type Declaration

* ```signature
  (
      authDescriptor: AnyAuthDescriptorRegistration,
      loginConfig?: LoginConfigOptions | null,
  ): Strategy
  ```

  + #### Parameters

    - authDescriptor: [AnyAuthDescriptorRegistration](https://docs.chromia.com/pages/ft4-ts-client/types/accounts.AnyAuthDescriptorRegistration/)

      the auth descriptor of the new account
    - `Optional`loginConfig: [LoginConfigOptions](https://docs.chromia.com/pages/ft4-ts-client/types/authentication.LoginConfigOptions/) | null

      the config if the account should be created with an active session, otherwise `null`

    #### Returns [Strategy](https://docs.chromia.com/pages/ft4-ts-client/interfaces/registration.Strategy/)

    Strategy instance that can be used to retrieve registration details

### transferSubscription

```signature
transferSubscription: (
    subscriptionAsset: Asset,
    authDescriptor: AnyAuthDescriptorRegistration,
    loginConfig?: LoginConfigOptions | null,
) => Strategy
```

Creates an account that previously had assets transferred to it, paying a subscription fee

#### Type Declaration

* ```signature
  (
      subscriptionAsset: Asset,
      authDescriptor: AnyAuthDescriptorRegistration,
      loginConfig?: LoginConfigOptions | null,
  ): Strategy
  ```

  + #### Parameters

    - subscriptionAsset: [Asset](https://docs.chromia.com/pages/ft4-ts-client/types/asset.Asset/)

      the asset that will be used to pay the subscription. The asset must already have been sent to the account
    - authDescriptor: [AnyAuthDescriptorRegistration](https://docs.chromia.com/pages/ft4-ts-client/types/accounts.AnyAuthDescriptorRegistration/)

      the auth descriptor of the new account
    - `Optional`loginConfig: [LoginConfigOptions](https://docs.chromia.com/pages/ft4-ts-client/types/authentication.LoginConfigOptions/) | null

      the config if the account should be created with an active session, otherwise `null`

    #### Returns [Strategy](https://docs.chromia.com/pages/ft4-ts-client/interfaces/registration.Strategy/)

    Strategy instance that can be used to retrieve registration details

[View this page on docs.chromia.com](https://docs.chromia.com/pages/ft4-ts-client/interfaces/registration.RegistrationStrategy.html)Generated API reference, mirrored from the live docs
