Authenticated Client - authenticated_client

Description:
Authenticated Client for the Switcheo decentralized exchange. This API extends the PublicClient by offering API endpoints that require signatures from the users private key. Deposit, Withdrawal, Trading, and Cancellations on the exchange are accessible through this class.
Usage:
from switcheo.authenticated_client import AuthenticatedClient
class switcheo.authenticated_client.AuthenticatedClient(blockchain='neo', contract_version='V3', api_url='https://test-api.switcheo.network/', api_version='/v2')[source]
cancel_order(order_id, private_key)[source]

This function is a wrapper function around the create and execute cancellation functions to help make this processes simpler for the end user by combining these requests in 1 step. Execution of this function is as follows:

cancel_order(order_id=order['id'], private_key=kp)
cancel_order(order_id=order['id'], private_key=eth_private_key)

The expected return result for this function is the same as the execute_cancellation function:

{
    'id': 'b8e617d5-f5ed-4600-b8f2-7d370d837750',
    'blockchain': 'neo',
    'contract_hash': 'a195c1549e7da61b8da315765a790ac7e7633b82',
    'address': 'fea2b883725ef2d194c9060f606cd0a0468a2c59',
    'side': 'buy',
    'offer_asset_id': 'c56f33fc6ecfcd0c225c4ab356fee59390af8560be0e930faebe74a6daff7c9b',
    'want_asset_id': 'ab38352559b8b203bde5fddfa0b07d8b2525e132',
    'offer_amount': '2000000',
    'want_amount': '10000000000',
    'transfer_amount': '0',
    'priority_gas_amount': '0',
    'use_native_token': True,
    'native_fee_transfer_amount': 0,
    'deposit_txn': None,
    'created_at': '2018-08-05T11:16:47.021Z',
    'status': 'processed',
    'fills': [],
    'makes': [
        {
            'id': '6b9f40de-f9bb-46b6-9434-d281f8c06b74',
            'offer_hash': '6830d82dbdda566ab32e9a8d9d9d94d3297f67c10374d69bb35d6c5a86bd3e92',
            'available_amount': '0',
            'offer_asset_id': 'c56f33fc6ecfcd0c225c4ab356fee59390af8560be0e930faebe74a6daff7c9b',
            'offer_amount': '2000000',
            'want_asset_id': 'ab38352559b8b203bde5fddfa0b07d8b2525e132',
            'want_amount': '10000000000',
            'filled_amount': '0.0',
            'txn': None,
            'cancel_txn': None,
            'price': '0.0002',
            'status': 'cancelling',
            'created_at': '2018-08-05T11:16:47.036Z',
            'transaction_hash': 'e5b08c4a55c7494f1ec7dd93ac2bb2b4e84e77dec9e00e91be1d520cb818c415',
            'trades': []
        }
    ]
}
Parameters:
  • order_id (str) – The order ID of the open transaction on the order book that you want to cancel.
  • private_key (KeyPair) – The KeyPair that will be used to sign the transaction sent to the blockchain.
Returns:

Dictionary of the transaction details and state after sending the signed transaction to the blockchain.

create_cancellation(order_id, private_key)[source]

Function to create a cancellation request for the order ID from the open orders on the order book. Execution of this function is as follows:

create_cancellation(order_id=order['id'], private_key=kp)

The expected return result for this function is as follows:

{
    'id': '6b9f40de-f9bb-46b6-9434-d281f8c06b74',
    'transaction': {
        'hash': '50d99ebd7e57dbdceb7edc2014da5f446c8f44cc0a0b6d9c762a29e8a74bb051',
        'sha256': '509edb9888fa675988fa71a27600b2655e63fe979424f13f5c958897b2e99ed8',
        'type': 209,
        'version': 1,
        'attributes': [
            {
                'usage': 32,
                'data': '592c8a46a0d06c600f06c994d1f25e7283b8a2fe'
            }
        ],
        'inputs': [
            {
                'prevHash': '9eaca1adcbbc0669a936576cb9ad03c11c99c356347aae3037ce1f0e4d330d85',
                'prevIndex': 0
            }, {
                'prevHash': 'c858e4d2af1e1525fa974fb2b1678caca1f81a5056513f922789594939ff713d',
                'prevIndex': 37
            }
        ],
        'outputs': [
            {
                'assetId': '602c79718b16e442de58778e148d0b1084e3b2dffd5de6b7b16cee7969282de7',
                'scriptHash': 'e707714512577b42f9a011f8b870625429f93573',
                'value': 1e-08
            }
        ],
        'scripts': [],
        'script': '....',
        'gas': 0
    },
    'script_params': {
        'scriptHash': 'a195c1549e7da61b8da315765a790ac7e7633b82',
        'operation': 'cancelOffer',
        'args': [
            '923ebd865a6c5db39bd67403c1677f29d3949d9d8d9a2eb36a56dabd2dd83068'
        ]
    }
}
Parameters:
  • order_id (str) – The order ID of the open transaction on the order book that you want to cancel.
  • private_key (KeyPair) – The KeyPair that will be used to sign the transaction sent to the blockchain.
Returns:

Dictionary that contains the cancellation request along with blockchain transaction information.

create_deposit(asset, amount, private_key)[source]

Function to create a deposit request by generating a transaction request from the Switcheo API. Execution of this function is as follows:

create_deposit(asset="SWTH", amount=1.1, private_key=KeyPair)
create_deposit(asset="ETH", amount=1.1, private_key=eth_private_key)

The expected return result for this function is as follows:

{
    'id': '768e2079-1504-4dad-b688-7e1e99ec0a24',
    'transaction': {
        'hash': '72b74c96b9174e9b9e1b216f7e8f21a6475e6541876a62614df7c1998c6e8376',
        'sha256': '2109cbb5eea67a06f5dd8663e10fcd1128e28df5721a25d993e05fe2097c34f3',
        'type': 209,
        'version': 1,
        'attributes': [
            {
                'usage': 32,
                'data': '592c8a46a0d06c600f06c994d1f25e7283b8a2fe'
            }
        ],
        'inputs': [
            {
                'prevHash': 'f09b3b697c580d1730cd360da5e1f0beeae00827eb2f0055cbc85a5a4dadd8ea',
                'prevIndex': 0
            }, {
                'prevHash': 'c858e4d2af1e1525fa974fb2b1678caca1f81a5056513f922789594939ff713d',
                'prevIndex': 31
            }
        ],
        'outputs': [
            {
                'assetId': '602c79718b16e442de58778e148d0b1084e3b2dffd5de6b7b16cee7969282de7',
                'scriptHash': 'e707714512577b42f9a011f8b870625429f93573',
                'value': 1e-08
            }
        ],
        'scripts': [],
        'script': '....',
        'gas': 0
    },
    'script_params': {
        'scriptHash': 'a195c1549e7da61b8da315765a790ac7e7633b82',
        'operation': 'deposit',
        'args': [
            '592c8a46a0d06c600f06c994d1f25e7283b8a2fe',
            '32e125258b7db0a0dffde5bd03b2b859253538ab',
            100000000
        ]
    }
}
Parameters:
  • asset (str) – Symbol or Script Hash of asset ID from the available products.
  • amount (float) – The amount of coins/tokens to be deposited.
  • private_key (KeyPair or str) – The Private Key (ETH) or KeyPair (NEO) for the wallet being used to sign deposit message.
Returns:

Dictionary response of signed deposit request that is ready to be executed on the specified blockchain.

create_order(pair, side, private_key, price=None, quantity=None, use_native_token=True, order_type='limit', otc_address=None, offer_amount=None, receiving_address=None, worst_acceptable_price=None)[source]

Function to create an order for the trade pair and details requested. Execution of this function is as follows:

create_order(pair="SWTH_NEO", side="buy", price=0.0002, quantity=100, private_key=kp,
             use_native_token=True, order_type="limit")

The expected return result for this function is as follows:

{
    'id': '4e6a59fd-d750-4332-aaf0-f2babfa8ad67',
    'blockchain': 'neo',
    'contract_hash': 'a195c1549e7da61b8da315765a790ac7e7633b82',
    'address': 'fea2b883725ef2d194c9060f606cd0a0468a2c59',
    'side': 'buy',
    'offer_asset_id': 'c56f33fc6ecfcd0c225c4ab356fee59390af8560be0e930faebe74a6daff7c9b',
    'want_asset_id': 'ab38352559b8b203bde5fddfa0b07d8b2525e132',
    'offer_amount': '2000000',
    'want_amount': '10000000000',
    'transfer_amount': '0',
    'priority_gas_amount': '0',
    'use_native_token': True,
    'native_fee_transfer_amount': 0,
    'deposit_txn': None,
    'created_at': '2018-08-05T10:38:37.714Z',
    'status': 'pending',
    'fills': [],
    'makes': [
        {
            'id': 'e30a7fdf-779c-4623-8f92-8a961450d843',
            'offer_hash': None,
            'available_amount': None,
            'offer_asset_id': 'c56f33fc6ecfcd0c225c4ab356fee59390af8560be0e930faebe74a6daff7c9b',
            'offer_amount': '2000000',
            'want_asset_id': 'ab38352559b8b203bde5fddfa0b07d8b2525e132',
            'want_amount': '10000000000',
            'filled_amount': None,
            'txn': {
                'offerHash': 'b45ddfb97ade5e0363d9e707dac9ad1c530448db263e86494225a0025006f968',
                'hash': '5c4cb1e73b9f2e608b6e768e0654649a4d15e08a7fe63fc536c454fa563a2f0f',
                'sha256': 'f0b70640627947584a2976edeb055a124ae85594db76453532b893c05618e6ca',
                'invoke': {
                    'scriptHash': 'a195c1549e7da61b8da315765a790ac7e7633b82',
                    'operation': 'makeOffer',
                    'args': [
                        '592c8a46a0d06c600f06c994d1f25e7283b8a2fe',
                        '9b7cffdaa674beae0f930ebe6085af9093e5fe56b34a5c220ccdcf6efc336fc5',
                        2000000,
                        '32e125258b7db0a0dffde5bd03b2b859253538ab',
                        10000000000,
                        '65333061376664662d373739632d343632332d386639322d386139363134353064383433'
                    ]
                },
                'type': 209,
                'version': 1,
                'attributes': [
                    {
                        'usage': 32,
                        'data': '592c8a46a0d06c600f06c994d1f25e7283b8a2fe'
                    }
                ],
                'inputs': [
                    {
                        'prevHash': '0fcfd792a9d20a7795255d1d3d3927f5968b9953e80d16ffd222656edf8fedbc',
                        'prevIndex': 0
                    }, {
                        'prevHash': 'c858e4d2af1e1525fa974fb2b1678caca1f81a5056513f922789594939ff713d',
                        'prevIndex': 35
                    }
                ],
                'outputs': [
                    {
                        'assetId': '602c79718b16e442de58778e148d0b1084e3b2dffd5de6b7b16cee7969282de7',
                        'scriptHash': 'e707714512577b42f9a011f8b870625429f93573',
                        'value': 1e-08
                    }
                ],
                'scripts': [],
                'script': '....',
                'gas': 0
            },
            'cancel_txn': None,
            'price': '0.0002',
            'status': 'pending',
            'created_at': '2018-08-05T10:38:37.731Z',
            'transaction_hash': '5c4cb1e73b9f2e608b6e768e0654649a4d15e08a7fe63fc536c454fa563a2f0f',
            'trades': []
        }
    ]
}
Parameters:
  • pair (str) – The trading pair this order is being submitted for.
  • side (str) – The side of the trade being submitted i.e. buy or sell
  • price (float) – The price target for this trade.
  • quantity (float) – The amount of the asset being exchanged in the trade.
  • private_key (KeyPair or str) – The Private Key (ETH) or KeyPair (NEO) for the wallet being used to sign deposit message.
  • use_native_token (bool) – Flag to indicate whether or not to pay fees with the Switcheo native token.
  • order_type (str) – The type of order being submitted, currently this can only be a limit order.
  • otc_address (str) – The address to trade with for Over the Counter exchanges.
Returns:

Dictionary of order details to specify which parts of the trade will be filled (taker) or open (maker)

Returns:

The amount of the asset that is offered in the swap trade.

Returns:

The address the tokens received in the swap are sent to.

Returns:

The lower or upper price limit for which the trade will be performed

create_withdrawal(asset, amount, private_key)[source]

Function to create a withdrawal request by generating a withdrawal ID request from the Switcheo API. Execution of this function is as follows:

create_withdrawal(asset="SWTH", amount=1.1, private_key=kp)

The expected return result for this function is as follows:

{
    'id': 'a5a4d396-fa9f-4191-bf50-39a3d06d5e0d'
}
Parameters:
  • asset (str) – Script Hash of asset ID from the available products.
  • amount (float) – The amount of coins/tokens to be withdrawn.
  • private_key (KeyPair or str) – The Private Key (ETH) or KeyPair (NEO) for the wallet being used to sign deposit message.
Returns:

Dictionary with the withdrawal ID generated by the Switcheo API.

deposit(asset, amount, private_key)[source]

This function is a wrapper function around the create and execute deposit functions to help make this processes simpler for the end user by combining these requests in 1 step. Execution of this function is as follows:

deposit(asset="SWTH", amount=1.1, private_key=KeyPair)
deposit(asset="SWTH", amount=1.1, private_key=eth_private_key)

The expected return result for this function is the same as the execute_deposit function:

{
    'result': 'ok'
}
Parameters:
  • asset (str) – Symbol or Script Hash of asset ID from the available products.
  • amount (float) – The amount of coins/tokens to be deposited.
  • private_key (KeyPair or str) – The Private Key (ETH) or KeyPair (NEO) for the wallet being used to sign deposit message.
Returns:

Dictionary with the result status of the deposit attempt.

execute_cancellation(cancellation_params, private_key)[source]

This function executes the order created before it and signs the transaction to be submitted to the blockchain. Execution of this function is as follows:

execute_cancellation(cancellation_params=create_cancellation, private_key=kp)

The expected return result for this function is as follows:

{
    'id': 'b8e617d5-f5ed-4600-b8f2-7d370d837750',
    'blockchain': 'neo',
    'contract_hash': 'a195c1549e7da61b8da315765a790ac7e7633b82',
    'address': 'fea2b883725ef2d194c9060f606cd0a0468a2c59',
    'side': 'buy',
    'offer_asset_id': 'c56f33fc6ecfcd0c225c4ab356fee59390af8560be0e930faebe74a6daff7c9b',
    'want_asset_id': 'ab38352559b8b203bde5fddfa0b07d8b2525e132',
    'offer_amount': '2000000',
    'want_amount': '10000000000',
    'transfer_amount': '0',
    'priority_gas_amount': '0',
    'use_native_token': True,
    'native_fee_transfer_amount': 0,
    'deposit_txn': None,
    'created_at': '2018-08-05T11:16:47.021Z',
    'status': 'processed',
    'fills': [],
    'makes': [
        {
            'id': '6b9f40de-f9bb-46b6-9434-d281f8c06b74',
            'offer_hash': '6830d82dbdda566ab32e9a8d9d9d94d3297f67c10374d69bb35d6c5a86bd3e92',
            'available_amount': '0',
            'offer_asset_id': 'c56f33fc6ecfcd0c225c4ab356fee59390af8560be0e930faebe74a6daff7c9b',
            'offer_amount': '2000000',
            'want_asset_id': 'ab38352559b8b203bde5fddfa0b07d8b2525e132',
            'want_amount': '10000000000',
            'filled_amount': '0.0',
            'txn': None,
            'cancel_txn': None,
            'price': '0.0002',
            'status': 'cancelling',
            'created_at': '2018-08-05T11:16:47.036Z',
            'transaction_hash': 'e5b08c4a55c7494f1ec7dd93ac2bb2b4e84e77dec9e00e91be1d520cb818c415',
            'trades': []
        }
    ]
}
Parameters:
  • cancellation_params (dict) – Parameters generated from the Switcheo API to cancel an order on the order book.
  • private_key (KeyPair) – The KeyPair that will be used to sign the transaction sent to the blockchain.
Returns:

Dictionary of the transaction details and state after sending the signed transaction to the blockchain.

execute_deposit(deposit_params, private_key)[source]

Function to execute the deposit request by signing the transaction generated by the create deposit function. Execution of this function is as follows:

execute_deposit(deposit_params=create_deposit, private_key=KeyPair)
execute_deposit(deposit_params=create_deposit, private_key=eth_private_key)

The expected return result for this function is as follows:

{
    'result': 'ok'
}
Parameters:
  • deposit_params (dict) – Parameters from the API to be signed and deposited to the Switcheo Smart Contract.
  • private_key (KeyPair or str) – The Private Key (ETH) or KeyPair (NEO) for the wallet being used to sign deposit message.
Returns:

Dictionary with the result status of the deposit attempt.

execute_order(order_params, private_key)[source]

This function executes the order created before it and signs the transaction to be submitted to the blockchain. Execution of this function is as follows:

execute_order(order_params=create_order, private_key=kp)

The expected return result for this function is the same as the execute_order function:

{
    'id': '4e6a59fd-d750-4332-aaf0-f2babfa8ad67',
    'blockchain': 'neo',
    'contract_hash': 'a195c1549e7da61b8da315765a790ac7e7633b82',
    'address': 'fea2b883725ef2d194c9060f606cd0a0468a2c59',
    'side': 'buy',
    'offer_asset_id': 'c56f33fc6ecfcd0c225c4ab356fee59390af8560be0e930faebe74a6daff7c9b',
    'want_asset_id': 'ab38352559b8b203bde5fddfa0b07d8b2525e132',
    'offer_amount': '2000000',
    'want_amount': '10000000000',
    'transfer_amount': '0',
    'priority_gas_amount': '0',
    'use_native_token': True,
    'native_fee_transfer_amount': 0,
    'deposit_txn': None,
    'created_at': '2018-08-05T10:38:37.714Z',
    'status': 'processed',
    'fills': [],
    'makes': [
        {
            'id': 'e30a7fdf-779c-4623-8f92-8a961450d843',
            'offer_hash': 'b45ddfb97ade5e0363d9e707dac9ad1c530448db263e86494225a0025006f968',
            'available_amount': '2000000',
            'offer_asset_id': 'c56f33fc6ecfcd0c225c4ab356fee59390af8560be0e930faebe74a6daff7c9b',
            'offer_amount': '2000000',
            'want_asset_id': 'ab38352559b8b203bde5fddfa0b07d8b2525e132',
            'want_amount': '10000000000',
            'filled_amount': '0.0',
            'txn': None,
            'cancel_txn': None,
            'price': '0.0002',
            'status': 'confirming',
            'created_at': '2018-08-05T10:38:37.731Z',
            'transaction_hash': '5c4cb1e73b9f2e608b6e768e0654649a4d15e08a7fe63fc536c454fa563a2f0f',
            'trades': []
        }
    ]
}
Parameters:
  • order_params (dict) – Dictionary generated from the create order function.
  • private_key (KeyPair or str) – The Private Key (ETH) or KeyPair (NEO) for the wallet being used to sign deposit message.
Returns:

Dictionary of the transaction on the order book.

execute_withdrawal(withdrawal_params, private_key)[source]

This function is to sign the message generated from the create withdrawal function and submit it to the blockchain for transfer from the smart contract to the owners address. Execution of this function is as follows:

execute_withdrawal(withdrawal_params=create_withdrawal, private_key=kp)

The expected return result for this function is as follows:

{
    'event_type': 'withdrawal',
    'amount': -100000,
    'asset_id': 'ab38352559b8b203bde5fddfa0b07d8b2525e132',
    'status': 'confirming',
    'id': '96e5f797-435b-40ab-9085-4e95c6749218',
    'blockchain': 'neo',
    'reason_code': 9,
    'address': 'fea2b883725ef2d194c9060f606cd0a0468a2c59',
    'transaction_hash': None,
    'created_at': '2018-08-05T10:03:58.885Z',
    'updated_at': '2018-08-05T10:03:59.828Z',
    'contract_hash': 'a195c1549e7da61b8da315765a790ac7e7633b82'
}
Parameters:
  • withdrawal_params (dict) – Dictionary from the create withdrawal function to sign and submit to the blockchain.
  • private_key (KeyPair or str) – The Private Key (ETH) or KeyPair (NEO) for the wallet being used to sign deposit message.
Returns:

Dictionary with the status of the withdrawal request and blockchain transaction details.

order(pair, side, private_key, price=None, quantity=None, use_native_token=True, order_type='limit', offer_amount=None, receiving_address=None, worst_acceptable_price=None)[source]

This function is a wrapper function around the create and execute order functions to help make this processes simpler for the end user by combining these requests in 1 step. Trading can take place on normal (spot) markets and atomic swap markets. The required arguments differ between those cases. Execution of this function for spot- and swap-markets respectively is as follows:

order(pair="SWTH_NEO", side="buy",
      price=0.0002, quantity=100, 
      private_key=kp, use_native_token=True, order_type="limit")

order(pair="SWTH_ETH", side="buy",
      offer_amount=0.1, receiving_address=fea2b883725ef2d194c9060f606cd0a0468a2c59, 
      private_key=kp, use_native_token=True, order_type="limit")

The expected return result for this function is the same as the execute_order function:

{
    'id': '4e6a59fd-d750-4332-aaf0-f2babfa8ad67',
    'blockchain': 'neo',
    'contract_hash': 'a195c1549e7da61b8da315765a790ac7e7633b82',
    'address': 'fea2b883725ef2d194c9060f606cd0a0468a2c59',
    'side': 'buy',
    'offer_asset_id': 'c56f33fc6ecfcd0c225c4ab356fee59390af8560be0e930faebe74a6daff7c9b',
    'want_asset_id': 'ab38352559b8b203bde5fddfa0b07d8b2525e132',
    'offer_amount': '2000000',
    'want_amount': '10000000000',
    'transfer_amount': '0',
    'priority_gas_amount': '0',
    'use_native_token': True,
    'native_fee_transfer_amount': 0,
    'deposit_txn': None,
    'created_at': '2018-08-05T10:38:37.714Z',
    'status': 'processed',
    'fills': [],
    'makes': [
        {
            'id': 'e30a7fdf-779c-4623-8f92-8a961450d843',
            'offer_hash': 'b45ddfb97ade5e0363d9e707dac9ad1c530448db263e86494225a0025006f968',
            'available_amount': '2000000',
            'offer_asset_id': 'c56f33fc6ecfcd0c225c4ab356fee59390af8560be0e930faebe74a6daff7c9b',
            'offer_amount': '2000000',
            'want_asset_id': 'ab38352559b8b203bde5fddfa0b07d8b2525e132',
            'want_amount': '10000000000',
            'filled_amount': '0.0',
            'txn': None,
            'cancel_txn': None,
            'price': '0.0002',
            'status': 'confirming',
            'created_at': '2018-08-05T10:38:37.731Z',
            'transaction_hash': '5c4cb1e73b9f2e608b6e768e0654649a4d15e08a7fe63fc536c454fa563a2f0f',
            'trades': []
        }
    ]
}
Parameters:
  • pair (str) – The trading pair this order is being submitted for.
  • side (str) – The side of the trade being submitted i.e. buy or sell
  • price (float) – The price target for this trade.
  • quantity (float) – The amount of the asset being exchanged in the trade.
  • private_key (KeyPair or str) – The Private Key (ETH) or KeyPair (NEO) for the wallet being used to sign deposit message.
  • use_native_token (bool) – Flag to indicate whether or not to pay fees with the Switcheo native token.
  • order_type (str) – The type of order being submitted, currently this can only be a limit order.
Returns:

Dictionary of the transaction on the order book.

Returns:

The amount of the asset that is offered in the swap trade.

Returns:

The address the tokens received in the swap are sent to.

Returns:

The lower or upper price limit for which the trade will be performed

withdrawal(asset, amount, private_key)[source]

This function is a wrapper function around the create and execute withdrawal functions to help make this processes simpler for the end user by combining these requests in 1 step. Execution of this function is as follows:

withdrawal(asset="SWTH", amount=1.1, private_key=kp))

The expected return result for this function is the same as the execute_withdrawal function:

{
    'event_type': 'withdrawal',
    'amount': -100000,
    'asset_id': 'ab38352559b8b203bde5fddfa0b07d8b2525e132',
    'status': 'confirming',
    'id': '96e5f797-435b-40ab-9085-4e95c6749218',
    'blockchain': 'neo',
    'reason_code': 9,
    'address': 'fea2b883725ef2d194c9060f606cd0a0468a2c59',
    'transaction_hash': None,
    'created_at': '2018-08-05T10:03:58.885Z',
    'updated_at': '2018-08-05T10:03:59.828Z',
    'contract_hash': 'a195c1549e7da61b8da315765a790ac7e7633b82'
}
Parameters:
  • asset (str) – Script Hash of asset ID from the available products.
  • amount (float) – The amount of coins/tokens to be withdrawn.
  • private_key (KeyPair or str) – The Private Key (ETH) or KeyPair (NEO) for the wallet being used to sign deposit message.
Returns:

Dictionary with the status of the withdrawal request and blockchain details.