Allowlisting API

Platform

Platform Account Operations

Create a platform account

Create a platform account with an ACTIVE status.

WARNING Integrators should make sure that the depositor has gone through an effective KYC/KYB process and is deemed within appetite to stake their ETH through the Liquid Collective.

When creating the depositor an integrator should supply a non-empty, unique identifying key (it can typically be an internal user identifier).

As long as a depositor remains in ACTIVE status, it is possible to attach wallets to it that will automatically be submitted to the protocol on-chain allowlist.

post

/v0/platform/accounts

Authorizations
Body
keystring

Unique identifier of the account (supplied by the client)

Example: depositor_example
Responses
curl -L \
  --request POST \
  --url 'https://api.alluvial.finance/v0/platform/accounts' \
  --header 'Authorization: Bearer JWT' \
  --header 'Content-Type: application/json' \
  --data '{"key":"depositor_example"}'
{
  "created_at": "2024-01-24T13:07:50.335845Z",
  "id": "ac0d0cdf-92bc-4cbe-a180-a2efb2387d16",
  "key": "depositor_example",
  "org_id": "org_28CLGCvsdG7TlOHf",
  "status": "ACTIVE"
}

List platform accounts

List platform accounts

get

/v0/platform/accounts

Authorizations
Responses
curl -L \
  --url 'https://api.alluvial.finance/v0/platform/accounts' \
  --header 'Authorization: Bearer JWT'
[
  {
    "created_at": "2024-01-24T13:07:50.335845Z",
    "id": "ac0d0cdf-92bc-4cbe-a180-a2efb2387d16",
    "key": "depositor_example",
    "org_id": "org_28CLGCvsdG7TlOHf",
    "status": "ACTIVE | PAUSED | REMOVED | DENIED",
    "wallets": [
      {
        "account_id": "ac0d0cdf-92bc-4cbe-a180-a2efb2387d16",
        "address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
        "allowlisted": true,
        "created_at": "2024-01-25T13:07:50.335845Z",
        "id": "dd8eefc8-0cc4-4a27-adc0-e1ebebed598d",
        "on_platform": true,
        "type": "ETH",
        "status": "ALLOWLISTED"
      }
    ]
  }
]

Get platform account

Get platform account

get

/v0/platform/accounts/{idOrKey}

Authorizations
Path parameters
idOrKeystringrequired

Account ID or Key of the platform account

Responses
curl -L \
  --url 'https://api.alluvial.finance/v0/platform/accounts/{idOrKey}' \
  --header 'Authorization: Bearer JWT'
{
  "created_at": "2024-01-24T13:07:50.335845Z",
  "id": "ac0d0cdf-92bc-4cbe-a180-a2efb2387d16",
  "key": "depositor_example",
  "org_id": "org_28CLGCvsdG7TlOHf",
  "status": "ACTIVE | PAUSED | REMOVED | DENIED",
  "wallets": [
    {
      "account_id": "ac0d0cdf-92bc-4cbe-a180-a2efb2387d16",
      "address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
      "allowlisted": true,
      "created_at": "2024-01-25T13:07:50.335845Z",
      "id": "dd8eefc8-0cc4-4a27-adc0-e1ebebed598d",
      "on_platform": true,
      "type": "ETH",
      "status": "ALLOWLISTED"
    }
  ]
}

Remove a platform account

Set account's status to REMOVED.

Integrators can call this method for their inactive users to be removed from the liquid staking protocol(s) allowlist.

Once account's status has been set to REMOVED:

  • It is no longer possible to attach new wallets to the account
  • Alluvial will remove any previously attached wallets from protocol's on-chain allowlist

Removing a wallet from the protocol allowlist results in disabling the ability to stake or redeem ETH.

Note that removing a wallet from the allowlist is an asynchronous process that can take some time.

patch

/v0/platform/accounts/{idOrKey}/remove

Authorizations
Path parameters
idOrKeystringrequired

Account ID or Key of the account to remove

Responses
curl -L \
  --request PATCH \
  --url 'https://api.alluvial.finance/v0/platform/accounts/{idOrKey}/remove' \
  --header 'Authorization: Bearer JWT'
{
  "created_at": "2024-01-24T13:07:50.335845Z",
  "id": "ac0d0cdf-92bc-4cbe-a180-a2efb2387d16",
  "key": "depositor_example",
  "org_id": "org_28CLGCvsdG7TlOHf",
  "status": "REMOVED",
  "wallets": [
    {
      "account_id": "ac0d0cdf-92bc-4cbe-a180-a2efb2387d16",
      "address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
      "created_at": "2024-01-25T13:07:50.335845Z",
      "id": "dd8eefc8-0cc4-4a27-adc0-e1ebebed598d",
      "type": "ETH",
      "status": "REMOVED"
    }
  ]
}

Pause a platform account

Set account's status to PAUSED.

Once an account's status has been set to PAUSED:

  • If the account has allowlisted wallet they will be unable to stake nor redeem.
  • Wallets will be able to transfer LsETH normally.
  • Accounts won't be able to add new wallets.
patch

/v0/platform/accounts/{idOrKey}/pause

Authorizations
Path parameters
idOrKeystringrequired

Account ID or Key of the account to remove

Responses
curl -L \
  --request PATCH \
  --url 'https://api.alluvial.finance/v0/platform/accounts/{idOrKey}/pause' \
  --header 'Authorization: Bearer JWT'
{
  "created_at": "2024-01-24T13:07:50.335845Z",
  "id": "ac0d0cdf-92bc-4cbe-a180-a2efb2387d16",
  "key": "depositor_example",
  "org_id": "org_28CLGCvsdG7TlOHf",
  "status": "PAUSED",
  "wallets": [
    {
      "account_id": "ac0d0cdf-92bc-4cbe-a180-a2efb2387d16",
      "address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
      "allowlisted": true,
      "created_at": "2024-01-25T13:07:50.335845Z",
      "id": "dd8eefc8-0cc4-4a27-adc0-e1ebebed598d",
      "on_platform": true,
      "type": "ETH",
      "status": "ALLOWLISTED"
    }
  ]
}

Reactivate a platform account

Set a PAUSED account's status to ACTIVE.

This will enable the account to stake and redeem again (if the account has allowlisted wallets), and enable you to add more wallets to the account.

This is only possible for PAUSED accounts - DENIED or REMOVED accounts cannot be reactivated.

patch

/v0/platform/accounts/{idOrKey}/reactivate

Authorizations
Path parameters
idOrKeystringrequired

Account ID or Key of the account to reactivate

Responses
curl -L \
  --request PATCH \
  --url 'https://api.alluvial.finance/v0/platform/accounts/{idOrKey}/reactivate' \
  --header 'Authorization: Bearer JWT'
{
  "created_at": "2024-01-24T13:07:50.335845Z",
  "id": "ac0d0cdf-92bc-4cbe-a180-a2efb2387d16",
  "key": "depositor_example",
  "org_id": "org_28CLGCvsdG7TlOHf",
  "status": "ACTIVE",
  "wallets": [
    {
      "account_id": "ac0d0cdf-92bc-4cbe-a180-a2efb2387d16",
      "address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
      "allowlisted": true,
      "created_at": "2024-01-25T13:07:50.335845Z",
      "id": "dd8eefc8-0cc4-4a27-adc0-e1ebebed598d",
      "on_platform": true,
      "type": "ETH",
      "status": "ALLOWLISTED"
    }
  ]
}

Platform Wallet Operations

Get platform wallet

Get platform wallet

get

/v0/platform/wallets/{idOrAddress}

Authorizations
Path parameters
idOrAddressstringrequired

Wallet ID or Address of the wallet (address in hex format prefixed with 0x)

Responses
curl -L \
  --url 'https://api.alluvial.finance/v0/platform/wallets/{idOrAddress}' \
  --header 'Authorization: Bearer JWT'
{
  "account_id": "ac0d0cdf-92bc-4cbe-a180-a2efb2387d16",
  "address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
  "allowlisted": true,
  "created_at": "2024-01-25T13:07:50.335845Z",
  "id": "dd8eefc8-0cc4-4a27-adc0-e1ebebed598d",
  "on_platform": true,
  "type": "ETH",
  "status": "ALLOWLISTED"
}

List platform wallets

List platform wallets

get

/v0/platform/wallets

Authorizations
Query parameters
allowlistboolean

Enable to only return allowlisted wallets

on_platformboolean

Enable to only return wallets on_platform

offsetinteger

Offset for pagination

limitinteger

Limit for pagination

Responses
curl -L \
  --url 'https://api.alluvial.finance/v0/platform/wallets' \
  --header 'Authorization: Bearer JWT'
[
  {
    "account_id": "ac0d0cdf-92bc-4cbe-a180-a2efb2387d16",
    "address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
    "allowlisted": true,
    "created_at": "2024-01-25T13:07:50.335845Z",
    "id": "dd8eefc8-0cc4-4a27-adc0-e1ebebed598d",
    "on_platform": true,
    "type": "ETH",
    "status": "ALLOWLISTED"
  }
]

Platform Account Wallet Operations

Add wallet on platform

Create a wallet attached to an account

If the account is in ACTIVE status and if the wallet's has the allowlisted property set to true Alluvial will add the wallet address to the protocol on-chain allowlist.

Adding a wallet to the protocol allowlist results in enabling the wallet to proceed to deposit and redeem ETH on the protocol.

Note that submitting the wallet to the on-chain allowlist is an asynchronous process that can take some time. The onboarding allows to check the submission status by getting the wallet.

Important Notes:

  • Alluvial will never ask for private keys of the wallets**
  • You will only be able to create allowlisted wallets if your organization is configured to do so.
  • If your organization is able to allowlist wallets, it method will do so by default.
post

/v0/platform/accounts/{idOrKey}/wallets

Authorizations
Path parameters
idOrKeystringrequired

Account ID or Key of the account to add wallets to

Body
addressstring

Wallet address in hexadecimal format with 0x prefix

Example: 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045
allowlistedboolean

Opt out of wallet being added to the OnPlatform list

Example: true
typestring

The type of wallet - chain or protocol it exists on

Example: ETH
Responses
curl -L \
  --request POST \
  --url 'https://api.alluvial.finance/v0/platform/accounts/{idOrKey}/wallets' \
  --header 'Authorization: Bearer JWT' \
  --header 'Content-Type: application/json' \
  --data '{"address":"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045","allowlisted":true,"type":"ETH"}'
{
  "account_id": "ac0d0cdf-92bc-4cbe-a180-a2efb2387d16",
  "address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
  "allowlisted": true,
  "created_at": "2024-01-25T13:07:50.335845Z",
  "id": "dd8eefc8-0cc4-4a27-adc0-e1ebebed598d",
  "on_platform": true,
  "type": "ETH",
  "status": "ALLOWLISTED"
}

List all the platform account wallets

List all wallets for a platform account

get

/v0/platform/accounts/{idOrKey}/wallets

Authorizations
Path parameters
idOrKeystringrequired

Account ID or Key of the account

Query parameters
allowlistboolean

Enable to only return allowlisted wallets

on_platformboolean

Enable to only return wallets on_platform

offsetinteger

Offset for pagination

limitinteger

Limit for pagination

Responses
curl -L \
  --url 'https://api.alluvial.finance/v0/platform/accounts/{idOrKey}/wallets' \
  --header 'Authorization: Bearer JWT'
[
  {
    "account_id": "ac0d0cdf-92bc-4cbe-a180-a2efb2387d16",
    "address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
    "allowlisted": true,
    "created_at": "2024-01-25T13:07:50.335845Z",
    "id": "dd8eefc8-0cc4-4a27-adc0-e1ebebed598d",
    "on_platform": true,
    "type": "ETH",
    "status": "ALLOWLISTED"
  }
]

Remove wallet on platform

Remove wallet from a given wallet from either the on_platform, the allowlisted, or both.

patch

/v0/platform/accounts/{idOrKey}/wallets/{idOrAddress}/remove

Authorizations
Path parameters
idOrKeystringrequired

Account ID or Key of the account to remove wallet from

idOrAddressstringrequired

Wallet ID or Address of the wallet to be removed

Query parameters
allowlistboolean

Enable to remove wallet from the allowlist

on_platformboolean

Enable to remove wallet on_platform

Responses
curl -L \
  --request PATCH \
  --url 'https://api.alluvial.finance/v0/platform/accounts/{idOrKey}/wallets/{idOrAddress}/remove' \
  --header 'Authorization: Bearer JWT'
{
  "account_id": "ac0d0cdf-92bc-4cbe-a180-a2efb2387d16",
  "address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
  "created_at": "2024-01-25T13:07:50.335845Z",
  "id": "dd8eefc8-0cc4-4a27-adc0-e1ebebed598d",
  "type": "ETH",
  "status": "REMOVED"
}

Pause wallet

Set wallet's status to PAUSED.

Once a wallet's status has been set to PAUSED:

  • If the wallet was allowlisted, it will be unable to stake nor redeem.
  • Wallet will be able to transfer LsETH normally.
patch

/v0/platform/accounts/{idOrKey}/wallets/{idOrAddress}/pause

Authorizations
Path parameters
idOrKeystringrequired

Depositor ID or Key of the depositor to pause wallet from

idOrAddressstringrequired

Wallet ID or Address of the wallet to be paused

Query parameters
allowlistboolean

Enable to pause wallet from the allowlist

on_platformboolean

Enable to pause wallet on_platform

Responses
curl -L \
  --request PATCH \
  --url 'https://api.alluvial.finance/v0/platform/accounts/{idOrKey}/wallets/{idOrAddress}/pause' \
  --header 'Authorization: Bearer JWT'
{
  "account_id": "ac0d0cdf-92bc-4cbe-a180-a2efb2387d16",
  "address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
  "allowlisted": true,
  "created_at": "2024-01-25T13:07:50.335845Z",
  "id": "dd8eefc8-0cc4-4a27-adc0-e1ebebed598d",
  "on_platform": true,
  "type": "ETH",
  "status": "PAUSED | ALLOWLISTED"
}

Reactivate wallet

Set a PAUSED wallet's status to ACTIVE.

This will enable the wallet to stake and redeem again.

This action can only be performed under these conditions:

  • The wallet has PAUSED status - DENIED or REMOVED wallets cannot be reactivated.
  • A wallet can only be reactivated if the associated account has an ACTIVE status.
patch

/v0/platform/accounts/{idOrKey}/wallets/{idOrAddress}/reactivate

Authorizations
Path parameters
idOrKeystringrequired

Depositor ID or Key of the depositor to reactivate wallet from

idOrAddressstringrequired

Wallet ID or Address of the wallet to be reactivated

Query parameters
allowlistboolean

Enable to reactivate wallet from the allowlist

on_platformboolean

Enable to reactivate wallet on_platform

Responses
curl -L \
  --request PATCH \
  --url 'https://api.alluvial.finance/v0/platform/accounts/{idOrKey}/wallets/{idOrAddress}/reactivate' \
  --header 'Authorization: Bearer JWT'
{
  "account_id": "ac0d0cdf-92bc-4cbe-a180-a2efb2387d16",
  "address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
  "allowlisted": true,
  "created_at": "2024-01-25T13:07:50.335845Z",
  "id": "dd8eefc8-0cc4-4a27-adc0-e1ebebed598d",
  "on_platform": true,
  "type": "ETH",
  "status": "PAUSED | ALLOWLISTED"
}

Last updated

Was this helpful?