Alluvial
  • πŸš€Who is Alluvial?
  • πŸ—ΊοΈGuides
    • Mint and Redeem support
    • Secondary Interaction support
    • Reporting
    • Supplemental Guides
      • Architecture
      • Authentication
      • Redemptions
      • Staking
  • πŸ“–APIs
    • Authentication API
    • Ethereum Data API
    • Allowlisting API
    • Redemption API
    • Reporting API
    • Discounting API
    • Public APIs
  • 🌎Third Party Integration Guides
    • Fireblocks
  • Changelog
Powered by GitBook
On this page

Was this helpful?

Export as PDF
  1. APIs

Allowlisting API

PreviousEthereum Data APINextRedemption API

Last updated 5 months ago

Was this helpful?

Platform

Platform Account Operations

Platform Wallet Operations

Platform Account Wallet Operations

πŸ“–

List platform accounts

get

List platform accounts

Authorizations
Responses
200
OK
application/json
401
Unauthorized
application/json
403
Forbidden
application/json
500
Internal error
application/json
get
GET /v0/platform/accounts HTTP/1.1
Host: api.alluvial.finance
Authorization: Bearer JWT
Accept: */*
[
  {
    "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,
        "status": "ALLOWLISTED",
        "type": "ETH"
      }
    ]
  }
]

Get platform account

get

Get platform account

Authorizations
Path parameters
idOrKeystringRequired

Account ID or Key of the platform account

Responses
200
OK
application/json
401
Unauthorized
application/json
403
Forbidden
application/json
404
Not found
application/json
500
Internal error
application/json
get
GET /v0/platform/accounts/{idOrKey} HTTP/1.1
Host: api.alluvial.finance
Authorization: Bearer JWT
Accept: */*
{
  "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,
      "status": "ALLOWLISTED",
      "type": "ETH"
    }
  ]
}

Remove a platform account

patch

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.

Authorizations
Path parameters
idOrKeystringRequired

Account ID or Key of the account to remove

Responses
200
OK
application/json
400
Bad request
application/json
401
Unauthorized
application/json
403
Forbidden
application/json
404
Not found
application/json
500
Internal error
application/json
patch
PATCH /v0/platform/accounts/{idOrKey}/remove HTTP/1.1
Host: api.alluvial.finance
Authorization: Bearer JWT
Accept: */*
{
  "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",
      "status": "REMOVED",
      "type": "ETH"
    }
  ]
}

Pause a platform account

patch

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.
Authorizations
Path parameters
idOrKeystringRequired

Account ID or Key of the account to remove

Responses
200
OK
application/json
400
Bad request
application/json
401
Unauthorized
application/json
403
Forbidden
application/json
404
Not found
application/json
500
Internal error
application/json
patch
PATCH /v0/platform/accounts/{idOrKey}/pause HTTP/1.1
Host: api.alluvial.finance
Authorization: Bearer JWT
Accept: */*
{
  "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,
      "status": "ALLOWLISTED",
      "type": "ETH"
    }
  ]
}

Reactivate a platform account

patch

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.

Authorizations
Path parameters
idOrKeystringRequired

Account ID or Key of the account to reactivate

Responses
200
OK
application/json
400
Bad request
application/json
401
Unauthorized
application/json
403
Forbidden
application/json
404
Not found
application/json
500
Internal error
application/json
patch
PATCH /v0/platform/accounts/{idOrKey}/reactivate HTTP/1.1
Host: api.alluvial.finance
Authorization: Bearer JWT
Accept: */*
{
  "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,
      "status": "ALLOWLISTED",
      "type": "ETH"
    }
  ]
}

Get platform wallet

get

Get platform wallet

Authorizations
Path parameters
idOrAddressstringRequired

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

Responses
200
OK
application/json
400
Bad request
application/json
401
Unauthorized
application/json
403
Forbidden
application/json
404
Not found
application/json
500
Internal error
application/json
get
GET /v0/platform/wallets/{idOrAddress} HTTP/1.1
Host: api.alluvial.finance
Authorization: Bearer JWT
Accept: */*
{
  "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,
  "status": "ALLOWLISTED",
  "type": "ETH"
}

List platform wallets

get

List platform wallets

Authorizations
Query parameters
allowlistbooleanOptional

Enable to only return allowlisted wallets

on_platformbooleanOptional

Enable to only return wallets on_platform

offsetintegerOptional

Offset for pagination

limitintegerOptional

Limit for pagination

Responses
200
OK
application/json
400
Bad request
application/json
401
Unauthorized
application/json
403
Forbidden
application/json
500
Internal error
application/json
get
GET /v0/platform/wallets HTTP/1.1
Host: api.alluvial.finance
Authorization: Bearer JWT
Accept: */*
[
  {
    "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,
    "status": "ALLOWLISTED",
    "type": "ETH"
  }
]

List all the platform account wallets

get

List all wallets for a platform account

Authorizations
Path parameters
idOrKeystringRequired

Account ID or Key of the account

Query parameters
allowlistbooleanOptional

Enable to only return allowlisted wallets

on_platformbooleanOptional

Enable to only return wallets on_platform

offsetintegerOptional

Offset for pagination

limitintegerOptional

Limit for pagination

Responses
200
OK
application/json
400
Bad request
application/json
401
Unauthorized
application/json
403
Forbidden
application/json
500
Internal error
application/json
get
GET /v0/platform/accounts/{idOrKey}/wallets HTTP/1.1
Host: api.alluvial.finance
Authorization: Bearer JWT
Accept: */*
[
  {
    "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,
    "status": "ALLOWLISTED",
    "type": "ETH"
  }
]

Remove wallet on platform

patch

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

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
allowlistbooleanOptional

Enable to remove wallet from the allowlist

on_platformbooleanOptional

Enable to remove wallet on_platform

Responses
200
OK
application/json
400
Bad request
application/json
401
Unauthorized
application/json
403
Forbidden
application/json
404
Not found
application/json
500
Internal error
application/json
patch
PATCH /v0/platform/accounts/{idOrKey}/wallets/{idOrAddress}/remove HTTP/1.1
Host: api.alluvial.finance
Authorization: Bearer JWT
Accept: */*
{
  "account_id": "ac0d0cdf-92bc-4cbe-a180-a2efb2387d16",
  "address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
  "created_at": "2024-01-25T13:07:50.335845Z",
  "id": "dd8eefc8-0cc4-4a27-adc0-e1ebebed598d",
  "status": "REMOVED",
  "type": "ETH"
}

Pause wallet

patch

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.
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
allowlistbooleanOptional

Enable to pause wallet from the allowlist

on_platformbooleanOptional

Enable to pause wallet on_platform

Responses
200
OK
application/json
400
Bad request
application/json
401
Unauthorized
application/json
403
Forbidden
application/json
404
Not found
application/json
409
Conflict
application/json
500
Internal error
application/json
patch
PATCH /v0/platform/accounts/{idOrKey}/wallets/{idOrAddress}/pause HTTP/1.1
Host: api.alluvial.finance
Authorization: Bearer JWT
Accept: */*
{
  "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,
  "status": "PAUSED | ALLOWLISTED",
  "type": "ETH"
}

Reactivate wallet

patch

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.
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
allowlistbooleanOptional

Enable to reactivate wallet from the allowlist

on_platformbooleanOptional

Enable to reactivate wallet on_platform

Responses
200
OK
application/json
400
Bad request
application/json
401
Unauthorized
application/json
403
Forbidden
application/json
404
Not found
application/json
409
Conflict
application/json
500
Internal error
application/json
patch
PATCH /v0/platform/accounts/{idOrKey}/wallets/{idOrAddress}/reactivate HTTP/1.1
Host: api.alluvial.finance
Authorization: Bearer JWT
Accept: */*
{
  "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,
  "status": "PAUSED | ALLOWLISTED",
  "type": "ETH"
}
  • Platform
  • Platform Account Operations
  • POSTCreate a platform account
  • GETList platform accounts
  • GETGet platform account
  • PATCHRemove a platform account
  • PATCHPause a platform account
  • PATCHReactivate a platform account
  • Platform Wallet Operations
  • GETGet platform wallet
  • GETList platform wallets
  • Platform Account Wallet Operations
  • POSTAdd wallet on platform
  • GETList all the platform account wallets
  • PATCHRemove wallet on platform
  • PATCHPause wallet
  • PATCHReactivate wallet

Create a platform account

post

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.

Authorizations
Body
keystringOptional

Unique identifier of the account (supplied by the client)

Example: depositor_example
Responses
201
Account has been created
application/json
400
Bad request
application/json
401
Unauthorized
application/json
403
Forbidden
application/json
500
Internal error
application/json
post
POST /v0/platform/accounts HTTP/1.1
Host: api.alluvial.finance
Authorization: Bearer JWT
Content-Type: application/json
Accept: */*
Content-Length: 27

{
  "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"
}

Add wallet on platform

post

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.
Authorizations
Path parameters
idOrKeystringRequired

Account ID or Key of the account to add wallets to

Body
addressstringOptional

Wallet address in hexadecimal format with 0x prefix

Example: 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045
allowlistedbooleanOptional

Opt out of wallet being added to the OnPlatform list

Example: true
typestringOptional

The type of wallet - chain or protocol it exists on

Example: ETH
Responses
200
OK
application/json
400
Bad request
application/json
401
Unauthorized
application/json
403
Forbidden
application/json
500
Internal error
application/json
post
POST /v0/platform/accounts/{idOrKey}/wallets HTTP/1.1
Host: api.alluvial.finance
Authorization: Bearer JWT
Content-Type: application/json
Accept: */*
Content-Length: 88

{
  "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,
  "status": "ALLOWLISTED",
  "type": "ETH"
}