{"openapi":"3.1.0","info":{"title":"SDA API","version":"0.0.1","description":"Functionality for interacting with Rhino SDA service"},"paths":{"/deposit-addresses":{"post":{"tags":["depositAddresses"],"operationId":"depositAddresses.createDepositAddress","parameters":[],"security":[{"bearer":[]},{"legacyApiKey":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DepositAddress"}}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"$ref":"#/components/schemas/InvalidJwt"}]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Unauthorized"}}}},"403":{"description":"ExtensionNotEnabled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExtensionNotEnabled"}}}},"422":{"description":"DepositAddressChainsNotSupported","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/DepositAddressChainsNotSupported"},{"$ref":"#/components/schemas/DepositAddressInvalidDestinationAddress"},{"$ref":"#/components/schemas/DepositAddressMultipleChainTypesNotAllowed"},{"$ref":"#/components/schemas/DepositAddressNoBridgableTokens"},{"$ref":"#/components/schemas/DepositAddressTokenOutNotSupported"},{"$ref":"#/components/schemas/DepositAddressInvalidPostBridgeData"},{"$ref":"#/components/schemas/DepositAddressInvalidRefundAddress"},{"$ref":"#/components/schemas/InvalidRequest"}]}}}},"429":{"description":"DepositAddressRateLimitExceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DepositAddressRateLimitExceeded"}}}},"503":{"description":"EndpointDisabledError","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EndpointDisabledError"}}}}},"description":"This endpoint allows you to generate a new smart deposit address for a given set of chains and set the swapping and/or bridging activity that should be done for any funds sent to it.","summary":"Generate a new smart deposit address","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDepositAddressPayload"}}},"required":true}}},"/deposit-addresses/{depositAddress}/{depositChain}/activate":{"patch":{"tags":["depositAddresses"],"operationId":"depositAddresses.reactivateDepositAddress","parameters":[{"name":"depositAddress","in":"path","schema":{"anyOf":[{"$ref":"#/components/schemas/EthAddressSchema"},{"$ref":"#/components/schemas/TronAddressBasic"},{"$ref":"#/components/schemas/SolanaAddress"},{"$ref":"#/components/schemas/StellarMuxedAddress"},{"$ref":"#/components/schemas/BitcoinAddressSchema"}],"description":"The Rhino.fi Smart Deposit Address that the deposit has been sent to, e.g. \"0x123...ABC\"."},"required":true,"description":"The Rhino.fi Smart Deposit Address that the deposit has been sent to, e.g. \"0x123...ABC\"."},{"name":"depositChain","in":"path","schema":{"type":"string","description":"The blockchain where the deposit was sent to, e.g. \"ETHEREUM\"."},"required":true,"description":"The blockchain where the deposit was sent to, e.g. \"ETHEREUM\"."}],"security":[{"bearer":[]},{"legacyApiKey":[]}],"responses":{"200":{"description":"a boolean","content":{"application/json":{"schema":{"type":"boolean"}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"$ref":"#/components/schemas/InvalidJwt"}]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Unauthorized"}}}},"422":{"description":"DepositAddressAlreadyActive","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/DepositAddressAlreadyActive"},{"$ref":"#/components/schemas/DepositAddressNotFound"}]}}}},"503":{"description":"EndpointDisabledError","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EndpointDisabledError"}}}}},"description":"Reactivates a deposit address that is inactive.","summary":"Reactivate deposit address","deprecated":true}},"/deposit-addresses/{depositAddress}":{"patch":{"tags":["depositAddresses"],"operationId":"depositAddresses.updateDepositAddresses","parameters":[{"name":"depositAddress","in":"path","schema":{"anyOf":[{"$ref":"#/components/schemas/EthAddressSchema"},{"$ref":"#/components/schemas/TronAddressBasic"},{"$ref":"#/components/schemas/SolanaAddress"},{"$ref":"#/components/schemas/StellarMuxedAddress"},{"$ref":"#/components/schemas/BitcoinAddressSchema"}],"description":"The Rhino.fi Smart Deposit Address to update, e.g. \"0x123...ABC\"."},"required":true,"description":"The Rhino.fi Smart Deposit Address to update, e.g. \"0x123...ABC\"."}],"security":[{"bearer":[]},{"legacyApiKey":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","required":["depositChain","depositAddress","destinationChain","isActive","isPaused"],"properties":{"depositChain":{"type":"string","description":"The blockchain that the Smart Deposit Address is on and that deposits should be sent to, e.g. \"ETHEREUM\".","title":"nonEmptyString","minLength":1},"depositAddress":{"type":"string","description":"The Rhino.fi Smart Deposit Address that the deposit has been sent to.","title":"nonEmptyString","minLength":1},"destinationChain":{"type":"string","description":"The blockchain that the received tokens will be bridged to.","title":"nonEmptyString","minLength":1},"destinationAddress":{"type":"string","description":"The blockchain address that the received tokens will be bridged / bridged and swapped to.","title":"nonEmptyString","minLength":1},"addressNote":{"type":"string","description":"A note or label for the deposit address as a reference.","title":"maxLength(80)","maxLength":80},"isActive":{"type":"boolean","description":"Whether the Smart Deposit Address is being actively monitored for incoming deposits of supportedTokens (true), in which case it will take the necessary bridge / bridge and swap actions, or is not currently being monitored or actioned by Rhino.fi (false). All Smart Deposit Addresses are set to isActive = true when generated and will be monitored and actioned for 10 years, however Smart Deposit Addresses can be disabled via request."},"isPaused":{"type":"boolean","description":"Whether this deposit address is currently paused. Paused addresses reject incoming deposits until they are unpaused."},"postBridgeData":{"anyOf":[{"$ref":"#/components/schemas/ExtendedPostBridgeData"},{"$ref":"#/components/schemas/StarkwareBtcfiCampaignPostBridgeData"},{"$ref":"#/components/schemas/WirexWrapPostBridgeData"},{"$ref":"#/components/schemas/WirexWrapSandboxPostBridgeData"},{"$ref":"#/components/schemas/StarkwareBtcfiCampaignV2PostBridgeData"},{"$ref":"#/components/schemas/AaveV3SupplyPostBridgeData"},{"$ref":"#/components/schemas/RocketFoundationDepositPostBridgeData"},{"$ref":"#/components/schemas/MapleDepositPostBridgeData"},{"$ref":"#/components/schemas/EtherfiDepositPostBridgeData"}],"description":"Custom Routing Rules as configured by Rhino.fi for specific clients, e.g. to move funds after the initial bridge into a yield bearing vault. To understand more about how Routing Rules can help automate onchain actions and ensure that your funds land in an active state, please contact your Rhino.fi Customer Success Manager or speak to a member of the Rhino.fi sales team."},"tokenOut":{"type":"string","description":"The token that will be received on the destinationChain."},"refundAddress":{"type":"string","description":"The address that any funds would be returned to in the case that a transaction to this Smart Deposit Address is unsuccessful.","title":"nonEmptyString","minLength":1},"bridgeIfNotSwappable":{"type":"boolean","description":"If true, deposited tokens that cannot be swapped to the tokenOut will be bridged instead of causing a failed transaction. If false, any deposited tokens that cannot be swapped to the tokenOut will cause the transaction to fail. Must be used in conjunction with the tokenOut parameter."},"chainMetadata":{"$ref":"#/components/schemas/ChainMetadata"}},"additionalProperties":false}}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"$ref":"#/components/schemas/InvalidJwt"}]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Unauthorized"}}}},"403":{"description":"ProjectNotAllowlistedForSdaDestinationUpdate","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectNotAllowlistedForSdaDestinationUpdate"}}}},"422":{"description":"DepositAddressNotFound","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/DepositAddressNotFound"},{"$ref":"#/components/schemas/SdaDestinationAddressMismatch"},{"$ref":"#/components/schemas/InvalidSdaDestinationSignature"},{"$ref":"#/components/schemas/UnsupportedSdaVariantForDestinationUpdate"}]}}}},"429":{"description":"DepositAddressRateLimitExceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DepositAddressRateLimitExceeded"}}}},"503":{"description":"EndpointDisabledError","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/EndpointDisabledError"},{"$ref":"#/components/schemas/SdaSignatureVerificationUnavailable"}]}}}}},"description":"Pauses or unpauses deposit address(es) matching the given address, or updates the destination address using signature authorization. For Pause and Unpause, depositChain limits the action to one chain when provided; otherwise all matching deposit addresses are affected. Signature-authorized destination updates require custom per-project setup and are not generally available.","summary":"Pause, unpause, or update deposit addresses","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDepositAddressesPayload"}}},"required":true}}},"/deposit-addresses/{depositAddress}/{depositChain}":{"get":{"tags":["depositAddresses"],"operationId":"depositAddresses.statusDepositAddress","parameters":[{"name":"depositAddress","in":"path","schema":{"anyOf":[{"$ref":"#/components/schemas/EthAddressSchema"},{"$ref":"#/components/schemas/TronAddressBasic"},{"$ref":"#/components/schemas/SolanaAddress"},{"$ref":"#/components/schemas/StellarMuxedAddress"},{"$ref":"#/components/schemas/BitcoinAddressSchema"}],"description":"The Rhino.fi Smart Deposit Address that the deposit has been sent to, e.g. \"0x123...ABC\"."},"required":true,"description":"The Rhino.fi Smart Deposit Address that the deposit has been sent to, e.g. \"0x123...ABC\"."},{"name":"depositChain","in":"path","schema":{"type":"string","description":"The blockchain where the deposit was sent to, e.g. \"ETHEREUM\"."},"required":true,"description":"The blockchain where the deposit was sent to, e.g. \"ETHEREUM\"."}],"security":[{"bearer":[]},{"legacyApiKey":[]}],"responses":{"200":{"description":"DepositAddressStatusResponse","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DepositAddressStatusResponse"}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"$ref":"#/components/schemas/InvalidJwt"}]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Unauthorized"}}}},"422":{"description":"DepositAddressNotFound","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/DepositAddressNotFound"},{"$ref":"#/components/schemas/DepositAddressChainsNotSupported"},{"$ref":"#/components/schemas/DepositAddressInvalidDestinationAddress"},{"$ref":"#/components/schemas/DepositAddressMultipleChainTypesNotAllowed"},{"$ref":"#/components/schemas/DepositAddressNoBridgableTokens"},{"$ref":"#/components/schemas/DepositAddressTokenOutNotSupported"},{"$ref":"#/components/schemas/InvalidRequest"}]}}}},"503":{"description":"EndpointDisabledError","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EndpointDisabledError"}}}}},"description":"Returns the status of a deposit address on a given chain","summary":"Get deposit address status"}},"/deposit-addresses/{depositAddress}/{depositChain}/history":{"get":{"tags":["depositAddresses"],"operationId":"depositAddresses.historyDepositAddress","parameters":[{"name":"depositAddress","in":"path","schema":{"anyOf":[{"$ref":"#/components/schemas/EthAddressSchema"},{"$ref":"#/components/schemas/TronAddressBasic"},{"$ref":"#/components/schemas/SolanaAddress"},{"$ref":"#/components/schemas/StellarMuxedAddress"},{"$ref":"#/components/schemas/BitcoinAddressSchema"}],"description":"The Rhino.fi Smart Deposit Address that the deposit has been sent to, e.g. \"0x123...ABC\"."},"required":true,"description":"The Rhino.fi Smart Deposit Address that the deposit has been sent to, e.g. \"0x123...ABC\"."},{"name":"depositChain","in":"path","schema":{"type":"string","description":"The blockchain where the deposit was sent to, e.g. \"ETHEREUM\"."},"required":true,"description":"The blockchain where the deposit was sent to, e.g. \"ETHEREUM\"."},{"name":"from","in":"query","schema":{"$ref":"#/components/schemas/from"},"required":false},{"name":"to","in":"query","schema":{"$ref":"#/components/schemas/to"},"required":false}],"security":[{"bearer":[]},{"legacyApiKey":[]}],"responses":{"200":{"description":"DepositAddressHistoryResponse","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DepositAddressHistoryResponse"}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"$ref":"#/components/schemas/InvalidJwt"}]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Unauthorized"}}}},"422":{"description":"DepositAddressNotFound","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/DepositAddressNotFound"},{"$ref":"#/components/schemas/DepositAddressChainsNotSupported"},{"$ref":"#/components/schemas/InvalidDateRange"}]}}}},"503":{"description":"EndpointDisabledError","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EndpointDisabledError"}}}}},"description":"This endpoint provides the history of activity (both successful and unsuccessful) for a given Smart Deposit Address within a given time window. By default the previous 7 days of activity are returned, with a maximum window of 31 days (configurable via the `from` and `to` query params).","summary":"Obtain a list of previous activity for a Smart Deposit Address"}},"/deposit-addresses/{depositAddress}/{depositChain}/public-status":{"get":{"tags":["depositAddresses"],"operationId":"depositAddresses.publicDepositAddressStatus","parameters":[{"name":"depositAddress","in":"path","schema":{"anyOf":[{"$ref":"#/components/schemas/EthAddressSchema"},{"$ref":"#/components/schemas/TronAddressBasic"},{"$ref":"#/components/schemas/SolanaAddress"},{"$ref":"#/components/schemas/StellarMuxedAddress"},{"$ref":"#/components/schemas/BitcoinAddressSchema"}],"description":"The Rhino.fi Smart Deposit Address that the deposit has been sent to, e.g. \"0x123...ABC\"."},"required":true,"description":"The Rhino.fi Smart Deposit Address that the deposit has been sent to, e.g. \"0x123...ABC\"."},{"name":"depositChain","in":"path","schema":{"type":"string","description":"The blockchain where the deposit was sent to, e.g. \"ETHEREUM\"."},"required":true,"description":"The blockchain where the deposit was sent to, e.g. \"ETHEREUM\"."},{"name":"destinationAddress","in":"query","schema":{"type":"string","description":"The address where tokenOut will be bridged to, e.g. \"0x123...ABC\"."},"required":true,"description":"The address where tokenOut will be bridged to, e.g. \"0x123...ABC\"."}],"security":[{"bearer":[]},{"legacyApiKey":[]}],"responses":{"200":{"description":"PublicDepositAddressStatusResponse","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicDepositAddressStatusResponse"}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"$ref":"#/components/schemas/InvalidJwt"}]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Unauthorized"}}}},"422":{"description":"DepositAddressNotFound","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/DepositAddressNotFound"},{"$ref":"#/components/schemas/InvalidRequest"}]}}}}},"description":"Returns the status of a deposit address on a given chain","summary":"Get public deposit address status"}},"/deposit-addresses/{depositAddress}/{depositChain}/completed-refunds":{"get":{"tags":["depositAddresses"],"operationId":"depositAddresses.completedRefundsDepositAddress","parameters":[{"name":"depositAddress","in":"path","schema":{"anyOf":[{"$ref":"#/components/schemas/EthAddressSchema"},{"$ref":"#/components/schemas/TronAddressBasic"},{"$ref":"#/components/schemas/SolanaAddress"},{"$ref":"#/components/schemas/StellarMuxedAddress"},{"$ref":"#/components/schemas/BitcoinAddressSchema"}],"description":"The Rhino.fi Smart Deposit Address that the deposit has been sent to, e.g. \"0x123...ABC\"."},"required":true,"description":"The Rhino.fi Smart Deposit Address that the deposit has been sent to, e.g. \"0x123...ABC\"."},{"name":"depositChain","in":"path","schema":{"type":"string","description":"The blockchain where the deposit was sent to, e.g. \"ETHEREUM\"."},"required":true,"description":"The blockchain where the deposit was sent to, e.g. \"ETHEREUM\"."}],"security":[{"bearer":[]},{"legacyApiKey":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["items"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/CompletedSdaRefundApi"},"description":"The completed refunds for this Smart Deposit Address on the given chain."}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"$ref":"#/components/schemas/InvalidJwt"}]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Unauthorized"}}}},"422":{"description":"DepositAddressNotFound","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DepositAddressNotFound"}}}},"503":{"description":"EndpointDisabledError","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EndpointDisabledError"}}}}},"description":"Returns the list of completed refunds for the given deposit address on a given chain.","summary":"Get completed SDA refunds"}},"/deposit-addresses/{depositChain}/{destinationChain}/supported-tokens":{"get":{"tags":["depositAddresses"],"operationId":"depositAddresses.supportedTokens","parameters":[{"name":"depositChain","in":"path","schema":{"type":"string","description":"The blockchain where the deposit was sent to, e.g. \"ETHEREUM\".","title":"nonEmptyString","minLength":1},"required":true,"description":"The blockchain where the deposit was sent to, e.g. \"ETHEREUM\"."},{"name":"destinationChain","in":"path","schema":{"type":"string","description":"The blockchain where the tokenOut will be bridged to.","title":"nonEmptyString","minLength":1},"required":true,"description":"The blockchain where the tokenOut will be bridged to."},{"name":"tokenOut","in":"query","schema":{"type":"string","description":"The token that will be received on the destinationChain, e.g. \"USDT\"."},"required":false,"description":"The token that will be received on the destinationChain, e.g. \"USDT\"."}],"security":[],"responses":{"200":{"description":"SupportedTokensResponse","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SupportedTokensResponse"}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpApiDecodeError"}}}},"422":{"description":"DepositAddressChainsNotSupported","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/DepositAddressChainsNotSupported"},{"$ref":"#/components/schemas/DepositAddressNoBridgableTokens"},{"$ref":"#/components/schemas/DepositAddressTokenOutNotSupported"}]}}}}},"description":"This endpoint provides key information about the chains and tokens that Rhino.fi supports swapping and/or bridging on for Smart Deposit Addresses.","summary":"Obtain the supported tokens for a Smart Deposit Address"}},"/deposit-addresses/search":{"get":{"tags":["depositAddresses"],"operationId":"depositAddresses.searchDepositAddress","parameters":[{"name":"addressNote","in":"query","schema":{"type":"string","description":"A note or label for the deposit address as a reference, e.g. \"ClientID123456\" (max 80 characters).","title":"maxLength(80)","maxLength":80},"required":false,"description":"A note or label for the deposit address as a reference, e.g. \"ClientID123456\" (max 80 characters)."},{"name":"depositChain","in":"query","schema":{"type":"string","description":"The blockchain where the deposit was sent to, e.g. \"ETHEREUM\".","title":"nonEmptyString","minLength":1},"required":false,"description":"The blockchain where the deposit was sent to, e.g. \"ETHEREUM\"."},{"name":"destinationChain","in":"query","schema":{"type":"string","description":"The blockchain that the tokenOut will be bridged to, e.g. \"AVALANCHE\".","title":"nonEmptyString","minLength":1},"required":false,"description":"The blockchain that the tokenOut will be bridged to, e.g. \"AVALANCHE\"."},{"name":"destinationAddress","in":"query","schema":{"type":"string","description":"The address where tokenOut will be bridged to, e.g. \"0x123...ABC\".","title":"nonEmptyString","minLength":1},"required":false,"description":"The address where tokenOut will be bridged to, e.g. \"0x123...ABC\"."},{"name":"pageToken","in":"query","schema":{"type":"string","description":"An opaque token identifying the page of results to return, as provided by the `nextPageToken` field of a previous response. Should be used in conjunction with pageSize.","title":"nonEmptyString","minLength":1},"required":false,"description":"An opaque token identifying the page of results to return, as provided by the `nextPageToken` field of a previous response. Should be used in conjunction with pageSize."},{"name":"pageSize","in":"query","schema":{"type":"string","description":"The number of results to display per pageToken, e.g. \"25\". This helps filter long responses and should be used in conjunction with pageToken."},"required":false,"description":"The number of results to display per pageToken, e.g. \"25\". This helps filter long responses and should be used in conjunction with pageToken."}],"security":[{"bearer":[]},{"legacyApiKey":[]}],"responses":{"200":{"description":"SearchDepositAddressResponse","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchDepositAddressResponse"}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"$ref":"#/components/schemas/InvalidJwt"}]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Unauthorized"}}}},"422":{"description":"InvalidRequest","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRequest"}}}}},"description":"This endpoint allows you to find a specific Smart Deposit Address or Addresses based on provided criteria.","summary":"Obtain a specific Smart Deposit Address/es based on various criteria"}},"/deposit-addresses/rate-limit-status":{"get":{"tags":["depositAddresses"],"operationId":"depositAddresses.rateLimitStatus","parameters":[],"security":[{"bearer":[]},{"legacyApiKey":[]}],"responses":{"200":{"description":"SdaRateLimitStatusResponse","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SdaRateLimitStatusResponse"}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"$ref":"#/components/schemas/InvalidJwt"}]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Unauthorized"}}}}},"description":"This endpoint allows you to see what your total number of generated Smart Deposit Addresses is, as well as what any limits across any frequencies are.","summary":"Obtain the current rate limit usage for Smart Deposit Address creation"}}},"components":{"schemas":{"CreateDepositAddressPayload":{"type":"object","required":["depositChains","destinationChain","destinationAddress"],"properties":{"depositChains":{"type":"array","minItems":1,"items":{"$ref":"#/components/schemas/NonEmptyString"},"description":"An array of blockchain names where deposit addresses should be created, e.g. [\"ETHEREUM\", \"AVALANCHE\"]."},"addressNote":{"type":"string","description":"The ability to add a note or label for the deposit address as a reference, e.g. \"clientID12345678\".","title":"maxLength(80)","maxLength":80},"reusePolicy":{"type":"string","enum":["create-new","reuse-existing"],"description":"Whether the Smart Deposit Address generated should be a re-use of an existing one which matches the given parameters or a new Smart Deposit Address. \"create-new\" will generate a new Smart Deposit Address and \"reuse-existing\" will provide an already generated Smart Deposit Address. If omitted, an existing matching Smart Deposit Address is reused where one is available, otherwise a new one is created."},"webhookUrl":{"type":"string","description":"A URL that success or failure events related to this bridging transaction should be sent to, e.g. \"https://client.com/rhino-webhook\". If a webhook address has been set via the Rhino.fi Console then an entry here will override that.","title":"nonEmptyString","minLength":1},"refundAddress":{"type":"string","description":"An address that funds should be returned to in the event that the transaction is unsuccessfully executed. However we recommend that this is not set and is managed on a case by case basis with your Rhino.fi Account Manager, to avoid situations whereby funds are returned to pooled addresses on an exchange or into an address that the user no longer has control over.","title":"nonEmptyString","minLength":1},"destinationChain":{"type":"string","description":"The blockchain that the tokenOut will be bridged to, e.g. \"AVALANCHE\".","title":"nonEmptyString","minLength":1},"destinationAddress":{"type":"string","description":"The address where tokenOut will be bridged to, e.g. \"0x123...ABC\".","title":"nonEmptyString","minLength":1},"postBridgeData":{"anyOf":[{"$ref":"#/components/schemas/ExtendedPostBridgeData"},{"$ref":"#/components/schemas/StarkwareBtcfiCampaignPostBridgeData"},{"$ref":"#/components/schemas/WirexWrapPostBridgeData"},{"$ref":"#/components/schemas/WirexWrapSandboxPostBridgeData"},{"$ref":"#/components/schemas/StarkwareBtcfiCampaignV2PostBridgeData"},{"$ref":"#/components/schemas/AaveV3SupplyPostBridgeData"},{"$ref":"#/components/schemas/RocketFoundationDepositPostBridgeData"},{"$ref":"#/components/schemas/MapleDepositPostBridgeData"},{"$ref":"#/components/schemas/EtherfiDepositPostBridgeData"}],"description":"Custom Routing Rules as configured by Rhino.fi for specific clients, e.g. to move funds after the initial bridge into a yield bearing vault. To understand more about how Routing Rules can help automate onchain actions and ensure that your funds land in an active state, please contact your Rhino.fi Customer Success Manager or speak to a member of the Rhino.fi sales team."},"tokenOut":{"type":"string","description":"The token that is to be received on the destinationChain, e.g. \"USDT\".","title":"nonEmptyString","minLength":1},"bridgeIfNotSwappable":{"type":"boolean","description":"If true, deposited tokens that cannot be swapped to the tokenOut will be bridged instead of causing a failed transaction. If false, any deposited tokens that cannot be swapped to the tokenOut will cause the transaction to fail. Must be used in conjunction with the tokenOut parameter, e.g. \"true\"."}},"additionalProperties":false},"NonEmptyString":{"type":"string","description":"a non empty string","title":"nonEmptyString","minLength":1},"ExtendedPostBridgeData":{"type":"object","required":["_tag","vaultId"],"properties":{"_tag":{"type":"string","enum":["extended"]},"vaultId":{"$ref":"#/components/schemas/NonNegative","description":"A variable relating to the specific post bridge action.","title":"int","type":"integer"}},"additionalProperties":false},"NonNegative":{"type":"number","description":"a non-negative number","title":"nonNegative","minimum":0},"StarkwareBtcfiCampaignPostBridgeData":{"type":"object","required":["_tag"],"properties":{"_tag":{"type":"string","enum":["starkwarebtcfi"]}},"additionalProperties":false},"WirexWrapPostBridgeData":{"type":"object","required":["_tag"],"properties":{"_tag":{"type":"string","enum":["wirexwrap"]}},"additionalProperties":false},"WirexWrapSandboxPostBridgeData":{"type":"object","required":["_tag"],"properties":{"_tag":{"type":"string","enum":["wirexwrapsandbox"]}},"additionalProperties":false},"StarkwareBtcfiCampaignV2PostBridgeData":{"type":"object","required":["_tag","spans"],"properties":{"_tag":{"type":"string","enum":["starkwarebtcfiv2"]},"spans":{"type":"array","items":{"$ref":"#/components/schemas/StarknetFelt"},"description":"A variable relating to the specific post bridge action.","title":"maxItems(70)","maxItems":70}},"additionalProperties":false},"StarknetFelt":{"type":"string","description":"a string that will be trimmed"},"AaveV3SupplyPostBridgeData":{"type":"object","required":["_tag"],"properties":{"_tag":{"type":"string","enum":["aavev3supply"]}},"additionalProperties":false},"RocketFoundationDepositPostBridgeData":{"type":"object","required":["_tag"],"properties":{"_tag":{"type":"string","enum":["rocketfoundationdeposit"]}},"additionalProperties":false},"MapleDepositPostBridgeData":{"type":"object","required":["_tag"],"properties":{"_tag":{"type":"string","enum":["mapledeposit"]}},"additionalProperties":false},"EtherfiDepositPostBridgeData":{"type":"object","required":["_tag"],"properties":{"_tag":{"type":"string","enum":["etherfideposit"]}},"additionalProperties":false},"DepositAddress":{"type":"object","required":["depositChain","depositAddress","destinationChain","supportedTokens","isActive","isPaused"],"properties":{"depositChain":{"type":"string","description":"The blockchain that the Smart Deposit Address is on and that deposits should be sent to, e.g. \"ETHEREUM\".","title":"nonEmptyString","minLength":1},"depositAddress":{"type":"string","description":"The Rhino.fi Smart Deposit Address that the deposit has been sent to.","title":"nonEmptyString","minLength":1},"destinationChain":{"type":"string","description":"The blockchain that the received tokens will be bridged to.","title":"nonEmptyString","minLength":1},"destinationAddress":{"type":"string","description":"The blockchain address that the received tokens will be bridged / bridged and swapped to.","title":"nonEmptyString","minLength":1},"addressNote":{"type":"string","description":"A note or label for the deposit address as a reference.","title":"maxLength(80)","maxLength":80},"supportedTokens":{"type":"array","items":{"type":"object","required":["symbol","address","maxDepositLimitUsd","minDepositLimitUsd"],"properties":{"symbol":{"type":"string","description":"The ticker of the asset, e.g. \"ETH\", \"USDC\".","title":"nonEmptyString","minLength":1},"address":{"type":"string","description":"The token contract address on the depositChain.","title":"nonEmptyString","minLength":1},"maxDepositLimitUsd":{"type":"number","description":"The maximum deposit amount in USD for this token.","title":"nonNegative","minimum":0},"minDepositLimitUsd":{"type":"number","description":"The minimum deposit amount in USD for this token.","title":"nonNegative","minimum":0}},"additionalProperties":false},"description":"The assets that can be deposited to the depositAddress for this depositChain."},"isActive":{"type":"boolean","description":"Whether the Smart Deposit Address is being actively monitored for incoming deposits of supportedTokens (true), in which case it will take the necessary bridge / bridge and swap actions, or is not currently being monitored or actioned by Rhino.fi (false). All Smart Deposit Addresses are set to isActive = true when generated and will be monitored and actioned for 10 years, however Smart Deposit Addresses can be disabled via request."},"isPaused":{"type":"boolean","description":"Whether this deposit address is currently paused. Paused addresses reject incoming deposits until they are unpaused."},"postBridgeData":{"anyOf":[{"$ref":"#/components/schemas/ExtendedPostBridgeData"},{"$ref":"#/components/schemas/StarkwareBtcfiCampaignPostBridgeData"},{"$ref":"#/components/schemas/WirexWrapPostBridgeData"},{"$ref":"#/components/schemas/WirexWrapSandboxPostBridgeData"},{"$ref":"#/components/schemas/StarkwareBtcfiCampaignV2PostBridgeData"},{"$ref":"#/components/schemas/AaveV3SupplyPostBridgeData"},{"$ref":"#/components/schemas/RocketFoundationDepositPostBridgeData"},{"$ref":"#/components/schemas/MapleDepositPostBridgeData"},{"$ref":"#/components/schemas/EtherfiDepositPostBridgeData"}],"description":"Custom Routing Rules as configured by Rhino.fi for specific clients, e.g. to move funds after the initial bridge into a yield bearing vault. To understand more about how Routing Rules can help automate onchain actions and ensure that your funds land in an active state, please contact your Rhino.fi Customer Success Manager or speak to a member of the Rhino.fi sales team."},"tokenOut":{"type":"string","description":"The token that will be received on the destinationChain."},"refundAddress":{"type":"string","description":"The address that any funds would be returned to in the case that a transaction to this Smart Deposit Address is unsuccessful.","title":"nonEmptyString","minLength":1},"bridgeIfNotSwappable":{"type":"boolean","description":"If true, deposited tokens that cannot be swapped to the tokenOut will be bridged instead of causing a failed transaction. If false, any deposited tokens that cannot be swapped to the tokenOut will cause the transaction to fail. Must be used in conjunction with the tokenOut parameter."},"chainMetadata":{"$ref":"#/components/schemas/ChainMetadata"}},"additionalProperties":false},"ChainMetadata":{"type":"object","required":["_tag","baseAddress","memoId"],"properties":{"_tag":{"type":"string","enum":["STELLAR"]},"baseAddress":{"type":"string","description":"The Stellar base account (G…) that the muxed deposit address resolves to. Clients can deposit to this address instead of the muxed (M…) address, provided they also set the memo."},"memoId":{"type":"string","description":"The Stellar memo id that must be supplied alongside the base address when depositing to it, so that Rhino.fi can attribute the deposit to the correct muxed (M…) deposit address."}},"additionalProperties":false,"description":"Optional chain-specific metadata. Currently only populated for Stellar SDAs, where it exposes the base address and memo id that the muxed deposit address resolves to."},"HttpApiDecodeError":{"type":"object","required":["issues","message","_tag"],"properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/Issue"}},"message":{"type":"string"},"_tag":{"type":"string","enum":["HttpApiDecodeError"]}},"additionalProperties":false,"description":"The request did not match the expected schema"},"Issue":{"type":"object","required":["_tag","path","message"],"properties":{"_tag":{"type":"string","enum":["Pointer","Unexpected","Missing","Composite","Refinement","Transformation","Type","Forbidden"],"description":"The tag identifying the type of parse issue"},"path":{"type":"array","items":{"$ref":"#/components/schemas/PropertyKey"},"description":"The path to the property where the issue occurred"},"message":{"type":"string","description":"A descriptive message explaining the issue"}},"additionalProperties":false,"description":"Represents an error encountered while parsing a value to match the schema"},"PropertyKey":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"object","required":["_tag","key"],"properties":{"_tag":{"type":"string","enum":["symbol"]},"key":{"type":"string"}},"additionalProperties":false,"description":"an object to be decoded into a globally shared symbol"}]},"InvalidJwt":{"type":"object","required":["message","_tag"],"properties":{"message":{"type":"string"},"_tag":{"type":"string","enum":["InvalidJwt"]}},"additionalProperties":false},"DepositAddressChainsNotSupported":{"type":"object","required":["chains","_tag"],"properties":{"chains":{"type":"array","items":{"$ref":"#/components/schemas/NonEmptyString"}},"_tag":{"type":"string","enum":["DepositAddressChainsNotSupported"]}},"additionalProperties":false},"DepositAddressInvalidDestinationAddress":{"type":"object","required":["chain","address","_tag"],"properties":{"chain":{"$ref":"#/components/schemas/NonEmptyString"},"address":{"$ref":"#/components/schemas/NonEmptyString"},"_tag":{"type":"string","enum":["DepositAddressInvalidDestinationAddress"]}},"additionalProperties":false},"DepositAddressMultipleChainTypesNotAllowed":{"type":"object","required":["chainTypes","_tag"],"properties":{"chainTypes":{"type":"array","items":{"$ref":"#/components/schemas/NonEmptyString"}},"_tag":{"type":"string","enum":["DepositAddressMultipleChainTypesNotAllowed"]}},"additionalProperties":false},"DepositAddressNoBridgableTokens":{"type":"object","required":["from","to","_tag"],"properties":{"from":{"$ref":"#/components/schemas/NonEmptyString"},"to":{"$ref":"#/components/schemas/NonEmptyString"},"_tag":{"type":"string","enum":["DepositAddressNoBridgableTokens"]}},"additionalProperties":false},"DepositAddressTokenOutNotSupported":{"type":"object","required":["tokenOut","_tag"],"properties":{"tokenOut":{"type":"string"},"_tag":{"type":"string","enum":["DepositAddressTokenOutNotSupported"]}},"additionalProperties":false},"DepositAddressInvalidPostBridgeData":{"type":"object","required":["message","_tag"],"properties":{"message":{"type":"string"},"_tag":{"type":"string","enum":["DepositAddressInvalidPostBridgeData"]}},"additionalProperties":false},"DepositAddressInvalidRefundAddress":{"type":"object","required":["message","_tag"],"properties":{"message":{"type":"string"},"_tag":{"type":"string","enum":["DepositAddressInvalidRefundAddress"]}},"additionalProperties":false},"InvalidRequest":{"type":"object","required":["message","_tag"],"properties":{"message":{"type":"string"},"_tag":{"type":"string","enum":["InvalidRequest"]}},"additionalProperties":false},"EndpointDisabledError":{"type":"object","required":["message","_tag"],"properties":{"message":{"type":"string"},"_tag":{"type":"string","enum":["EndpointDisabledError"]}},"additionalProperties":false},"DepositAddressRateLimitExceeded":{"type":"object","required":["message","limit","_tag"],"properties":{"message":{"$ref":"#/components/schemas/NonEmptyString"},"limit":{"anyOf":[{"$ref":"#/components/schemas/CountLimitExceeded"},{"$ref":"#/components/schemas/WindowLimitExceeded"}]},"_tag":{"type":"string","enum":["DepositAddressRateLimitExceeded"]}},"additionalProperties":false},"CountLimitExceeded":{"type":"object","required":["allowed","current","_tag"],"properties":{"allowed":{"$ref":"#/components/schemas/NonNegativeInt"},"current":{"$ref":"#/components/schemas/NonNegativeInt"},"_tag":{"type":"string","enum":["CountLimitExceeded"]}},"additionalProperties":false},"NonNegativeInt":{"type":"integer","description":"an integer","title":"int","minimum":0},"WindowLimitExceeded":{"type":"object","required":["allowed","current","durationMs","_tag"],"properties":{"allowed":{"$ref":"#/components/schemas/NonNegativeInt"},"current":{"$ref":"#/components/schemas/NonNegativeInt"},"durationMs":{"$ref":"#/components/schemas/DurationFromMillis"},"_tag":{"type":"string","enum":["WindowLimitExceeded"]}},"additionalProperties":false},"DurationFromMillis":{"type":"number","description":"a non-negative number to be decoded into a Duration","title":"nonNegative","minimum":0},"ExtensionNotEnabled":{"type":"object","required":["message","extension","_tag"],"properties":{"message":{"type":"string"},"extension":{"$ref":"#/components/schemas/NonEmptyString"},"_tag":{"type":"string","enum":["ExtensionNotEnabled"]}},"additionalProperties":false},"Unauthorized":{"type":"object","required":["message","_tag"],"properties":{"message":{"type":"string"},"_tag":{"type":"string","enum":["Unauthorized"]}},"additionalProperties":false},"EthAddressSchema":{"type":"string","description":"a string that will be trimmed"},"TronAddressBasic":{"type":"string","description":"Tron basic address format","pattern":"T[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]+","title":"maxLength(60)","maxLength":60},"SolanaAddress":{"type":"string"},"StellarMuxedAddress":{"type":"string"},"BitcoinAddressSchema":{"anyOf":[{"$ref":"#/components/schemas/BitcoinBech32AddressSchema"},{"$ref":"#/components/schemas/BitcoinBase58AddressSchema"}],"description":"Bitcoin address (bech32 / bech32m or base58check)"},"BitcoinBech32AddressSchema":{"type":"string","description":"Bitcoin bech32 / bech32m address (SegWit, Taproot)"},"BitcoinBase58AddressSchema":{"type":"string","description":"a string that will be trimmed"},"DepositAddressAlreadyActive":{"type":"object","required":["message","_tag"],"properties":{"message":{"type":"string"},"_tag":{"type":"string","enum":["DepositAddressAlreadyActive"]}},"additionalProperties":false},"DepositAddressNotFound":{"type":"object","required":["message","addresses","_tag"],"properties":{"message":{"type":"string"},"addresses":{"type":"array","items":{"$ref":"#/components/schemas/NonEmptyString"}},"_tag":{"type":"string","enum":["DepositAddressNotFound"]}},"additionalProperties":false},"UpdateDepositAddressesPayload":{"type":"object","required":["action"],"properties":{"action":{"anyOf":[{"$ref":"#/components/schemas/PauseSdasAction"},{"$ref":"#/components/schemas/UnpauseSdasAction"},{"$ref":"#/components/schemas/UpdateDestinationAddressWithSignatureAction"}],"description":"Action to apply to the deposit address(es). \"Pause\" stops accepting new deposits; \"Unpause\" resumes; \"UpdateDestinationAddressWithSignature\" updates the destination address after signature verification and requires custom per-project setup."}},"additionalProperties":false},"PauseSdasAction":{"type":"object","required":["_tag"],"properties":{"depositChain":{"type":"string","description":"Optional deposit chain identifier. If omitted, the action is applied to all deposit addresses matching the given address across all chains.","title":"nonEmptyString","minLength":1},"_tag":{"type":"string","enum":["Pause"]}},"additionalProperties":false},"UnpauseSdasAction":{"type":"object","required":["_tag"],"properties":{"depositChain":{"type":"string","description":"Optional deposit chain identifier. If omitted, the action is applied to all deposit addresses matching the given address across all chains.","title":"nonEmptyString","minLength":1},"_tag":{"type":"string","enum":["Unpause"]}},"additionalProperties":false},"UpdateDestinationAddressWithSignatureAction":{"type":"object","required":["newDestinationAddress","signature","_tag"],"properties":{"newDestinationAddress":{"$ref":"#/components/schemas/EthAddressSchema"},"signature":{"$ref":"#/components/schemas/NonEmptyString"},"_tag":{"type":"string","enum":["UpdateDestinationAddressWithSignature"]}},"additionalProperties":false,"description":"Updates the destination address using proof of control of the current address. This action requires custom per-project setup and is not generally available."},"SdaDestinationAddressMismatch":{"type":"object","required":["depositAddress","message","_tag"],"properties":{"depositAddress":{"$ref":"#/components/schemas/EthAddressSchema"},"message":{"type":"string"},"_tag":{"type":"string","enum":["SdaDestinationAddressMismatch"]}},"additionalProperties":false},"InvalidSdaDestinationSignature":{"type":"object","required":["depositAddress","message","_tag"],"properties":{"depositAddress":{"$ref":"#/components/schemas/EthAddressSchema"},"message":{"type":"string"},"_tag":{"type":"string","enum":["InvalidSdaDestinationSignature"]}},"additionalProperties":false},"UnsupportedSdaVariantForDestinationUpdate":{"type":"object","required":["depositAddress","variant","message","_tag"],"properties":{"depositAddress":{"$ref":"#/components/schemas/EthAddressSchema"},"variant":{"$ref":"#/components/schemas/NonEmptyString"},"message":{"type":"string"},"_tag":{"type":"string","enum":["UnsupportedSdaVariantForDestinationUpdate"]}},"additionalProperties":false},"SdaSignatureVerificationUnavailable":{"type":"object","required":["depositAddress","message","_tag"],"properties":{"depositAddress":{"$ref":"#/components/schemas/EthAddressSchema"},"message":{"type":"string"},"_tag":{"type":"string","enum":["SdaSignatureVerificationUnavailable"]}},"additionalProperties":false},"ProjectNotAllowlistedForSdaDestinationUpdate":{"type":"object","required":["projectId","message","_tag"],"properties":{"projectId":{"$ref":"#/components/schemas/NonEmptyString"},"message":{"type":"string"},"_tag":{"type":"string","enum":["ProjectNotAllowlistedForSdaDestinationUpdate"]}},"additionalProperties":false},"DepositAddressStatusResponse":{"type":"object","required":["depositChain","depositAddress","destinationChain","supportedTokens","isActive","isPaused"],"properties":{"depositChain":{"type":"string","description":"The blockchain that the Smart Deposit Address is on and that deposits should be sent to, e.g. \"ETHEREUM\".","title":"nonEmptyString","minLength":1},"depositAddress":{"type":"string","description":"The Rhino.fi Smart Deposit Address that the deposit has been sent to.","title":"nonEmptyString","minLength":1},"destinationChain":{"type":"string","description":"The blockchain that the received tokens will be bridged to.","title":"nonEmptyString","minLength":1},"destinationAddress":{"type":"string","description":"The blockchain address that the received tokens will be bridged / bridged and swapped to.","title":"nonEmptyString","minLength":1},"addressNote":{"type":"string","description":"A note or label for the deposit address as a reference.","title":"maxLength(80)","maxLength":80},"supportedTokens":{"type":"array","items":{"type":"object","required":["symbol","address","maxDepositLimitUsd","minDepositLimitUsd"],"properties":{"symbol":{"type":"string","description":"The ticker of the asset, e.g. \"ETH\", \"USDC\".","title":"nonEmptyString","minLength":1},"address":{"type":"string","description":"The token contract address on the depositChain.","title":"nonEmptyString","minLength":1},"maxDepositLimitUsd":{"type":"number","description":"The maximum deposit amount in USD for this token.","title":"nonNegative","minimum":0},"minDepositLimitUsd":{"type":"number","description":"The minimum deposit amount in USD for this token.","title":"nonNegative","minimum":0}},"additionalProperties":false},"description":"The assets that can be deposited to the depositAddress for this depositChain."},"isActive":{"type":"boolean","description":"Whether the Smart Deposit Address is being actively monitored for incoming deposits of supportedTokens (true), in which case it will take the necessary bridge / bridge and swap actions, or is not currently being monitored or actioned by Rhino.fi (false). All Smart Deposit Addresses are set to isActive = true when generated and will be monitored and actioned for 10 years, however Smart Deposit Addresses can be disabled via request."},"isPaused":{"type":"boolean","description":"Whether this deposit address is currently paused. Paused addresses reject incoming deposits until they are unpaused."},"postBridgeData":{"anyOf":[{"$ref":"#/components/schemas/ExtendedPostBridgeData"},{"$ref":"#/components/schemas/StarkwareBtcfiCampaignPostBridgeData"},{"$ref":"#/components/schemas/WirexWrapPostBridgeData"},{"$ref":"#/components/schemas/WirexWrapSandboxPostBridgeData"},{"$ref":"#/components/schemas/StarkwareBtcfiCampaignV2PostBridgeData"},{"$ref":"#/components/schemas/AaveV3SupplyPostBridgeData"},{"$ref":"#/components/schemas/RocketFoundationDepositPostBridgeData"},{"$ref":"#/components/schemas/MapleDepositPostBridgeData"},{"$ref":"#/components/schemas/EtherfiDepositPostBridgeData"}],"description":"Custom Routing Rules as configured by Rhino.fi for specific clients, e.g. to move funds after the initial bridge into a yield bearing vault. To understand more about how Routing Rules can help automate onchain actions and ensure that your funds land in an active state, please contact your Rhino.fi Customer Success Manager or speak to a member of the Rhino.fi sales team."},"tokenOut":{"type":"string","description":"The token that will be received on the destinationChain."},"refundAddress":{"type":"string","description":"The address that any funds would be returned to in the case that a transaction to this Smart Deposit Address is unsuccessful.","title":"nonEmptyString","minLength":1},"bridgeIfNotSwappable":{"type":"boolean","description":"If true, deposited tokens that cannot be swapped to the tokenOut will be bridged instead of causing a failed transaction. If false, any deposited tokens that cannot be swapped to the tokenOut will cause the transaction to fail. Must be used in conjunction with the tokenOut parameter."},"chainMetadata":{"$ref":"#/components/schemas/ChainMetadata"}},"additionalProperties":false},"from":{"type":"string","description":"The start date that the history query should cover, in milliseconds since epoch or Date. If not specified then the default history given will cover the last 7 day period. The maximum window of time a result can cover is 31 days between the from and to."},"to":{"type":"string","description":"The end date that the history query should cover, in milliseconds since epoch or Date. If not specified then the default history given will cover the last 7 day period. The maximum window of time a result can cover is 31 days between the from and to."},"DepositAddressHistoryResponse":{"type":"object","required":["depositAddress","depositChain","bridges"],"properties":{"depositAddress":{"type":"string","description":"The Rhino.fi Smart Deposit Address that the deposit has been sent to.","title":"nonEmptyString","minLength":1},"depositChain":{"type":"string","description":"The blockchain where the deposit was sent to, e.g. \"ETHEREUM\".","title":"nonEmptyString","minLength":1},"bridges":{"type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/DepositAddressBridgeFailedApi"},{"$ref":"#/components/schemas/DepositAddressBridgeRejectedApi"},{"$ref":"#/components/schemas/DepositAddressBridgeAcceptedApi"}]},"description":"An array of bridge transactions associated with this deposit address, including accepted, failed, and rejected transactions."}},"additionalProperties":false},"DepositAddressBridgeFailedApi":{"type":"object","required":["_id","tokenSymbol","tokenAddress","amount","amountUsd","amountWei","sender","txHash","createdAt","_tag"],"properties":{"_id":{"type":"string","description":"The unique identifier of the bridge transaction.","title":"nonEmptyString","minLength":1},"tokenSymbol":{"type":"string","description":"The identifier of the token on the given chain.","title":"nonEmptyString","minLength":1},"tokenAddress":{"type":"string","description":"The smart contract of the token.","title":"nonEmptyString","minLength":1},"amount":{"type":"string","description":"The value in native asset of the tokenSymbol that has been received into the Smart Deposit Address."},"amountUsd":{"type":"number","description":"The value in USD of the tokenSymbol that has been received into the Smart Deposit Address."},"amountWei":{"type":"string","description":"The value received into the Smart Deposit Address, denominated in the smallest unit of the token."},"sender":{"type":"string","description":"The address on the depositChain that sent the tokens for bridging / bridging and swapping.","title":"nonEmptyString","minLength":1},"txHash":{"type":"string","description":"The uniquely identifiable transaction hash for the deposit transaction into the depositAddress.","title":"nonEmptyString","minLength":1},"originalErrorTag":{"type":"string","description":"An identifier for the underlying error that caused the transaction to fail.","title":"nonEmptyString","minLength":1},"createdAt":{"type":"string","description":"The datetime that the bridging / bridging+swapping quote was created."},"_tag":{"type":"string","enum":["failed"]}},"additionalProperties":false},"DepositAddressBridgeRejectedApi":{"type":"object","required":["_id","tokenSymbol","tokenAddress","amount","amountUsd","amountWei","sender","txHash","reason","txUid","createdAt","_tag"],"properties":{"_id":{"type":"string","description":"The unique identifier of the bridge transaction.","title":"nonEmptyString","minLength":1},"tokenSymbol":{"type":"string","description":"The identifier of the token on the given chain.","title":"nonEmptyString","minLength":1},"tokenAddress":{"type":"string","description":"The smart contract of the token.","title":"nonEmptyString","minLength":1},"amount":{"type":"string","description":"The value in native asset of the tokenSymbol that has been received into the Smart Deposit Address."},"amountUsd":{"type":"number","description":"The value in USD of the tokenSymbol that has been received into the Smart Deposit Address."},"amountWei":{"type":"string","description":"The value received into the Smart Deposit Address, denominated in the smallest unit of the token."},"sender":{"type":"string","description":"The address on the depositChain that sent the tokens for bridging / bridging and swapping."},"txHash":{"type":"string","description":"The uniquely identifiable transaction hash for the deposit transaction into the depositAddress."},"originalErrorTag":{"type":"string","description":"An identifier for the underlying error that caused the transaction to be rejected.","title":"nonEmptyString","minLength":1},"originalErrorJson":{"type":"string"},"reason":{"type":"string","enum":["OVER_MAX","UNDER_MIN","OPERATION_UNAVAILABLE","TERMINAL_PROCESSING_ISSUE","NO_ROUTE_FOUND","UNSUPPORTED_TOKEN","SDA_PAUSED","SETTLEMENT_REJECTED"],"description":"Further information about why a transaction was rejected. OVER_MAX: the amount deposited was above the maximum value accepted for that token for the Smart Deposit Address (this value can be found via the GET /sda/deposit-addresses/{depositChain}/{destinationChain}/supported-tokens endpoint). UNDER_MIN: the amount deposited was below the minimum value accepted for that token for the Smart Deposit Address (same endpoint to find the value). TERMINAL_PROCESSING_ISSUE: an issue within the Rhino.fi system meant the required swapping and/or bridging activity was not completed; please reach out to your Rhino.fi customer success manager for further information. NO_ROUTE_FOUND: no compatible bridge and/or swap route was able to be found and executed; please reach out to your Rhino.fi customer success manager for further information. UNSUPPORTED_TOKEN: the token that was deposited is not supported for this Smart Deposit Address. SDA_PAUSED: the Smart Deposit Address was paused and not processing deposits at the time the deposit was received. OPERATION_UNAVAILABLE: the deposit could not be processed because the operation was unavailable at the time; please reach out to your Rhino.fi customer success manager for further information."},"txUid":{"type":"string","description":"A unique identifier for the deposit transaction within the Rhino.fi system.","title":"nonEmptyString","minLength":1},"createdAt":{"type":"string","description":"The datetime that the bridging / bridging+swapping quote was created."},"blockNumber":{"$ref":"#/components/schemas/NonNegative","description":"The block on the depositChain that the deposit transaction was included in.","title":"int","type":"integer"},"_tag":{"type":"string","enum":["rejected"]}},"additionalProperties":false},"DepositAddressBridgeAcceptedApi":{"type":"object","required":["_id","tokenSymbol","tokenAddress","amount","amountUsd","amountWei","sender","txHash","history","createdAt","_tag"],"properties":{"_id":{"type":"string","description":"The unique identifier of the bridge transaction.","title":"nonEmptyString","minLength":1},"tokenSymbol":{"type":"string","description":"The identifier of the token on the given chain.","title":"nonEmptyString","minLength":1},"tokenAddress":{"type":"string","description":"The smart contract of the token.","title":"nonEmptyString","minLength":1},"amount":{"type":"string","description":"The value in native asset of the tokenSymbol that has been received into the Smart Deposit Address."},"amountUsd":{"type":"number","description":"The value in USD of the tokenSymbol that has been received into the Smart Deposit Address."},"amountWei":{"type":"string","description":"The value received into the Smart Deposit Address, denominated in the smallest unit of the token."},"sender":{"type":"string","description":"The address on the depositChain that sent the tokens for bridging / bridging and swapping.","title":"nonEmptyString","minLength":1},"txHash":{"type":"string","description":"The uniquely identifiable transaction hash for the deposit transaction into the depositAddress.","title":"nonEmptyString","minLength":1},"history":{"anyOf":[{"type":"object","required":["_tag","_id","userId","chainIn","chainOut","amountIn","amountInUsd","amountOut","amountOutUsd","amountNative","amountNativeUsd","fee","feeUsd","gasFee","gasFeeUsd","platformFee","platformFeeUsd","percentageFee","percentageFeeUsd","sourceGasFee","sourceGasFeeUsd","sponsoredFees","recipient","depositor","createdAt","commitmentDate","token","usdPrice","state"],"properties":{"_tag":{"type":"string","enum":["depositAddressBridge"]},"_id":{"type":"string"},"userId":{"type":"string","description":"The projectID that the transaction is associated with."},"chainIn":{"type":"string","description":"The blockchain that the tokens were bridged from."},"chainOut":{"type":"string","description":"The blockchain that the tokens were bridged to."},"amountIn":{"type":"string","description":"The native value of the tokens that were sent on the chainIn."},"amountInUsd":{"type":"number","description":"The USD value of the tokens that were sent on the chainIn."},"amountOut":{"type":"string","description":"The native value of the tokens that were sent on the chainOut."},"amountOutUsd":{"type":"number","description":"The USD value of the tokens that were sent on the chainOut."},"amountNative":{"anyOf":[{"$ref":"#/components/schemas/BigDecimalFromString"},{"type":"null"}],"description":"The amount of native gas token (e.g. ETH, MATIC, BNB) that was delivered to the user's wallet on the destination chain as part of gas boost functionality, where Rhino.fi delivers a small amount of native gas token to the destination address, ensuring that further transactions from this address can be made immediately."},"amountNativeUsd":{"anyOf":[{"$ref":"#/components/schemas/BigDecimalFromNumber"},{"type":"null"}],"description":"The value, in USD, of amountNative."},"fee":{"type":"string","description":"The total cost of the transaction as paid by the end customer, denominated in the token."},"feeUsd":{"type":"number","description":"The total cost, in USD, of the transaction."},"gasFee":{"type":"string","description":"Any chain specific costs charged to the end customer for the chainOut part of the overall transaction. Further information about which chains have these associated costs can be found here: https://learn.rhino.fi/articles/7749894324-tron-and-solana-onchain-gas-costs. If these costs are being paid by the client then this value will be zero and the gasFee and gasFeeUsd in the sponsored fee body will be non-zero."},"gasFeeUsd":{"type":"number","description":"The gasFee value, in USD."},"platformFee":{"type":"string","description":"The resulting fee charged from the $-based Client Surcharge. This is applicable to both legacy and PAYG/Subscription clients. For legacy clients this is deducted from the tokens sent on the chainOut and will be sent to the client at month end. For PAYG/Subscription clients this will be rebated at month end."},"platformFeeUsd":{"type":"number","description":"The platformFee value, in USD."},"percentageFee":{"type":"string","description":"The resulting fee charged from the %-based Client Surcharge. This is applicable to both legacy and PAYG/Subscription clients. For legacy clients this is deducted from the tokens sent on the chainOut and will be sent to the client at month end. For PAYG/Subscription clients this will be rebated at month end."},"percentageFeeUsd":{"type":"number","description":"The percentageFee value, in USD."},"sourceGasFee":{"type":"string","description":"The cost on the chainIn to sweep the received tokens into Rhino.fi's control. For legacy clients this is deducted from the tokens sent on the chainOut. For PAYG/Subscription tier clients this is paid by Rhino.fi as part of the PAYG/Subscription monthly cost so no direct cost is passed onto the end customer, unless configured this way. This is only relevant for transactions involving a Rhino.fi Smart Deposit Address; for bridging/swapping-only activity the sourceGasFee will be paid directly by the customer within their depositing transaction."},"sourceGasFeeUsd":{"type":"number","description":"The sourceGasFee value, in USD."},"sponsoredFees":{"type":"object","required":["fee","feeUsd","gasFee","gasFeeUsd","platformFee","platformFeeUsd","percentageFee","percentageFeeUsd","sourceGasFee","sourceGasFeeUsd"],"properties":{"fee":{"type":"string","description":"The total cost of the transaction."},"feeUsd":{"type":"number","description":"The total cost of the transaction, in USD."},"gasFee":{"type":"string","description":"Any chain specific costs charged to the client for the chainOut part of the overall transaction. Further information about which chains have these associated costs can be found here: https://learn.rhino.fi/articles/7749894324-tron-and-solana-onchain-gas-costs. If these costs are being passed on to the end user then this value will be zero and the gasFee and gasFeeUsd in the main fee body will be non-zero."},"gasFeeUsd":{"type":"number","description":"The gasFee value, in USD."},"platformFee":{"type":"string","description":"The value of any additional fee levied on top by Rhino.fi and paid by the client. This is only relevant for legacy clients."},"platformFeeUsd":{"type":"number","description":"The platformFee value, in USD."},"percentageFee":{"type":"string","description":"Will be zero since this represents a charge levied on the end customer by the client. To understand the value charged to the end customer, the percentageFee value from the main fee body should be used. N.B. for PAYG/Subscription clients this is now referred to as the \"Client Surcharge\"."},"percentageFeeUsd":{"type":"number","description":"The percentageFee value, in USD."},"sourceGasFee":{"type":"string","description":"The cost on the chainIn to sweep the received tokens into Rhino.fi's control. For legacy clients this is deducted from the tokens sent on the chainOut. For PAYG/Subscription tier clients this is paid by Rhino.fi as part of the PAYG/Subscription monthly cost so no direct cost is passed onto the client, unless configured to be passed onto the end customer. This is only relevant for transactions involving a Rhino.fi Smart Deposit Address; for bridging/swapping-only activity the sourceGasFee will be paid directly by the customer within their depositing transaction."},"sourceGasFeeUsd":{"type":"number","description":"The sourceGasFee value, in USD."}},"additionalProperties":false,"description":"For both legacy and PAYG/Subscription clients, represents the fees that are paid by the client on behalf of the end customer."},"recipient":{"type":"string","description":"The address on the chainOut that received the bridged tokens."},"depositor":{"type":"string","description":"The address on the chainIn that sent the tokens for bridging."},"createdAt":{"type":"string","description":"The datetime that the bridging / bridging+swapping quote was created."},"commitmentDate":{"type":"string","description":"The datetime that the bridging / bridging+swapping quote was committed with Rhino.fi."},"speed":{"type":"string","enum":["fast","standard","slow"],"description":"Provides information about whether the transaction is expected to be completed \"fast\" (typically under 30 seconds), \"standard\" (typically under a minute) or \"slow\" (can be up to 20 minutes). For more information on our bridge processing speeds please read this article on the Rhino.fi Knowledge Base: https://learn.rhino.fi/articles/8257872655-bridge-speed."},"estimatedDuration":{"type":"number","description":"The estimated time for the transaction to complete in milliseconds.","title":"nonNegative","minimum":0},"postBridgeData":{"anyOf":[{"$ref":"#/components/schemas/ExtendedPostBridgeData"},{"$ref":"#/components/schemas/StarkwareBtcfiCampaignPostBridgeData"},{"$ref":"#/components/schemas/WirexWrapPostBridgeData"},{"$ref":"#/components/schemas/WirexWrapSandboxPostBridgeData"},{"$ref":"#/components/schemas/StarkwareBtcfiCampaignV2PostBridgeData"},{"$ref":"#/components/schemas/AaveV3SupplyPostBridgeData"},{"$ref":"#/components/schemas/RocketFoundationDepositPostBridgeData"},{"$ref":"#/components/schemas/MapleDepositPostBridgeData"},{"$ref":"#/components/schemas/EtherfiDepositPostBridgeData"}],"description":"Custom Routing Rules as configured by Rhino.fi for a specific client, e.g. to move funds after the initial bridge into a yield bearing vault. To understand more about how Routing Rules can help automate onchain actions and ensure that your funds land in an active state, please contact your Rhino.fi Customer Success Manager or speak to a member of the Rhino.fi sales team."},"flowCredits":{"type":"number","description":"The number of Flow Credits that this transaction will use from the client's agreed Rhino.fi PAYG/Subscription tier."},"token":{"type":"string","description":"The asset deposited into the Smart Deposit Address on the chainIn. Where the deposit address performs a swap, the asset received on the chainOut may differ."},"tokenOut":{"type":"string","description":"The asset received on the chainOut where the deposit address performs a swap."},"usdPrice":{"type":"number","description":"The USD price of the token at the time the quote was created."},"depositAddress":{"type":"string","description":"The Rhino.fi Smart Deposit Address that the tokens were deposited to."},"preSwap":{"$ref":"#/components/schemas/SwapQuote"},"postSwap":{"$ref":"#/components/schemas/SwapQuote"},"state":{"type":"string","enum":["PENDING"]}},"additionalProperties":false},{"type":"object","required":["_tag","_id","userId","chainIn","chainOut","amountIn","amountInUsd","amountOut","amountOutUsd","amountNative","amountNativeUsd","fee","feeUsd","gasFee","gasFeeUsd","platformFee","platformFeeUsd","percentageFee","percentageFeeUsd","sourceGasFee","sourceGasFeeUsd","sponsoredFees","recipient","depositor","createdAt","commitmentDate","token","usdPrice","depositTxHash","depositDiscoveredAt","expectedDepositConfirmedAt","expectedDepositConfirmedAtBlock","state"],"properties":{"_tag":{"type":"string","enum":["depositAddressBridge"]},"_id":{"type":"string"},"userId":{"type":"string","description":"The projectID that the transaction is associated with."},"chainIn":{"type":"string","description":"The blockchain that the tokens were bridged from."},"chainOut":{"type":"string","description":"The blockchain that the tokens were bridged to."},"amountIn":{"type":"string","description":"The native value of the tokens that were sent on the chainIn."},"amountInUsd":{"type":"number","description":"The USD value of the tokens that were sent on the chainIn."},"amountOut":{"type":"string","description":"The native value of the tokens that were sent on the chainOut."},"amountOutUsd":{"type":"number","description":"The USD value of the tokens that were sent on the chainOut."},"amountNative":{"anyOf":[{"$ref":"#/components/schemas/BigDecimalFromString"},{"type":"null"}],"description":"The amount of native gas token (e.g. ETH, MATIC, BNB) that was delivered to the user's wallet on the destination chain as part of gas boost functionality, where Rhino.fi delivers a small amount of native gas token to the destination address, ensuring that further transactions from this address can be made immediately."},"amountNativeUsd":{"anyOf":[{"$ref":"#/components/schemas/BigDecimalFromNumber"},{"type":"null"}],"description":"The value, in USD, of amountNative."},"fee":{"type":"string","description":"The total cost of the transaction as paid by the end customer, denominated in the token."},"feeUsd":{"type":"number","description":"The total cost, in USD, of the transaction."},"gasFee":{"type":"string","description":"Any chain specific costs charged to the end customer for the chainOut part of the overall transaction. Further information about which chains have these associated costs can be found here: https://learn.rhino.fi/articles/7749894324-tron-and-solana-onchain-gas-costs. If these costs are being paid by the client then this value will be zero and the gasFee and gasFeeUsd in the sponsored fee body will be non-zero."},"gasFeeUsd":{"type":"number","description":"The gasFee value, in USD."},"platformFee":{"type":"string","description":"The resulting fee charged from the $-based Client Surcharge. This is applicable to both legacy and PAYG/Subscription clients. For legacy clients this is deducted from the tokens sent on the chainOut and will be sent to the client at month end. For PAYG/Subscription clients this will be rebated at month end."},"platformFeeUsd":{"type":"number","description":"The platformFee value, in USD."},"percentageFee":{"type":"string","description":"The resulting fee charged from the %-based Client Surcharge. This is applicable to both legacy and PAYG/Subscription clients. For legacy clients this is deducted from the tokens sent on the chainOut and will be sent to the client at month end. For PAYG/Subscription clients this will be rebated at month end."},"percentageFeeUsd":{"type":"number","description":"The percentageFee value, in USD."},"sourceGasFee":{"type":"string","description":"The cost on the chainIn to sweep the received tokens into Rhino.fi's control. For legacy clients this is deducted from the tokens sent on the chainOut. For PAYG/Subscription tier clients this is paid by Rhino.fi as part of the PAYG/Subscription monthly cost so no direct cost is passed onto the end customer, unless configured this way. This is only relevant for transactions involving a Rhino.fi Smart Deposit Address; for bridging/swapping-only activity the sourceGasFee will be paid directly by the customer within their depositing transaction."},"sourceGasFeeUsd":{"type":"number","description":"The sourceGasFee value, in USD."},"sponsoredFees":{"type":"object","required":["fee","feeUsd","gasFee","gasFeeUsd","platformFee","platformFeeUsd","percentageFee","percentageFeeUsd","sourceGasFee","sourceGasFeeUsd"],"properties":{"fee":{"type":"string","description":"The total cost of the transaction."},"feeUsd":{"type":"number","description":"The total cost of the transaction, in USD."},"gasFee":{"type":"string","description":"Any chain specific costs charged to the client for the chainOut part of the overall transaction. Further information about which chains have these associated costs can be found here: https://learn.rhino.fi/articles/7749894324-tron-and-solana-onchain-gas-costs. If these costs are being passed on to the end user then this value will be zero and the gasFee and gasFeeUsd in the main fee body will be non-zero."},"gasFeeUsd":{"type":"number","description":"The gasFee value, in USD."},"platformFee":{"type":"string","description":"The value of any additional fee levied on top by Rhino.fi and paid by the client. This is only relevant for legacy clients."},"platformFeeUsd":{"type":"number","description":"The platformFee value, in USD."},"percentageFee":{"type":"string","description":"Will be zero since this represents a charge levied on the end customer by the client. To understand the value charged to the end customer, the percentageFee value from the main fee body should be used. N.B. for PAYG/Subscription clients this is now referred to as the \"Client Surcharge\"."},"percentageFeeUsd":{"type":"number","description":"The percentageFee value, in USD."},"sourceGasFee":{"type":"string","description":"The cost on the chainIn to sweep the received tokens into Rhino.fi's control. For legacy clients this is deducted from the tokens sent on the chainOut. For PAYG/Subscription tier clients this is paid by Rhino.fi as part of the PAYG/Subscription monthly cost so no direct cost is passed onto the client, unless configured to be passed onto the end customer. This is only relevant for transactions involving a Rhino.fi Smart Deposit Address; for bridging/swapping-only activity the sourceGasFee will be paid directly by the customer within their depositing transaction."},"sourceGasFeeUsd":{"type":"number","description":"The sourceGasFee value, in USD."}},"additionalProperties":false,"description":"For both legacy and PAYG/Subscription clients, represents the fees that are paid by the client on behalf of the end customer."},"recipient":{"type":"string","description":"The address on the chainOut that received the bridged tokens."},"depositor":{"type":"string","description":"The address on the chainIn that sent the tokens for bridging."},"createdAt":{"type":"string","description":"The datetime that the bridging / bridging+swapping quote was created."},"commitmentDate":{"type":"string","description":"The datetime that the bridging / bridging+swapping quote was committed with Rhino.fi."},"speed":{"type":"string","enum":["fast","standard","slow"],"description":"Provides information about whether the transaction is expected to be completed \"fast\" (typically under 30 seconds), \"standard\" (typically under a minute) or \"slow\" (can be up to 20 minutes). For more information on our bridge processing speeds please read this article on the Rhino.fi Knowledge Base: https://learn.rhino.fi/articles/8257872655-bridge-speed."},"estimatedDuration":{"type":"number","description":"The estimated time for the transaction to complete in milliseconds.","title":"nonNegative","minimum":0},"postBridgeData":{"anyOf":[{"$ref":"#/components/schemas/ExtendedPostBridgeData"},{"$ref":"#/components/schemas/StarkwareBtcfiCampaignPostBridgeData"},{"$ref":"#/components/schemas/WirexWrapPostBridgeData"},{"$ref":"#/components/schemas/WirexWrapSandboxPostBridgeData"},{"$ref":"#/components/schemas/StarkwareBtcfiCampaignV2PostBridgeData"},{"$ref":"#/components/schemas/AaveV3SupplyPostBridgeData"},{"$ref":"#/components/schemas/RocketFoundationDepositPostBridgeData"},{"$ref":"#/components/schemas/MapleDepositPostBridgeData"},{"$ref":"#/components/schemas/EtherfiDepositPostBridgeData"}],"description":"Custom Routing Rules as configured by Rhino.fi for a specific client, e.g. to move funds after the initial bridge into a yield bearing vault. To understand more about how Routing Rules can help automate onchain actions and ensure that your funds land in an active state, please contact your Rhino.fi Customer Success Manager or speak to a member of the Rhino.fi sales team."},"flowCredits":{"type":"number","description":"The number of Flow Credits that this transaction will use from the client's agreed Rhino.fi PAYG/Subscription tier."},"token":{"type":"string","description":"The asset deposited into the Smart Deposit Address on the chainIn. Where the deposit address performs a swap, the asset received on the chainOut may differ."},"tokenOut":{"type":"string","description":"The asset received on the chainOut where the deposit address performs a swap."},"usdPrice":{"type":"number","description":"The USD price of the token at the time the quote was created."},"depositAddress":{"type":"string","description":"The Rhino.fi Smart Deposit Address that the tokens were deposited to."},"preSwap":{"$ref":"#/components/schemas/SwapQuote"},"postSwap":{"$ref":"#/components/schemas/SwapQuote"},"depositTxHash":{"type":"string","description":"The transaction hash of the deposit made on the chainIn."},"depositDiscoveredAt":{"type":"string","description":"The datetime that Rhino.fi first discovered the deposit transaction on the chainIn."},"expectedDepositConfirmedAt":{"type":"string","description":"The datetime that the deposit transaction is expected to reach the required number of confirmations on the chainIn."},"expectedDepositConfirmedAtBlock":{"type":"integer","description":"The block on the chainIn at which the deposit transaction is expected to reach the required number of confirmations.","title":"int"},"state":{"type":"string","enum":["PENDING_CONFIRMATION"]}},"additionalProperties":false},{"type":"object","required":["_tag","_id","userId","chainIn","chainOut","amountIn","amountInUsd","amountOut","amountOutUsd","amountNative","amountNativeUsd","fee","feeUsd","gasFee","gasFeeUsd","platformFee","platformFeeUsd","percentageFee","percentageFeeUsd","sourceGasFee","sourceGasFeeUsd","sponsoredFees","recipient","depositor","createdAt","commitmentDate","token","usdPrice","depositTxHash","depositCommittedAt","failedAt","state"],"properties":{"_tag":{"type":"string","enum":["depositAddressBridge"]},"_id":{"type":"string"},"userId":{"type":"string","description":"The projectID that the transaction is associated with."},"chainIn":{"type":"string","description":"The blockchain that the tokens were bridged from."},"chainOut":{"type":"string","description":"The blockchain that the tokens were bridged to."},"amountIn":{"type":"string","description":"The native value of the tokens that were sent on the chainIn."},"amountInUsd":{"type":"number","description":"The USD value of the tokens that were sent on the chainIn."},"amountOut":{"type":"string","description":"The native value of the tokens that were sent on the chainOut."},"amountOutUsd":{"type":"number","description":"The USD value of the tokens that were sent on the chainOut."},"amountNative":{"anyOf":[{"$ref":"#/components/schemas/BigDecimalFromString"},{"type":"null"}],"description":"The amount of native gas token (e.g. ETH, MATIC, BNB) that was delivered to the user's wallet on the destination chain as part of gas boost functionality, where Rhino.fi delivers a small amount of native gas token to the destination address, ensuring that further transactions from this address can be made immediately."},"amountNativeUsd":{"anyOf":[{"$ref":"#/components/schemas/BigDecimalFromNumber"},{"type":"null"}],"description":"The value, in USD, of amountNative."},"fee":{"type":"string","description":"The total cost of the transaction as paid by the end customer, denominated in the token."},"feeUsd":{"type":"number","description":"The total cost, in USD, of the transaction."},"gasFee":{"type":"string","description":"Any chain specific costs charged to the end customer for the chainOut part of the overall transaction. Further information about which chains have these associated costs can be found here: https://learn.rhino.fi/articles/7749894324-tron-and-solana-onchain-gas-costs. If these costs are being paid by the client then this value will be zero and the gasFee and gasFeeUsd in the sponsored fee body will be non-zero."},"gasFeeUsd":{"type":"number","description":"The gasFee value, in USD."},"platformFee":{"type":"string","description":"The resulting fee charged from the $-based Client Surcharge. This is applicable to both legacy and PAYG/Subscription clients. For legacy clients this is deducted from the tokens sent on the chainOut and will be sent to the client at month end. For PAYG/Subscription clients this will be rebated at month end."},"platformFeeUsd":{"type":"number","description":"The platformFee value, in USD."},"percentageFee":{"type":"string","description":"The resulting fee charged from the %-based Client Surcharge. This is applicable to both legacy and PAYG/Subscription clients. For legacy clients this is deducted from the tokens sent on the chainOut and will be sent to the client at month end. For PAYG/Subscription clients this will be rebated at month end."},"percentageFeeUsd":{"type":"number","description":"The percentageFee value, in USD."},"sourceGasFee":{"type":"string","description":"The cost on the chainIn to sweep the received tokens into Rhino.fi's control. For legacy clients this is deducted from the tokens sent on the chainOut. For PAYG/Subscription tier clients this is paid by Rhino.fi as part of the PAYG/Subscription monthly cost so no direct cost is passed onto the end customer, unless configured this way. This is only relevant for transactions involving a Rhino.fi Smart Deposit Address; for bridging/swapping-only activity the sourceGasFee will be paid directly by the customer within their depositing transaction."},"sourceGasFeeUsd":{"type":"number","description":"The sourceGasFee value, in USD."},"sponsoredFees":{"type":"object","required":["fee","feeUsd","gasFee","gasFeeUsd","platformFee","platformFeeUsd","percentageFee","percentageFeeUsd","sourceGasFee","sourceGasFeeUsd"],"properties":{"fee":{"type":"string","description":"The total cost of the transaction."},"feeUsd":{"type":"number","description":"The total cost of the transaction, in USD."},"gasFee":{"type":"string","description":"Any chain specific costs charged to the client for the chainOut part of the overall transaction. Further information about which chains have these associated costs can be found here: https://learn.rhino.fi/articles/7749894324-tron-and-solana-onchain-gas-costs. If these costs are being passed on to the end user then this value will be zero and the gasFee and gasFeeUsd in the main fee body will be non-zero."},"gasFeeUsd":{"type":"number","description":"The gasFee value, in USD."},"platformFee":{"type":"string","description":"The value of any additional fee levied on top by Rhino.fi and paid by the client. This is only relevant for legacy clients."},"platformFeeUsd":{"type":"number","description":"The platformFee value, in USD."},"percentageFee":{"type":"string","description":"Will be zero since this represents a charge levied on the end customer by the client. To understand the value charged to the end customer, the percentageFee value from the main fee body should be used. N.B. for PAYG/Subscription clients this is now referred to as the \"Client Surcharge\"."},"percentageFeeUsd":{"type":"number","description":"The percentageFee value, in USD."},"sourceGasFee":{"type":"string","description":"The cost on the chainIn to sweep the received tokens into Rhino.fi's control. For legacy clients this is deducted from the tokens sent on the chainOut. For PAYG/Subscription tier clients this is paid by Rhino.fi as part of the PAYG/Subscription monthly cost so no direct cost is passed onto the client, unless configured to be passed onto the end customer. This is only relevant for transactions involving a Rhino.fi Smart Deposit Address; for bridging/swapping-only activity the sourceGasFee will be paid directly by the customer within their depositing transaction."},"sourceGasFeeUsd":{"type":"number","description":"The sourceGasFee value, in USD."}},"additionalProperties":false,"description":"For both legacy and PAYG/Subscription clients, represents the fees that are paid by the client on behalf of the end customer."},"recipient":{"type":"string","description":"The address on the chainOut that received the bridged tokens."},"depositor":{"type":"string","description":"The address on the chainIn that sent the tokens for bridging."},"createdAt":{"type":"string","description":"The datetime that the bridging / bridging+swapping quote was created."},"commitmentDate":{"type":"string","description":"The datetime that the bridging / bridging+swapping quote was committed with Rhino.fi."},"speed":{"type":"string","enum":["fast","standard","slow"],"description":"Provides information about whether the transaction is expected to be completed \"fast\" (typically under 30 seconds), \"standard\" (typically under a minute) or \"slow\" (can be up to 20 minutes). For more information on our bridge processing speeds please read this article on the Rhino.fi Knowledge Base: https://learn.rhino.fi/articles/8257872655-bridge-speed."},"estimatedDuration":{"type":"number","description":"The estimated time for the transaction to complete in milliseconds.","title":"nonNegative","minimum":0},"postBridgeData":{"anyOf":[{"$ref":"#/components/schemas/ExtendedPostBridgeData"},{"$ref":"#/components/schemas/StarkwareBtcfiCampaignPostBridgeData"},{"$ref":"#/components/schemas/WirexWrapPostBridgeData"},{"$ref":"#/components/schemas/WirexWrapSandboxPostBridgeData"},{"$ref":"#/components/schemas/StarkwareBtcfiCampaignV2PostBridgeData"},{"$ref":"#/components/schemas/AaveV3SupplyPostBridgeData"},{"$ref":"#/components/schemas/RocketFoundationDepositPostBridgeData"},{"$ref":"#/components/schemas/MapleDepositPostBridgeData"},{"$ref":"#/components/schemas/EtherfiDepositPostBridgeData"}],"description":"Custom Routing Rules as configured by Rhino.fi for a specific client, e.g. to move funds after the initial bridge into a yield bearing vault. To understand more about how Routing Rules can help automate onchain actions and ensure that your funds land in an active state, please contact your Rhino.fi Customer Success Manager or speak to a member of the Rhino.fi sales team."},"flowCredits":{"type":"number","description":"The number of Flow Credits that this transaction will use from the client's agreed Rhino.fi PAYG/Subscription tier."},"token":{"type":"string","description":"The asset deposited into the Smart Deposit Address on the chainIn. Where the deposit address performs a swap, the asset received on the chainOut may differ."},"tokenOut":{"type":"string","description":"The asset received on the chainOut where the deposit address performs a swap."},"usdPrice":{"type":"number","description":"The USD price of the token at the time the quote was created."},"depositAddress":{"type":"string","description":"The Rhino.fi Smart Deposit Address that the tokens were deposited to."},"preSwap":{"$ref":"#/components/schemas/SwapQuote"},"postSwap":{"$ref":"#/components/schemas/SwapQuote"},"depositTxHash":{"type":"string","description":"The transaction hash of the deposit made on the chainIn."},"depositCommittedAt":{"type":"string","description":"The datetime that the deposit transaction was committed on the chainIn."},"depositDiscoveredAt":{"type":"string","description":"The datetime that Rhino.fi first discovered the deposit transaction on the chainIn."},"depositConfirmedAt":{"type":"string","description":"The datetime that the deposit transaction reached the required number of confirmations on the chainIn."},"expectedDepositConfirmedAt":{"type":"string","description":"The datetime that the deposit transaction is expected to reach the required number of confirmations on the chainIn."},"expectedDepositConfirmedAtBlock":{"type":"integer","description":"The block on the chainIn at which the deposit transaction is expected to reach the required number of confirmations.","title":"int"},"preSwapTxHash":{"type":"string","description":"The transaction hash of the swap performed on the chainIn before bridging."},"preSwapCommittedAt":{"type":"string","description":"The datetime that the pre-bridge swap was committed on the chainIn."},"isConfirmed":{"type":"boolean","description":"Whether the deposit transaction has reached the required number of confirmations on the chainIn."},"failedAt":{"type":"string","description":"The datetime that the transaction failed."},"state":{"type":"string","enum":["FAILED"]}},"additionalProperties":false},{"type":"object","required":["_tag","_id","userId","chainIn","chainOut","amountIn","amountInUsd","amountOut","amountOutUsd","amountNative","amountNativeUsd","fee","feeUsd","gasFee","gasFeeUsd","platformFee","platformFeeUsd","percentageFee","percentageFeeUsd","sourceGasFee","sourceGasFeeUsd","sponsoredFees","recipient","depositor","createdAt","commitmentDate","token","usdPrice","depositTxHash","depositCommittedAt","state"],"properties":{"_tag":{"type":"string","enum":["depositAddressBridge"]},"_id":{"type":"string"},"userId":{"type":"string","description":"The projectID that the transaction is associated with."},"chainIn":{"type":"string","description":"The blockchain that the tokens were bridged from."},"chainOut":{"type":"string","description":"The blockchain that the tokens were bridged to."},"amountIn":{"type":"string","description":"The native value of the tokens that were sent on the chainIn."},"amountInUsd":{"type":"number","description":"The USD value of the tokens that were sent on the chainIn."},"amountOut":{"type":"string","description":"The native value of the tokens that were sent on the chainOut."},"amountOutUsd":{"type":"number","description":"The USD value of the tokens that were sent on the chainOut."},"amountNative":{"anyOf":[{"$ref":"#/components/schemas/BigDecimalFromString"},{"type":"null"}],"description":"The amount of native gas token (e.g. ETH, MATIC, BNB) that was delivered to the user's wallet on the destination chain as part of gas boost functionality, where Rhino.fi delivers a small amount of native gas token to the destination address, ensuring that further transactions from this address can be made immediately."},"amountNativeUsd":{"anyOf":[{"$ref":"#/components/schemas/BigDecimalFromNumber"},{"type":"null"}],"description":"The value, in USD, of amountNative."},"fee":{"type":"string","description":"The total cost of the transaction as paid by the end customer, denominated in the token."},"feeUsd":{"type":"number","description":"The total cost, in USD, of the transaction."},"gasFee":{"type":"string","description":"Any chain specific costs charged to the end customer for the chainOut part of the overall transaction. Further information about which chains have these associated costs can be found here: https://learn.rhino.fi/articles/7749894324-tron-and-solana-onchain-gas-costs. If these costs are being paid by the client then this value will be zero and the gasFee and gasFeeUsd in the sponsored fee body will be non-zero."},"gasFeeUsd":{"type":"number","description":"The gasFee value, in USD."},"platformFee":{"type":"string","description":"The resulting fee charged from the $-based Client Surcharge. This is applicable to both legacy and PAYG/Subscription clients. For legacy clients this is deducted from the tokens sent on the chainOut and will be sent to the client at month end. For PAYG/Subscription clients this will be rebated at month end."},"platformFeeUsd":{"type":"number","description":"The platformFee value, in USD."},"percentageFee":{"type":"string","description":"The resulting fee charged from the %-based Client Surcharge. This is applicable to both legacy and PAYG/Subscription clients. For legacy clients this is deducted from the tokens sent on the chainOut and will be sent to the client at month end. For PAYG/Subscription clients this will be rebated at month end."},"percentageFeeUsd":{"type":"number","description":"The percentageFee value, in USD."},"sourceGasFee":{"type":"string","description":"The cost on the chainIn to sweep the received tokens into Rhino.fi's control. For legacy clients this is deducted from the tokens sent on the chainOut. For PAYG/Subscription tier clients this is paid by Rhino.fi as part of the PAYG/Subscription monthly cost so no direct cost is passed onto the end customer, unless configured this way. This is only relevant for transactions involving a Rhino.fi Smart Deposit Address; for bridging/swapping-only activity the sourceGasFee will be paid directly by the customer within their depositing transaction."},"sourceGasFeeUsd":{"type":"number","description":"The sourceGasFee value, in USD."},"sponsoredFees":{"type":"object","required":["fee","feeUsd","gasFee","gasFeeUsd","platformFee","platformFeeUsd","percentageFee","percentageFeeUsd","sourceGasFee","sourceGasFeeUsd"],"properties":{"fee":{"type":"string","description":"The total cost of the transaction."},"feeUsd":{"type":"number","description":"The total cost of the transaction, in USD."},"gasFee":{"type":"string","description":"Any chain specific costs charged to the client for the chainOut part of the overall transaction. Further information about which chains have these associated costs can be found here: https://learn.rhino.fi/articles/7749894324-tron-and-solana-onchain-gas-costs. If these costs are being passed on to the end user then this value will be zero and the gasFee and gasFeeUsd in the main fee body will be non-zero."},"gasFeeUsd":{"type":"number","description":"The gasFee value, in USD."},"platformFee":{"type":"string","description":"The value of any additional fee levied on top by Rhino.fi and paid by the client. This is only relevant for legacy clients."},"platformFeeUsd":{"type":"number","description":"The platformFee value, in USD."},"percentageFee":{"type":"string","description":"Will be zero since this represents a charge levied on the end customer by the client. To understand the value charged to the end customer, the percentageFee value from the main fee body should be used. N.B. for PAYG/Subscription clients this is now referred to as the \"Client Surcharge\"."},"percentageFeeUsd":{"type":"number","description":"The percentageFee value, in USD."},"sourceGasFee":{"type":"string","description":"The cost on the chainIn to sweep the received tokens into Rhino.fi's control. For legacy clients this is deducted from the tokens sent on the chainOut. For PAYG/Subscription tier clients this is paid by Rhino.fi as part of the PAYG/Subscription monthly cost so no direct cost is passed onto the client, unless configured to be passed onto the end customer. This is only relevant for transactions involving a Rhino.fi Smart Deposit Address; for bridging/swapping-only activity the sourceGasFee will be paid directly by the customer within their depositing transaction."},"sourceGasFeeUsd":{"type":"number","description":"The sourceGasFee value, in USD."}},"additionalProperties":false,"description":"For both legacy and PAYG/Subscription clients, represents the fees that are paid by the client on behalf of the end customer."},"recipient":{"type":"string","description":"The address on the chainOut that received the bridged tokens."},"depositor":{"type":"string","description":"The address on the chainIn that sent the tokens for bridging."},"createdAt":{"type":"string","description":"The datetime that the bridging / bridging+swapping quote was created."},"commitmentDate":{"type":"string","description":"The datetime that the bridging / bridging+swapping quote was committed with Rhino.fi."},"speed":{"type":"string","enum":["fast","standard","slow"],"description":"Provides information about whether the transaction is expected to be completed \"fast\" (typically under 30 seconds), \"standard\" (typically under a minute) or \"slow\" (can be up to 20 minutes). For more information on our bridge processing speeds please read this article on the Rhino.fi Knowledge Base: https://learn.rhino.fi/articles/8257872655-bridge-speed."},"estimatedDuration":{"type":"number","description":"The estimated time for the transaction to complete in milliseconds.","title":"nonNegative","minimum":0},"postBridgeData":{"anyOf":[{"$ref":"#/components/schemas/ExtendedPostBridgeData"},{"$ref":"#/components/schemas/StarkwareBtcfiCampaignPostBridgeData"},{"$ref":"#/components/schemas/WirexWrapPostBridgeData"},{"$ref":"#/components/schemas/WirexWrapSandboxPostBridgeData"},{"$ref":"#/components/schemas/StarkwareBtcfiCampaignV2PostBridgeData"},{"$ref":"#/components/schemas/AaveV3SupplyPostBridgeData"},{"$ref":"#/components/schemas/RocketFoundationDepositPostBridgeData"},{"$ref":"#/components/schemas/MapleDepositPostBridgeData"},{"$ref":"#/components/schemas/EtherfiDepositPostBridgeData"}],"description":"Custom Routing Rules as configured by Rhino.fi for a specific client, e.g. to move funds after the initial bridge into a yield bearing vault. To understand more about how Routing Rules can help automate onchain actions and ensure that your funds land in an active state, please contact your Rhino.fi Customer Success Manager or speak to a member of the Rhino.fi sales team."},"flowCredits":{"type":"number","description":"The number of Flow Credits that this transaction will use from the client's agreed Rhino.fi PAYG/Subscription tier."},"token":{"type":"string","description":"The asset deposited into the Smart Deposit Address on the chainIn. Where the deposit address performs a swap, the asset received on the chainOut may differ."},"tokenOut":{"type":"string","description":"The asset received on the chainOut where the deposit address performs a swap."},"usdPrice":{"type":"number","description":"The USD price of the token at the time the quote was created."},"depositAddress":{"type":"string","description":"The Rhino.fi Smart Deposit Address that the tokens were deposited to."},"preSwap":{"$ref":"#/components/schemas/SwapQuote"},"postSwap":{"$ref":"#/components/schemas/SwapQuote"},"depositTxHash":{"type":"string","description":"The transaction hash of the deposit made on the chainIn."},"depositCommittedAt":{"type":"string","description":"The datetime that the deposit transaction was committed on the chainIn."},"depositDiscoveredAt":{"type":"string","description":"The datetime that Rhino.fi first discovered the deposit transaction on the chainIn."},"depositConfirmedAt":{"type":"string","description":"The datetime that the deposit transaction reached the required number of confirmations on the chainIn."},"expectedDepositConfirmedAt":{"type":"string","description":"The datetime that the deposit transaction is expected to reach the required number of confirmations on the chainIn."},"expectedDepositConfirmedAtBlock":{"type":"integer","description":"The block on the chainIn at which the deposit transaction is expected to reach the required number of confirmations.","title":"int"},"preSwapTxHash":{"type":"string","description":"The transaction hash of the swap performed on the chainIn before bridging."},"preSwapCommittedAt":{"type":"string","description":"The datetime that the pre-bridge swap was committed on the chainIn."},"isConfirmed":{"type":"boolean","description":"Whether the deposit transaction has reached the required number of confirmations on the chainIn."},"state":{"type":"string","enum":["DEPOSIT_ACCEPTED"]}},"additionalProperties":false},{"type":"object","required":["_tag","_id","userId","chainIn","chainOut","amountIn","amountInUsd","amountOut","amountOutUsd","amountNative","amountNativeUsd","fee","feeUsd","gasFee","gasFeeUsd","platformFee","platformFeeUsd","percentageFee","percentageFeeUsd","sourceGasFee","sourceGasFeeUsd","sponsoredFees","recipient","depositor","createdAt","commitmentDate","token","usdPrice","depositTxHash","depositCommittedAt","state"],"properties":{"_tag":{"type":"string","enum":["depositAddressBridge"]},"_id":{"type":"string"},"userId":{"type":"string","description":"The projectID that the transaction is associated with."},"chainIn":{"type":"string","description":"The blockchain that the tokens were bridged from."},"chainOut":{"type":"string","description":"The blockchain that the tokens were bridged to."},"amountIn":{"type":"string","description":"The native value of the tokens that were sent on the chainIn."},"amountInUsd":{"type":"number","description":"The USD value of the tokens that were sent on the chainIn."},"amountOut":{"type":"string","description":"The native value of the tokens that were sent on the chainOut."},"amountOutUsd":{"type":"number","description":"The USD value of the tokens that were sent on the chainOut."},"amountNative":{"anyOf":[{"$ref":"#/components/schemas/BigDecimalFromString"},{"type":"null"}],"description":"The amount of native gas token (e.g. ETH, MATIC, BNB) that was delivered to the user's wallet on the destination chain as part of gas boost functionality, where Rhino.fi delivers a small amount of native gas token to the destination address, ensuring that further transactions from this address can be made immediately."},"amountNativeUsd":{"anyOf":[{"$ref":"#/components/schemas/BigDecimalFromNumber"},{"type":"null"}],"description":"The value, in USD, of amountNative."},"fee":{"type":"string","description":"The total cost of the transaction as paid by the end customer, denominated in the token."},"feeUsd":{"type":"number","description":"The total cost, in USD, of the transaction."},"gasFee":{"type":"string","description":"Any chain specific costs charged to the end customer for the chainOut part of the overall transaction. Further information about which chains have these associated costs can be found here: https://learn.rhino.fi/articles/7749894324-tron-and-solana-onchain-gas-costs. If these costs are being paid by the client then this value will be zero and the gasFee and gasFeeUsd in the sponsored fee body will be non-zero."},"gasFeeUsd":{"type":"number","description":"The gasFee value, in USD."},"platformFee":{"type":"string","description":"The resulting fee charged from the $-based Client Surcharge. This is applicable to both legacy and PAYG/Subscription clients. For legacy clients this is deducted from the tokens sent on the chainOut and will be sent to the client at month end. For PAYG/Subscription clients this will be rebated at month end."},"platformFeeUsd":{"type":"number","description":"The platformFee value, in USD."},"percentageFee":{"type":"string","description":"The resulting fee charged from the %-based Client Surcharge. This is applicable to both legacy and PAYG/Subscription clients. For legacy clients this is deducted from the tokens sent on the chainOut and will be sent to the client at month end. For PAYG/Subscription clients this will be rebated at month end."},"percentageFeeUsd":{"type":"number","description":"The percentageFee value, in USD."},"sourceGasFee":{"type":"string","description":"The cost on the chainIn to sweep the received tokens into Rhino.fi's control. For legacy clients this is deducted from the tokens sent on the chainOut. For PAYG/Subscription tier clients this is paid by Rhino.fi as part of the PAYG/Subscription monthly cost so no direct cost is passed onto the end customer, unless configured this way. This is only relevant for transactions involving a Rhino.fi Smart Deposit Address; for bridging/swapping-only activity the sourceGasFee will be paid directly by the customer within their depositing transaction."},"sourceGasFeeUsd":{"type":"number","description":"The sourceGasFee value, in USD."},"sponsoredFees":{"type":"object","required":["fee","feeUsd","gasFee","gasFeeUsd","platformFee","platformFeeUsd","percentageFee","percentageFeeUsd","sourceGasFee","sourceGasFeeUsd"],"properties":{"fee":{"type":"string","description":"The total cost of the transaction."},"feeUsd":{"type":"number","description":"The total cost of the transaction, in USD."},"gasFee":{"type":"string","description":"Any chain specific costs charged to the client for the chainOut part of the overall transaction. Further information about which chains have these associated costs can be found here: https://learn.rhino.fi/articles/7749894324-tron-and-solana-onchain-gas-costs. If these costs are being passed on to the end user then this value will be zero and the gasFee and gasFeeUsd in the main fee body will be non-zero."},"gasFeeUsd":{"type":"number","description":"The gasFee value, in USD."},"platformFee":{"type":"string","description":"The value of any additional fee levied on top by Rhino.fi and paid by the client. This is only relevant for legacy clients."},"platformFeeUsd":{"type":"number","description":"The platformFee value, in USD."},"percentageFee":{"type":"string","description":"Will be zero since this represents a charge levied on the end customer by the client. To understand the value charged to the end customer, the percentageFee value from the main fee body should be used. N.B. for PAYG/Subscription clients this is now referred to as the \"Client Surcharge\"."},"percentageFeeUsd":{"type":"number","description":"The percentageFee value, in USD."},"sourceGasFee":{"type":"string","description":"The cost on the chainIn to sweep the received tokens into Rhino.fi's control. For legacy clients this is deducted from the tokens sent on the chainOut. For PAYG/Subscription tier clients this is paid by Rhino.fi as part of the PAYG/Subscription monthly cost so no direct cost is passed onto the client, unless configured to be passed onto the end customer. This is only relevant for transactions involving a Rhino.fi Smart Deposit Address; for bridging/swapping-only activity the sourceGasFee will be paid directly by the customer within their depositing transaction."},"sourceGasFeeUsd":{"type":"number","description":"The sourceGasFee value, in USD."}},"additionalProperties":false,"description":"For both legacy and PAYG/Subscription clients, represents the fees that are paid by the client on behalf of the end customer."},"recipient":{"type":"string","description":"The address on the chainOut that received the bridged tokens."},"depositor":{"type":"string","description":"The address on the chainIn that sent the tokens for bridging."},"createdAt":{"type":"string","description":"The datetime that the bridging / bridging+swapping quote was created."},"commitmentDate":{"type":"string","description":"The datetime that the bridging / bridging+swapping quote was committed with Rhino.fi."},"speed":{"type":"string","enum":["fast","standard","slow"],"description":"Provides information about whether the transaction is expected to be completed \"fast\" (typically under 30 seconds), \"standard\" (typically under a minute) or \"slow\" (can be up to 20 minutes). For more information on our bridge processing speeds please read this article on the Rhino.fi Knowledge Base: https://learn.rhino.fi/articles/8257872655-bridge-speed."},"estimatedDuration":{"type":"number","description":"The estimated time for the transaction to complete in milliseconds.","title":"nonNegative","minimum":0},"postBridgeData":{"anyOf":[{"$ref":"#/components/schemas/ExtendedPostBridgeData"},{"$ref":"#/components/schemas/StarkwareBtcfiCampaignPostBridgeData"},{"$ref":"#/components/schemas/WirexWrapPostBridgeData"},{"$ref":"#/components/schemas/WirexWrapSandboxPostBridgeData"},{"$ref":"#/components/schemas/StarkwareBtcfiCampaignV2PostBridgeData"},{"$ref":"#/components/schemas/AaveV3SupplyPostBridgeData"},{"$ref":"#/components/schemas/RocketFoundationDepositPostBridgeData"},{"$ref":"#/components/schemas/MapleDepositPostBridgeData"},{"$ref":"#/components/schemas/EtherfiDepositPostBridgeData"}],"description":"Custom Routing Rules as configured by Rhino.fi for a specific client, e.g. to move funds after the initial bridge into a yield bearing vault. To understand more about how Routing Rules can help automate onchain actions and ensure that your funds land in an active state, please contact your Rhino.fi Customer Success Manager or speak to a member of the Rhino.fi sales team."},"flowCredits":{"type":"number","description":"The number of Flow Credits that this transaction will use from the client's agreed Rhino.fi PAYG/Subscription tier."},"token":{"type":"string","description":"The asset deposited into the Smart Deposit Address on the chainIn. Where the deposit address performs a swap, the asset received on the chainOut may differ."},"tokenOut":{"type":"string","description":"The asset received on the chainOut where the deposit address performs a swap."},"usdPrice":{"type":"number","description":"The USD price of the token at the time the quote was created."},"depositAddress":{"type":"string","description":"The Rhino.fi Smart Deposit Address that the tokens were deposited to."},"preSwap":{"$ref":"#/components/schemas/SwapQuote"},"postSwap":{"$ref":"#/components/schemas/SwapQuote"},"depositTxHash":{"type":"string","description":"The transaction hash of the deposit made on the chainIn."},"depositCommittedAt":{"type":"string","description":"The datetime that the deposit transaction was committed on the chainIn."},"depositDiscoveredAt":{"type":"string","description":"The datetime that Rhino.fi first discovered the deposit transaction on the chainIn."},"depositConfirmedAt":{"type":"string","description":"The datetime that the deposit transaction reached the required number of confirmations on the chainIn."},"expectedDepositConfirmedAt":{"type":"string","description":"The datetime that the deposit transaction is expected to reach the required number of confirmations on the chainIn."},"expectedDepositConfirmedAtBlock":{"type":"integer","description":"The block on the chainIn at which the deposit transaction is expected to reach the required number of confirmations.","title":"int"},"preSwapTxHash":{"type":"string","description":"The transaction hash of the swap performed on the chainIn before bridging."},"preSwapCommittedAt":{"type":"string","description":"The datetime that the pre-bridge swap was committed on the chainIn."},"isConfirmed":{"type":"boolean","description":"Whether the deposit transaction has reached the required number of confirmations on the chainIn."},"state":{"type":"string","enum":["ACCEPTED"]}},"additionalProperties":false},{"type":"object","required":["_tag","_id","userId","chainIn","chainOut","amountIn","amountInUsd","amountOut","amountOutUsd","amountNative","amountNativeUsd","fee","feeUsd","gasFee","gasFeeUsd","platformFee","platformFeeUsd","percentageFee","percentageFeeUsd","sourceGasFee","sourceGasFeeUsd","sponsoredFees","recipient","depositor","createdAt","commitmentDate","token","usdPrice","depositAddress","depositTxHash","depositCommittedAt","withdrawTxHash","withdrawCommittedAt","state"],"properties":{"_tag":{"type":"string","enum":["depositAddressBridge"]},"_id":{"type":"string"},"userId":{"type":"string","description":"The projectID that the transaction is associated with."},"chainIn":{"type":"string","description":"The blockchain that the tokens were bridged from."},"chainOut":{"type":"string","description":"The blockchain that the tokens were bridged to."},"amountIn":{"type":"string","description":"The native value of the tokens that were sent on the chainIn."},"amountInUsd":{"type":"number","description":"The USD value of the tokens that were sent on the chainIn."},"amountOut":{"type":"string","description":"The native value of the tokens that were sent on the chainOut."},"amountOutUsd":{"type":"number","description":"The USD value of the tokens that were sent on the chainOut."},"amountNative":{"anyOf":[{"$ref":"#/components/schemas/BigDecimalFromString"},{"type":"null"}],"description":"The amount of native gas token (e.g. ETH, MATIC, BNB) that was delivered to the user's wallet on the destination chain as part of gas boost functionality, where Rhino.fi delivers a small amount of native gas token to the destination address, ensuring that further transactions from this address can be made immediately."},"amountNativeUsd":{"anyOf":[{"$ref":"#/components/schemas/BigDecimalFromNumber"},{"type":"null"}],"description":"The value, in USD, of amountNative."},"fee":{"type":"string","description":"The total cost of the transaction as paid by the end customer, denominated in the token."},"feeUsd":{"type":"number","description":"The total cost, in USD, of the transaction."},"gasFee":{"type":"string","description":"Any chain specific costs charged to the end customer for the chainOut part of the overall transaction. Further information about which chains have these associated costs can be found here: https://learn.rhino.fi/articles/7749894324-tron-and-solana-onchain-gas-costs. If these costs are being paid by the client then this value will be zero and the gasFee and gasFeeUsd in the sponsored fee body will be non-zero."},"gasFeeUsd":{"type":"number","description":"The gasFee value, in USD."},"platformFee":{"type":"string","description":"The resulting fee charged from the $-based Client Surcharge. This is applicable to both legacy and PAYG/Subscription clients. For legacy clients this is deducted from the tokens sent on the chainOut and will be sent to the client at month end. For PAYG/Subscription clients this will be rebated at month end."},"platformFeeUsd":{"type":"number","description":"The platformFee value, in USD."},"percentageFee":{"type":"string","description":"The resulting fee charged from the %-based Client Surcharge. This is applicable to both legacy and PAYG/Subscription clients. For legacy clients this is deducted from the tokens sent on the chainOut and will be sent to the client at month end. For PAYG/Subscription clients this will be rebated at month end."},"percentageFeeUsd":{"type":"number","description":"The percentageFee value, in USD."},"sourceGasFee":{"type":"string","description":"The cost on the chainIn to sweep the received tokens into Rhino.fi's control. For legacy clients this is deducted from the tokens sent on the chainOut. For PAYG/Subscription tier clients this is paid by Rhino.fi as part of the PAYG/Subscription monthly cost so no direct cost is passed onto the end customer, unless configured this way. This is only relevant for transactions involving a Rhino.fi Smart Deposit Address; for bridging/swapping-only activity the sourceGasFee will be paid directly by the customer within their depositing transaction."},"sourceGasFeeUsd":{"type":"number","description":"The sourceGasFee value, in USD."},"sponsoredFees":{"type":"object","required":["fee","feeUsd","gasFee","gasFeeUsd","platformFee","platformFeeUsd","percentageFee","percentageFeeUsd","sourceGasFee","sourceGasFeeUsd"],"properties":{"fee":{"type":"string","description":"The total cost of the transaction."},"feeUsd":{"type":"number","description":"The total cost of the transaction, in USD."},"gasFee":{"type":"string","description":"Any chain specific costs charged to the client for the chainOut part of the overall transaction. Further information about which chains have these associated costs can be found here: https://learn.rhino.fi/articles/7749894324-tron-and-solana-onchain-gas-costs. If these costs are being passed on to the end user then this value will be zero and the gasFee and gasFeeUsd in the main fee body will be non-zero."},"gasFeeUsd":{"type":"number","description":"The gasFee value, in USD."},"platformFee":{"type":"string","description":"The value of any additional fee levied on top by Rhino.fi and paid by the client. This is only relevant for legacy clients."},"platformFeeUsd":{"type":"number","description":"The platformFee value, in USD."},"percentageFee":{"type":"string","description":"Will be zero since this represents a charge levied on the end customer by the client. To understand the value charged to the end customer, the percentageFee value from the main fee body should be used. N.B. for PAYG/Subscription clients this is now referred to as the \"Client Surcharge\"."},"percentageFeeUsd":{"type":"number","description":"The percentageFee value, in USD."},"sourceGasFee":{"type":"string","description":"The cost on the chainIn to sweep the received tokens into Rhino.fi's control. For legacy clients this is deducted from the tokens sent on the chainOut. For PAYG/Subscription tier clients this is paid by Rhino.fi as part of the PAYG/Subscription monthly cost so no direct cost is passed onto the client, unless configured to be passed onto the end customer. This is only relevant for transactions involving a Rhino.fi Smart Deposit Address; for bridging/swapping-only activity the sourceGasFee will be paid directly by the customer within their depositing transaction."},"sourceGasFeeUsd":{"type":"number","description":"The sourceGasFee value, in USD."}},"additionalProperties":false,"description":"For both legacy and PAYG/Subscription clients, represents the fees that are paid by the client on behalf of the end customer."},"recipient":{"type":"string","description":"The address on the chainOut that received the bridged tokens."},"depositor":{"type":"string","description":"The address on the chainIn that sent the tokens for bridging."},"createdAt":{"type":"string","description":"The datetime that the bridging / bridging+swapping quote was created."},"commitmentDate":{"type":"string","description":"The datetime that the bridging / bridging+swapping quote was committed with Rhino.fi."},"speed":{"type":"string","enum":["fast","standard","slow"],"description":"Provides information about whether the transaction is expected to be completed \"fast\" (typically under 30 seconds), \"standard\" (typically under a minute) or \"slow\" (can be up to 20 minutes). For more information on our bridge processing speeds please read this article on the Rhino.fi Knowledge Base: https://learn.rhino.fi/articles/8257872655-bridge-speed."},"estimatedDuration":{"type":"number","description":"The estimated time for the transaction to complete in milliseconds.","title":"nonNegative","minimum":0},"postBridgeData":{"anyOf":[{"$ref":"#/components/schemas/ExtendedPostBridgeData"},{"$ref":"#/components/schemas/StarkwareBtcfiCampaignPostBridgeData"},{"$ref":"#/components/schemas/WirexWrapPostBridgeData"},{"$ref":"#/components/schemas/WirexWrapSandboxPostBridgeData"},{"$ref":"#/components/schemas/StarkwareBtcfiCampaignV2PostBridgeData"},{"$ref":"#/components/schemas/AaveV3SupplyPostBridgeData"},{"$ref":"#/components/schemas/RocketFoundationDepositPostBridgeData"},{"$ref":"#/components/schemas/MapleDepositPostBridgeData"},{"$ref":"#/components/schemas/EtherfiDepositPostBridgeData"}],"description":"Custom Routing Rules as configured by Rhino.fi for a specific client, e.g. to move funds after the initial bridge into a yield bearing vault. To understand more about how Routing Rules can help automate onchain actions and ensure that your funds land in an active state, please contact your Rhino.fi Customer Success Manager or speak to a member of the Rhino.fi sales team."},"flowCredits":{"type":"number","description":"The number of Flow Credits that this transaction will use from the client's agreed Rhino.fi PAYG/Subscription tier."},"token":{"type":"string","description":"The asset deposited into the Smart Deposit Address on the chainIn. Where the deposit address performs a swap, the asset received on the chainOut may differ."},"tokenOut":{"type":"string","description":"The asset received on the chainOut where the deposit address performs a swap."},"usdPrice":{"type":"number","description":"The USD price of the token at the time the quote was created."},"depositAddress":{"type":"string","description":"The Rhino.fi Smart Deposit Address that the tokens were deposited to."},"preSwap":{"$ref":"#/components/schemas/SwapQuote"},"postSwap":{"$ref":"#/components/schemas/SwapQuote"},"depositTxHash":{"type":"string","description":"The transaction hash of the deposit made on the chainIn."},"depositCommittedAt":{"type":"string","description":"The datetime that the deposit transaction was committed on the chainIn."},"depositDiscoveredAt":{"type":"string","description":"The datetime that Rhino.fi first discovered the deposit transaction on the chainIn."},"depositConfirmedAt":{"type":"string","description":"The datetime that the deposit transaction reached the required number of confirmations on the chainIn."},"expectedDepositConfirmedAt":{"type":"string","description":"The datetime that the deposit transaction is expected to reach the required number of confirmations on the chainIn."},"expectedDepositConfirmedAtBlock":{"type":"integer","description":"The block on the chainIn at which the deposit transaction is expected to reach the required number of confirmations.","title":"int"},"preSwapTxHash":{"type":"string","description":"The transaction hash of the swap performed on the chainIn before bridging."},"preSwapCommittedAt":{"type":"string","description":"The datetime that the pre-bridge swap was committed on the chainIn."},"isConfirmed":{"type":"boolean","description":"Whether the deposit transaction has reached the required number of confirmations on the chainIn."},"withdrawTxHash":{"type":"string","description":"The transaction hash of the withdrawal of the tokens to the recipient on the chainOut."},"withdrawCommittedAt":{"type":"string","description":"The datetime that the withdrawal transaction was committed on the chainOut."},"state":{"type":"string","enum":["EXECUTED"]}},"additionalProperties":false}]},"createdAt":{"type":"string","description":"The datetime that the bridging / bridging+swapping quote was created."},"_tag":{"type":"string","enum":["accepted"]}},"additionalProperties":false},"BigDecimalFromString":{"type":"string","description":"a string to be decoded into a BigDecimal"},"BigDecimalFromNumber":{"type":"number","description":"a number to be decoded into a BigDecimal"},"SwapQuote":{"type":"object","required":["tokenIn","tokenOut","amountIn","amountInUsd","amountOut","amountOutUsd","minAmountOut","minAmountOutUsd","aggregator"],"properties":{"tokenIn":{"type":"string","description":"The asset that was swapped from."},"tokenOut":{"type":"string","description":"The asset that was swapped to."},"amountIn":{"type":"string","description":"The native value of the tokens that were swapped from."},"amountInUsd":{"type":"number","description":"The USD value of the tokens that were swapped from."},"amountOut":{"type":"string","description":"The native value of the tokens that were received from the swap."},"amountOutUsd":{"type":"number","description":"The USD value of the tokens that were received from the swap."},"minAmountOut":{"type":"string","description":"The minimum native value of tokens guaranteed to be received from the swap, after slippage."},"minAmountOutUsd":{"type":"number","description":"The USD value of the minAmountOut."},"aggregator":{"$comment":"/schemas/enums","anyOf":[{"type":"string","title":"KYBERSWAP","enum":["KYBERSWAP"]},{"type":"string","title":"RHINO","enum":["RHINO"]},{"type":"string","title":"ONEINCH","enum":["ONEINCH"]},{"type":"string","title":"BEBOP","enum":["BEBOP"]}],"description":"The swap aggregator used to execute the swap."}},"additionalProperties":false,"description":"Details of the swap performed on the chainIn before bridging, where one was required."},"InvalidDateRange":{"type":"object","required":["message","_tag"],"properties":{"message":{"type":"string"},"_tag":{"type":"string","enum":["InvalidDateRange"]}},"additionalProperties":false},"PublicDepositAddressStatusResponse":{"type":"object","required":["depositAddress","depositChain","destinationChain","destinationAddress","lastBridges","isPaused"],"properties":{"depositAddress":{"type":"string","description":"The Rhino.fi Smart Deposit Address that the deposit has been sent to."},"depositChain":{"type":"string","description":"The blockchain where the deposit was sent to."},"destinationChain":{"type":"string","description":"The blockchain where the tokenOut will be bridged to."},"destinationAddress":{"type":"string","description":"The address where tokenOut will be bridged to."},"lastBridges":{"type":"array","items":{"$ref":"#/components/schemas/PublicDepositAddressStatusBridge"},"description":"An array of bridge transactions associated with this deposit address, including accepted, failed, and rejected transactions."},"isPaused":{"type":"boolean","description":"A paused deposit address will reject every deposit made to it."},"chainMetadata":{"$ref":"#/components/schemas/ChainMetadata"}},"additionalProperties":false},"PublicDepositAddressStatusBridge":{"type":"object","required":["depositTxHash","depositTxTimestamp","tokenSymbol","depositAmount","sender","status"],"properties":{"depositTxHash":{"type":"string","description":"The uniquely identifiable transaction hash for the deposit transaction into the depositAddress."},"depositTxTimestamp":{"type":"string","description":"The datetime of the deposit transaction into the depositAddress."},"tokenSymbol":{"type":"string","description":"The identifier of the token on the given chain."},"depositAmount":{"type":"string","description":"The value in native asset of the tokenSymbol that has been received into the Smart Deposit Address."},"sender":{"type":"string","description":"The address on the depositChain that sent the tokens for bridging / bridging and swapping."},"status":{"anyOf":[{"type":"object","required":["_tag","reason"],"properties":{"_tag":{"type":"string","enum":["REJECTED"]},"reason":{"type":"string","enum":["OVER_MAX","UNDER_MIN","OPERATION_UNAVAILABLE","TERMINAL_PROCESSING_ISSUE","NO_ROUTE_FOUND","UNSUPPORTED_TOKEN","SDA_PAUSED","SETTLEMENT_REJECTED"],"description":"Further information about why a transaction was rejected. OVER_MAX: the amount deposited was above the maximum value accepted for that token for the Smart Deposit Address (this value can be found via the GET /sda/deposit-addresses/{depositChain}/{destinationChain}/supported-tokens endpoint). UNDER_MIN: the amount deposited was below the minimum value accepted for that token for the Smart Deposit Address (same endpoint to find the value). TERMINAL_PROCESSING_ISSUE: an issue within the Rhino.fi system meant the required swapping and/or bridging activity was not completed; please reach out to your Rhino.fi customer success manager for further information. NO_ROUTE_FOUND: no compatible bridge and/or swap route was able to be found and executed; please reach out to your Rhino.fi customer success manager for further information. UNSUPPORTED_TOKEN: the token that was deposited is not supported for this Smart Deposit Address. SDA_PAUSED: the Smart Deposit Address was paused and not processing deposits at the time the deposit was received. OPERATION_UNAVAILABLE: the deposit could not be processed because the operation was unavailable at the time, for example due to a compliance / AML hold; please reach out to your Rhino.fi customer success manager for further information."}},"additionalProperties":false},{"type":"object","required":["_tag"],"properties":{"_tag":{"type":"string","enum":["RETRYING"]},"originalErrorTag":{"type":"string"}},"additionalProperties":false},{"type":"object","required":["_tag","amountOut","fee"],"properties":{"_tag":{"type":"string","enum":["ACCEPTED"]},"amountOut":{"type":"string","description":"The value of the token sent on the destination chain."},"fee":{"type":"string","description":"The total fee charged for the transaction, denominated in the token received on the destination chain."}},"additionalProperties":false},{"type":"object","required":["_tag","withdrawTxHash","withdrawTxTimestamp","amountOut","fee"],"properties":{"_tag":{"type":"string","enum":["EXECUTED"]},"withdrawTxHash":{"type":"string","description":"The transaction hash of the withdrawal transaction of the tokenOut to the destinationAddress."},"withdrawTxTimestamp":{"type":"string","description":"The datetime that the withdrawal transaction of the tokenOut to the destinationAddress was made by Rhino.fi."},"amountOut":{"type":"string","description":"The value of the token sent on the destination chain."},"fee":{"type":"string","description":"The total fee charged for the transaction, denominated in the token received on the destination chain."}},"additionalProperties":false}],"description":"The state of the deposit transaction."}},"additionalProperties":false},"CompletedSdaRefundApi":{"type":"object","required":["refundId","depositAddress","depositChain","recipient","trigger","txHash","txTimestamp"],"properties":{"refundId":{"type":"string","description":"The unique identifier of the refund.","title":"nonEmptyString","minLength":1},"depositAddress":{"anyOf":[{"$ref":"#/components/schemas/EthAddressSchema"},{"$ref":"#/components/schemas/TronAddressBasic"},{"$ref":"#/components/schemas/SolanaAddress"},{"$ref":"#/components/schemas/StellarMuxedAddress"},{"$ref":"#/components/schemas/BitcoinAddressSchema"}],"description":"The Rhino.fi Smart Deposit Address that the refunded tokens were sent to."},"depositChain":{"type":"string","description":"The blockchain where the deposit was sent to.","title":"nonEmptyString","minLength":1},"recipient":{"anyOf":[{"$ref":"#/components/schemas/EthAddressSchema"},{"$ref":"#/components/schemas/TronAddressBasic"},{"$ref":"#/components/schemas/SolanaAddress"},{"$ref":"#/components/schemas/StellarMuxedAddress"},{"$ref":"#/components/schemas/BitcoinAddressSchema"}],"description":"The address that the refund was sent to."},"trigger":{"anyOf":[{"type":"object","required":["_tag","nativeToken","amountWei"],"properties":{"_tag":{"type":"string","enum":["UNSUPPORTED_TOKEN"]},"nativeToken":{"type":"boolean","description":"Whether the refunded asset is the chain's native token."},"amountWei":{"type":"string","description":"The value of the tokens that were refunded, denominated in the smallest unit of the token."},"tokenAddress":{"type":"string","description":"The contract address of the refunded token.","title":"nonEmptyString","minLength":1},"tokenSymbol":{"type":"string","description":"The ticker of the refunded token.","title":"nonEmptyString","minLength":1},"amount":{"type":"string","description":"The native value of the tokens that were refunded."},"amountUsd":{"type":"string","description":"The USD value of the tokens that were refunded."}},"additionalProperties":false},{"type":"object","required":["_tag","rejectedDepositAddressBridgeId","nativeToken","amountWei","amount","amountUsd","tokenAddress","tokenSymbol"],"properties":{"_tag":{"type":"string","enum":["REJECTED_BRIDGE"]},"rejectedDepositAddressBridgeId":{"type":"string","description":"The identifier of the rejected bridge transaction that triggered this refund."},"nativeToken":{"type":"boolean","description":"Whether the refunded asset is the chain's native token."},"amountWei":{"type":"string","description":"The value of the tokens that were refunded, denominated in the smallest unit of the token."},"amount":{"type":"string","description":"The native value of the tokens that were refunded."},"amountUsd":{"type":"string","description":"The USD value of the tokens that were refunded."},"tokenAddress":{"type":"string","description":"The contract address of the refunded token.","title":"nonEmptyString","minLength":1},"tokenSymbol":{"type":"string","description":"The ticker of the refunded token.","title":"nonEmptyString","minLength":1}},"additionalProperties":false}],"description":"The reason that the refund was made."},"originalDepositTxHash":{"type":"string","description":"The transaction hash of the original deposit that was refunded.","title":"nonEmptyString","minLength":1},"txHash":{"type":"string","description":"The transaction hash of the refund that was made.","title":"nonEmptyString","minLength":1},"txTimestamp":{"type":"string","description":"The datetime that the refund transaction was made."}},"additionalProperties":false},"SupportedTokensResponse":{"type":"object","required":["supportedTokens"],"properties":{"supportedTokens":{"type":"array","items":{"type":"object","required":["symbol","address","maxDepositLimitUsd","minDepositLimitUsd"],"properties":{"symbol":{"type":"string","description":"The ticker of the asset, e.g. \"ETH\", \"USDC\".","title":"nonEmptyString","minLength":1},"address":{"type":"string","description":"The token contract address on the depositChain.","title":"nonEmptyString","minLength":1},"maxDepositLimitUsd":{"type":"number","description":"The maximum deposit amount in USD for this token.","title":"nonNegative","minimum":0},"minDepositLimitUsd":{"type":"number","description":"The minimum deposit amount in USD for this token.","title":"nonNegative","minimum":0}},"additionalProperties":false},"description":"The assets that can be deposited to the depositAddress for this depositChain."}},"additionalProperties":false},"SearchDepositAddressResponse":{"type":"object","required":["nextPageToken","items"],"properties":{"nextPageToken":{"anyOf":[{"$ref":"#/components/schemas/NonEmptyString"},{"type":"null"}],"description":"An opaque token identifying the next page of results, to be passed in the `pageToken` query param to fetch it. Null when there are no further pages."},"items":{"type":"array","items":{"type":"object","required":["depositChain","depositAddress","destinationChain","isPaused","userId"],"properties":{"depositChain":{"type":"string","description":"The blockchain that the Smart Deposit Address is on and that deposits should be sent to, e.g. \"ETHEREUM\".","title":"nonEmptyString","minLength":1},"depositAddress":{"type":"string","description":"The Rhino.fi Smart Deposit Address that the deposit has been sent to.","title":"nonEmptyString","minLength":1},"destinationChain":{"type":"string","description":"The blockchain that the received tokens will be bridged to.","title":"nonEmptyString","minLength":1},"destinationAddress":{"type":"string","description":"The blockchain address that the received tokens will be bridged / bridged and swapped to.","title":"nonEmptyString","minLength":1},"addressNote":{"type":"string","description":"A note or label for the deposit address as a reference, e.g. \"ClientID123456\" (max 80 characters).","title":"maxLength(80)","maxLength":80},"isPaused":{"type":"boolean","description":"Whether this deposit address is currently paused. Paused addresses reject incoming deposits until they are unpaused."},"postBridgeData":{"anyOf":[{"$ref":"#/components/schemas/ExtendedPostBridgeData"},{"$ref":"#/components/schemas/StarkwareBtcfiCampaignPostBridgeData"},{"$ref":"#/components/schemas/WirexWrapPostBridgeData"},{"$ref":"#/components/schemas/WirexWrapSandboxPostBridgeData"},{"$ref":"#/components/schemas/StarkwareBtcfiCampaignV2PostBridgeData"},{"$ref":"#/components/schemas/AaveV3SupplyPostBridgeData"},{"$ref":"#/components/schemas/RocketFoundationDepositPostBridgeData"},{"$ref":"#/components/schemas/MapleDepositPostBridgeData"},{"$ref":"#/components/schemas/EtherfiDepositPostBridgeData"}],"description":"Custom Routing Rules as configured by Rhino.fi for specific clients, e.g. to move funds after the initial bridge into a yield bearing vault. To understand more about how Routing Rules can help automate onchain actions and ensure that your funds land in an active state, please contact your Rhino.fi Customer Success Manager or speak to a member of the Rhino.fi sales team."},"tokenOut":{"type":"string","description":"The token that will be received on the destinationChain."},"refundAddress":{"type":"string","description":"The address that any funds would be returned to in the case that a transaction to this Smart Deposit Address is unsuccessful.","title":"nonEmptyString","minLength":1},"bridgeIfNotSwappable":{"type":"boolean","description":"If true, deposited tokens that cannot be swapped to the tokenOut will be bridged instead of causing a failed transaction. If false, any deposited tokens that cannot be swapped to the tokenOut will cause the transaction to fail. Must be used in conjunction with the tokenOut parameter."},"chainMetadata":{"$ref":"#/components/schemas/ChainMetadata"},"_tag":{"type":"string","enum":["legacy"]},"userId":{"type":"string","description":"The projectID that this Smart Deposit Address is associated with."},"webhookUrl":{"type":"string","description":"The URL that success or failure events related to this Smart Deposit Address will be sent to.","title":"nonEmptyString","minLength":1}},"additionalProperties":false},"description":"The Smart Deposit Addresses matching the given search criteria."}},"additionalProperties":false},"SdaRateLimitStatusResponse":{"type":"object","required":["totalLimit","totalCreated","windowLimit"],"properties":{"totalLimit":{"anyOf":[{"type":"object","required":["_tag","value"],"properties":{"_tag":{"type":"string","enum":["limited"]},"value":{"$ref":"#/components/schemas/NonNegative","description":"The total number of Smart Deposit Addresses that can be generated by the user.","title":"int","type":"integer"}},"additionalProperties":false},{"type":"object","required":["_tag"],"properties":{"_tag":{"type":"string","enum":["unlimited"]}},"additionalProperties":false}],"description":"The total number of Smart Deposit Addresses that can be generated by the user."},"totalCreated":{"$ref":"#/components/schemas/NonNegative","description":"The total number of Smart Deposit Addresses created by the user (lifetime count).","title":"int","type":"integer"},"windowLimit":{"anyOf":[{"type":"object","required":["_tag","value","durationMs"],"properties":{"_tag":{"type":"string","enum":["limited"]},"value":{"$ref":"#/components/schemas/NonNegative","description":"The maximum number of Smart Deposit Addresses allowed to be generated within the time window.","title":"int","type":"integer"},"durationMs":{"type":"number","description":"Rolling time window duration in milliseconds.","title":"nonNegative","minimum":0}},"additionalProperties":false},{"type":"object","required":["_tag"],"properties":{"_tag":{"type":"string","enum":["unlimited"]}},"additionalProperties":false}],"description":"Any time-window limits also set on the user for Smart Deposit Address creation."},"windowCreated":{"$ref":"#/components/schemas/NonNegative","description":"The number of Smart Deposit Addresses created by the user within the current time window.","title":"int","type":"integer"}},"additionalProperties":false}},"securitySchemes":{"bearer":{"description":"JWT token for authentication","type":"http","scheme":"bearer"},"legacyApiKey":{"type":"apiKey","name":"authorization","in":"header"}}},"security":[],"tags":[{"name":"depositAddresses"}],"servers":[{"url":"https://api.rhino.fi/sda"}]}