{"openapi":"3.1.0","info":{"title":"Api","version":"0.0.1"},"paths":{"/public-key":{"get":{"tags":["signature"],"operationId":"signature.publicKey","parameters":[],"security":[],"responses":{"200":{"description":"a string","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpApiDecodeError"}}}}},"description":"Rhino.fi public key used to verify webhook events signatures.","summary":"Rhino.fi Webhook Public Key"}},"/user-events-cursor":{"get":{"tags":["user-events"],"operationId":"user-events.user-events-cursor","parameters":[{"name":"sinceTimestamp","in":"query","schema":{"type":"string","description":"The date and time that events should be returned from, in milliseconds since epoch. Filtering is inclusive: events that occurred at or after this time are included."},"required":true,"description":"The date and time that events should be returned from, in milliseconds since epoch. Filtering is inclusive: events that occurred at or after this time are included."},{"name":"pageToken","in":"query","schema":{"$ref":"#/components/schemas/PageToken"},"required":false},{"name":"pageSize","in":"query","schema":{"type":"string","description":"The number of results to display per pageToken, e.g. \"25\". Defaults to 20 and cannot exceed 50.","title":"lessThanOrEqualTo(50)"},"required":false,"description":"The number of results to display per pageToken, e.g. \"25\". Defaults to 20 and cannot exceed 50."}],"security":[{"bearer":[]},{"legacyApiKey":[]}],"responses":{"200":{"description":"WebhookUserEventsCursorResponse","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookUserEventsCursorResponse"}}}},"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 provides the webhook events generated for your project since a given point in time, using cursor-based pagination. It can be used to reconcile or replay events, for example where your webhook endpoint was unavailable at the time an event was sent.","summary":"Obtain a list of previously generated webhook events"}}},"components":{"schemas":{"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"}]},"PageToken":{"type":"string","description":"Cursor returned as nextPageToken by a previous page","pattern":"^[0-9a-f]{24}$"},"WebhookUserEventsCursorResponse":{"type":"object","required":["items","nextPageToken"],"properties":{"items":{"type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/BridgePendingEvent"},{"$ref":"#/components/schemas/BridgeAcceptedEvent"},{"$ref":"#/components/schemas/BridgeCancelledEvent"},{"$ref":"#/components/schemas/BridgeExecutedEvent"},{"$ref":"#/components/schemas/BridgeRefundedEvent"},{"$ref":"#/components/schemas/DepositAddressCreatedEvent"},{"$ref":"#/components/schemas/DepositAddressDepositDetectedEvent"},{"$ref":"#/components/schemas/DepositAddressDepositConfirmingEvent"},{"$ref":"#/components/schemas/DepositAddressBridgeRejectedEvent"},{"$ref":"#/components/schemas/DepositAddressBridgeDelayedEvent"},{"$ref":"#/components/schemas/RoutingDepositAddressCreatedEvent"},{"$ref":"#/components/schemas/RoutingDepositAddressBridgeRejectedEvent"},{"$ref":"#/components/schemas/RoutingDepositAddressBridgeDelayedEvent"},{"$ref":"#/components/schemas/CompletedSdaRefundEvent"},{"$ref":"#/components/schemas/WebhookTestEvent"}]},"description":"The webhook events for the project that occurred after the given sinceTimestamp."},"nextPageToken":{"anyOf":[{"$ref":"#/components/schemas/NonEmptyString"},{"type":"null"}],"description":"The next page of results that can be used within the pageToken query param for further results. Null when there are no further results."}},"additionalProperties":false},"BridgePendingEvent":{"anyOf":[{"type":"object","required":["_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","_tag","type"],"properties":{"_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 being bridged, sent on the chainIn and received on the chainOut."},"usdPrice":{"type":"number","description":"The USD price of the token at the time the quote was created."},"_tag":{"type":"string","enum":["BRIDGE_PENDING"]},"type":{"type":"string","enum":["bridge"]}},"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","tokenIn","tokenOut","minAmountOut","minAmountOutUsd","usdPriceTokenIn","usdPriceTokenOut","type"],"properties":{"_tag":{"type":"string","enum":["BRIDGE_PENDING"]},"_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."},"tokenIn":{"type":"string","description":"The asset that was sent on the chainIn."},"tokenOut":{"type":"string","description":"The asset that was received on the chainOut."},"minAmountOut":{"type":"string","description":"The minimum native value of tokenOut guaranteed to be received on the chainOut, after slippage."},"minAmountOutUsd":{"type":"number","description":"The USD value of the minAmountOut."},"usdPriceTokenIn":{"type":"number","description":"The USD price of the tokenIn at the time the quote was created."},"usdPriceTokenOut":{"type":"number","description":"The USD price of the tokenOut at the time the quote was created."},"preSwap":{"$ref":"#/components/schemas/SwapQuote"},"postSwap":{"$ref":"#/components/schemas/SwapQuote"},"mode":{"type":"string","enum":["pay","receive"],"description":"Whether the amount represented the sending (\"pay\") or receiving (\"receive\") amount when the quote was generated."},"isAtomicSwap":{"type":"boolean","description":"Whether the transaction was executed as an atomic swap."},"swapFeeMultiplier":{"type":"string","description":"The multiplier applied to the swap fee for this transaction."},"type":{"type":"string","enum":["bridgeSwap"]}},"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"},"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},"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."},"BridgeAcceptedEvent":{"anyOf":[{"type":"object","required":["_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","_tag","depositTxHash","depositCommittedAt","type"],"properties":{"_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 being bridged, sent on the chainIn and received on the chainOut."},"usdPrice":{"type":"number","description":"The USD price of the token at the time the quote was created."},"_tag":{"type":"string","enum":["BRIDGE_ACCEPTED"]},"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."},"type":{"type":"string","enum":["bridge"]}},"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","tokenIn","tokenOut","minAmountOut","minAmountOutUsd","usdPriceTokenIn","usdPriceTokenOut","depositTxHash","depositCommittedAt","type"],"properties":{"_tag":{"type":"string","enum":["BRIDGE_ACCEPTED"]},"_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."},"tokenIn":{"type":"string","description":"The asset that was sent on the chainIn."},"tokenOut":{"type":"string","description":"The asset that was received on the chainOut."},"minAmountOut":{"type":"string","description":"The minimum native value of tokenOut guaranteed to be received on the chainOut, after slippage."},"minAmountOutUsd":{"type":"number","description":"The USD value of the minAmountOut."},"usdPriceTokenIn":{"type":"number","description":"The USD price of the tokenIn at the time the quote was created."},"usdPriceTokenOut":{"type":"number","description":"The USD price of the tokenOut at the time the quote was created."},"preSwap":{"$ref":"#/components/schemas/SwapQuote"},"postSwap":{"$ref":"#/components/schemas/SwapQuote"},"mode":{"type":"string","enum":["pay","receive"],"description":"Whether the amount represented the sending (\"pay\") or receiving (\"receive\") amount when the quote was generated."},"isAtomicSwap":{"type":"boolean","description":"Whether the transaction was executed as an atomic swap."},"swapFeeMultiplier":{"type":"string","description":"The multiplier applied to the swap fee for this transaction."},"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."},"type":{"type":"string","enum":["bridgeSwap"]}},"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","type"],"properties":{"_tag":{"type":"string","enum":["BRIDGE_ACCEPTED"]},"_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"},"paymentIntentId":{"$ref":"#/components/schemas/PaymentIntentId"},"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."},"type":{"type":"string","enum":["depositAddressBridge"]},"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}},"additionalProperties":false}]},"PaymentIntentId":{"type":"string","description":"Identifier of the payment intent a payment deposit address settles.","title":"nonEmptyString","minLength":1},"BridgeCancelledEvent":{"anyOf":[{"type":"object","required":["_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","_tag","cancelledAt"],"properties":{"_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 being bridged, sent on the chainIn and received on the chainOut."},"usdPrice":{"type":"number","description":"The USD price of the token at the time the quote was created."},"_tag":{"type":"string","enum":["BRIDGE_CANCELLED"]},"cancelledAt":{"type":"string","description":"The datetime that the transaction was cancelled."}},"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","tokenIn","tokenOut","minAmountOut","minAmountOutUsd","usdPriceTokenIn","usdPriceTokenOut","cancelledAt"],"properties":{"_tag":{"type":"string","enum":["BRIDGE_CANCELLED"]},"_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."},"tokenIn":{"type":"string","description":"The asset that was sent on the chainIn."},"tokenOut":{"type":"string","description":"The asset that was received on the chainOut."},"minAmountOut":{"type":"string","description":"The minimum native value of tokenOut guaranteed to be received on the chainOut, after slippage."},"minAmountOutUsd":{"type":"number","description":"The USD value of the minAmountOut."},"usdPriceTokenIn":{"type":"number","description":"The USD price of the tokenIn at the time the quote was created."},"usdPriceTokenOut":{"type":"number","description":"The USD price of the tokenOut at the time the quote was created."},"preSwap":{"$ref":"#/components/schemas/SwapQuote"},"postSwap":{"$ref":"#/components/schemas/SwapQuote"},"mode":{"type":"string","enum":["pay","receive"],"description":"Whether the amount represented the sending (\"pay\") or receiving (\"receive\") amount when the quote was generated."},"isAtomicSwap":{"type":"boolean","description":"Whether the transaction was executed as an atomic swap."},"swapFeeMultiplier":{"type":"string","description":"The multiplier applied to the swap fee for this transaction."},"cancelledAt":{"type":"string","description":"The datetime that the transaction was cancelled."}},"additionalProperties":false}]},"BridgeExecutedEvent":{"anyOf":[{"type":"object","required":["_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","_tag","depositTxHash","depositCommittedAt","withdrawTxHash","withdrawCommittedAt","type"],"properties":{"_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 being bridged, sent on the chainIn and received on the chainOut."},"usdPrice":{"type":"number","description":"The USD price of the token at the time the quote was created."},"_tag":{"type":"string","enum":["BRIDGE_EXECUTED"]},"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."},"type":{"type":"string","enum":["bridge"]}},"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","tokenIn","tokenOut","minAmountOut","minAmountOutUsd","usdPriceTokenIn","usdPriceTokenOut","depositTxHash","depositCommittedAt","withdrawTxHash","withdrawCommittedAt","type"],"properties":{"_tag":{"type":"string","enum":["BRIDGE_EXECUTED"]},"_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."},"tokenIn":{"type":"string","description":"The asset that was sent on the chainIn."},"tokenOut":{"type":"string","description":"The asset that was received on the chainOut."},"minAmountOut":{"type":"string","description":"The minimum native value of tokenOut guaranteed to be received on the chainOut, after slippage."},"minAmountOutUsd":{"type":"number","description":"The USD value of the minAmountOut."},"usdPriceTokenIn":{"type":"number","description":"The USD price of the tokenIn at the time the quote was created."},"usdPriceTokenOut":{"type":"number","description":"The USD price of the tokenOut at the time the quote was created."},"preSwap":{"$ref":"#/components/schemas/SwapQuote"},"postSwap":{"$ref":"#/components/schemas/SwapQuote"},"mode":{"type":"string","enum":["pay","receive"],"description":"Whether the amount represented the sending (\"pay\") or receiving (\"receive\") amount when the quote was generated."},"isAtomicSwap":{"type":"boolean","description":"Whether the transaction was executed as an atomic swap."},"swapFeeMultiplier":{"type":"string","description":"The multiplier applied to the swap fee for this transaction."},"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."},"type":{"type":"string","enum":["bridgeSwap"]}},"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","type"],"properties":{"_tag":{"type":"string","enum":["BRIDGE_EXECUTED"]},"_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"},"paymentIntentId":{"$ref":"#/components/schemas/PaymentIntentId"},"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."},"type":{"type":"string","enum":["depositAddressBridge"]},"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}},"additionalProperties":false}]},"BridgeRefundedEvent":{"type":"object","required":["depositTxHash","depositCommittedAt","reason","_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","tokenIn","tokenOut","minAmountOut","minAmountOutUsd","usdPriceTokenIn","usdPriceTokenOut","refundTxHash","refundTxTimestamp","refundedToken","refundedAmount","refundedChain"],"properties":{"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."},"reason":{"type":"string","description":"The reason that the transaction was rejected."},"additionalData":{"anyOf":[{"type":"object","required":[],"properties":{},"additionalProperties":{"anyOf":[{"type":"string"},{"type":"number"}]}},{"type":"null"}]},"_tag":{"type":"string","enum":["BRIDGE_REFUNDED"]},"_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."},"tokenIn":{"type":"string","description":"The asset that was sent on the chainIn."},"tokenOut":{"type":"string","description":"The asset that was received on the chainOut."},"minAmountOut":{"type":"string","description":"The minimum native value of tokenOut guaranteed to be received on the chainOut, after slippage."},"minAmountOutUsd":{"type":"number","description":"The USD value of the minAmountOut."},"usdPriceTokenIn":{"type":"number","description":"The USD price of the tokenIn at the time the quote was created."},"usdPriceTokenOut":{"type":"number","description":"The USD price of the tokenOut at the time the quote was created."},"preSwap":{"$ref":"#/components/schemas/SwapQuote"},"postSwap":{"$ref":"#/components/schemas/SwapQuote"},"mode":{"type":"string","enum":["pay","receive"],"description":"Whether the amount represented the sending (\"pay\") or receiving (\"receive\") amount when the quote was generated."},"isAtomicSwap":{"type":"boolean","description":"Whether the transaction was executed as an atomic swap."},"swapFeeMultiplier":{"type":"string","description":"The multiplier applied to the swap fee for this transaction."},"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."},"refundTxHash":{"type":"string","description":"The transaction hash of the refund that was made.","title":"nonEmptyString","minLength":1},"refundTxTimestamp":{"type":"string","description":"The datetime that the refund transaction was made."},"refundedToken":{"type":"string","description":"The asset that was refunded.","title":"nonEmptyString","minLength":1},"refundedAmount":{"type":"string","description":"The native value of the tokens that were refunded."},"refundedChain":{"type":"string","description":"The blockchain that the refund was made on.","title":"nonEmptyString","minLength":1}},"additionalProperties":false},"DepositAddressCreatedEvent":{"type":"object","required":["depositChain","depositAddress","destinationChain","_tag"],"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},"tokenOut":{"type":"string","description":"The token that will be received on the destinationChain."},"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."},"addressNote":{"type":"string","description":"A note or label for the deposit address as a reference.","title":"maxLength(80)","maxLength":80},"_tag":{"type":"string","enum":["DEPOSIT_ADDRESS_CREATED"]}},"additionalProperties":false},"DepositAddressDepositDetectedEvent":{"type":"object","required":["_tag","_id","tokenSymbol","tokenAddress","amount","amountUsd","amountWei","sender","txHash","createdAt","depositAddress"],"properties":{"_tag":{"type":"string","enum":["DEPOSIT_ADDRESS_DEPOSIT_DETECTED"]},"_id":{"type":"string","description":"The custody provider's order id for the deposit that it detected.","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},"paymentIntentId":{"$ref":"#/components/schemas/PaymentIntentId"},"createdAt":{"type":"string","description":"The datetime that the deposit reached this state."},"depositAddress":{"type":"object","required":["depositChain","depositAddress","destinationChain"],"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},"tokenOut":{"type":"string","description":"The token that will be received on the destinationChain."},"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."},"addressNote":{"type":"string","description":"A note or label for the deposit address as a reference.","title":"maxLength(80)","maxLength":80}},"additionalProperties":false}},"additionalProperties":false},"DepositAddressDepositConfirmingEvent":{"type":"object","required":["_tag","_id","tokenSymbol","tokenAddress","amount","amountUsd","amountWei","sender","txHash","createdAt","depositAddress"],"properties":{"_tag":{"type":"string","enum":["DEPOSIT_ADDRESS_DEPOSIT_CONFIRMING"]},"_id":{"type":"string","description":"The custody provider's order id for the deposit that it detected.","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},"paymentIntentId":{"$ref":"#/components/schemas/PaymentIntentId"},"createdAt":{"type":"string","description":"The datetime that the deposit reached this state."},"depositAddress":{"type":"object","required":["depositChain","depositAddress","destinationChain"],"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},"tokenOut":{"type":"string","description":"The token that will be received on the destinationChain."},"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."},"addressNote":{"type":"string","description":"A note or label for the deposit address as a reference.","title":"maxLength(80)","maxLength":80}},"additionalProperties":false}},"additionalProperties":false},"DepositAddressBridgeRejectedEvent":{"type":"object","required":["_tag","_id","tokenSymbol","tokenAddress","amount","amountUsd","amountWei","sender","txHash","reason","txUid","createdAt","depositAddress"],"properties":{"_tag":{"type":"string","enum":["DEPOSIT_ADDRESS_BRIDGE_REJECTED"]},"_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."},"paymentIntentId":{"$ref":"#/components/schemas/PaymentIntentId"},"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","PAYMENT_EXPIRED","PAYMENT_TOKEN_NOT_ACCEPTED","PAYMENT_AMOUNT_MISMATCH","PAYMENT_ALREADY_RECEIVED"],"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. PAYMENT_EXPIRED: the payment Smart Deposit Address expired before the deposit was received. PAYMENT_TOKEN_NOT_ACCEPTED: the deposited token is not one of the tokens the payment Smart Deposit Address was created for. PAYMENT_AMOUNT_MISMATCH: the deposited amount did not exactly match any of the payment Smart Deposit Address's accepted amounts for the deposited token. PAYMENT_ALREADY_RECEIVED: the payment Smart Deposit Address had already received a deposit; each pSDA settles exactly one payment."},"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"},"depositAddress":{"type":"object","required":["depositChain","depositAddress","destinationChain"],"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},"tokenOut":{"type":"string","description":"The token that will be received on the destinationChain."},"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."},"addressNote":{"type":"string","description":"A note or label for the deposit address as a reference.","title":"maxLength(80)","maxLength":80}},"additionalProperties":false}},"additionalProperties":false},"DepositAddressBridgeDelayedEvent":{"type":"object","required":["_tag","_id","tokenSymbol","tokenAddress","amount","amountUsd","amountWei","sender","txHash","createdAt","depositAddress"],"properties":{"_tag":{"type":"string","enum":["DEPOSIT_ADDRESS_BRIDGE_DELAYED"]},"_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},"paymentIntentId":{"$ref":"#/components/schemas/PaymentIntentId"},"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."},"depositAddress":{"type":"object","required":["depositChain","depositAddress","destinationChain"],"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},"tokenOut":{"type":"string","description":"The token that will be received on the destinationChain."},"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."},"addressNote":{"type":"string","description":"A note or label for the deposit address as a reference.","title":"maxLength(80)","maxLength":80}},"additionalProperties":false}},"additionalProperties":false},"RoutingDepositAddressCreatedEvent":{"type":"object","required":["depositChain","depositAddress","routes","_tag"],"properties":{"depositChain":{"$ref":"#/components/schemas/NonEmptyString"},"depositAddress":{"$ref":"#/components/schemas/NonEmptyString"},"routes":{"type":"array","minItems":1,"items":{"type":"object","required":["action"],"properties":{"matcher":{"anyOf":[{"$ref":"#/components/schemas/sentToken"},{"$ref":"#/components/schemas/sender"},{"$ref":"#/components/schemas/depositChain"},{"type":"object","required":["value","_tag"],"properties":{"value":{"type":"number","description":"Matches if the USD value of the transfer is lower than the configured threshold.","title":"positive","exclusiveMinimum":0},"inclusive":{"type":"boolean","description":"Whether the comparison should include the exact boundary value(s)."},"_tag":{"type":"string","enum":["sentAmountUsdLowerThan"]}},"additionalProperties":false},{"type":"object","required":["value","_tag"],"properties":{"value":{"type":"number","description":"Matches if the USD value of the transfer is greater than the configured threshold.","title":"positive","exclusiveMinimum":0},"inclusive":{"type":"boolean","description":"Whether the comparison should include the exact boundary value(s)."},"_tag":{"type":"string","enum":["sentAmountUsdGreaterThan"]}},"additionalProperties":false},{"type":"object","required":["from","to","_tag"],"properties":{"from":{"type":"number","description":"Matches if the USD value of the transfer is above this lower bound.","title":"nonNegative","minimum":0},"to":{"type":"number","description":"Matches if the USD value of the transfer is below this upper bound.","title":"nonNegative","minimum":0},"inclusive":{"type":"boolean","description":"Whether the comparison should include the exact boundary value(s)."},"_tag":{"type":"string","enum":["sentAmountUsdBetween"]}},"additionalProperties":false}],"description":"The matcher describes on what kind of transfers this route should match. If no matcher is provided, a route acts as a fallback and will always match unless another route that has a matcher matches the transfer."},"action":{"anyOf":[{"anyOf":[{"$ref":"#/components/schemas/bridge"},{"$ref":"#/components/schemas/bridgeSwap"}]},{"$ref":"#/components/schemas/composite"}],"description":"The action to run when this route matches."},"priority":{"type":"integer","description":"If multiple routes match the incoming transfer, the higher priority route will be used. If multiple routes have the same (or no) priority, the first one is used instead.","title":"int","minimum":0}},"additionalProperties":false}},"addressNote":{"type":"string","description":"a string at most 80 character(s) long","title":"maxLength(80)","maxLength":80},"_tag":{"type":"string","enum":["ROUTING_DEPOSIT_ADDRESS_CREATED"]}},"additionalProperties":false},"NonEmptyString":{"type":"string","description":"a non empty string","title":"nonEmptyString","minLength":1},"sentToken":{"type":"object","required":["symbolsOrAddresses","_tag"],"properties":{"symbolsOrAddresses":{"type":"array","minItems":1,"items":{"$ref":"#/components/schemas/NonEmptyString"},"description":"A list of token symbols or addresses. Matches if this list contains the transferred token.","title":"maxItems(10)","maxItems":10},"_tag":{"type":"string","enum":["sentToken"]}},"additionalProperties":false},"sender":{"type":"object","required":["addresses","_tag"],"properties":{"addresses":{"type":"array","minItems":1,"items":{"$ref":"#/components/schemas/NonEmptyString"},"description":"A list of addresses. Matches if this list contains the sender of the transfer.","title":"maxItems(10)","maxItems":10},"_tag":{"type":"string","enum":["sender"]}},"additionalProperties":false},"depositChain":{"type":"object","required":["depositChains","_tag"],"properties":{"depositChains":{"type":"array","minItems":1,"items":{"$ref":"#/components/schemas/NonEmptyString"},"description":"A list of deposit chains. Matches if this list contains the deposit chain of the transfer.","title":"maxItems(10)","maxItems":10},"_tag":{"type":"string","enum":["depositChain"]}},"additionalProperties":false},"bridge":{"type":"object","required":["destinationChain","destinationAddress","_tag"],"properties":{"destinationChain":{"$ref":"#/components/schemas/NonEmptyString"},"destinationAddress":{"$ref":"#/components/schemas/NonEmptyString"},"_tag":{"type":"string","enum":["bridge"]}},"additionalProperties":false},"bridgeSwap":{"type":"object","required":["destinationChain","destinationAddress","tokenOut","_tag"],"properties":{"destinationChain":{"$ref":"#/components/schemas/NonEmptyString"},"destinationAddress":{"$ref":"#/components/schemas/NonEmptyString"},"tokenOut":{"$ref":"#/components/schemas/NonEmptyString"},"_tag":{"type":"string","enum":["bridgeSwap"]}},"additionalProperties":false},"composite":{"type":"object","required":["actions","_tag"],"properties":{"actions":{"anyOf":[{"type":"array","minItems":1,"prefixItems":[{"$ref":"#/components/schemas/bridge"}],"items":false},{"type":"array","minItems":1,"prefixItems":[{"$ref":"#/components/schemas/bridgeSwap"}],"items":false},{"type":"array","minItems":2,"prefixItems":[{"$ref":"#/components/schemas/bridge"},{"$ref":"#/components/schemas/postBridgeAction"}],"items":false},{"type":"array","minItems":2,"prefixItems":[{"$ref":"#/components/schemas/bridgeSwap"},{"$ref":"#/components/schemas/postBridgeAction"}],"items":false}]},"_tag":{"type":"string","enum":["composite"]}},"additionalProperties":false},"postBridgeAction":{"type":"object","required":["data","_tag"],"properties":{"data":{"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"}]},"_tag":{"type":"string","enum":["postBridgeAction"]}},"additionalProperties":false},"RoutingDepositAddressBridgeRejectedEvent":{"type":"object","required":["_tag","_id","tokenSymbol","tokenAddress","amount","amountUsd","amountWei","sender","txHash","reason","txUid","createdAt","depositAddress"],"properties":{"_tag":{"type":"string","enum":["ROUTING_DEPOSIT_ADDRESS_BRIDGE_REJECTED"]},"_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."},"paymentIntentId":{"$ref":"#/components/schemas/PaymentIntentId"},"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","PAYMENT_EXPIRED","PAYMENT_TOKEN_NOT_ACCEPTED","PAYMENT_AMOUNT_MISMATCH","PAYMENT_ALREADY_RECEIVED"],"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. PAYMENT_EXPIRED: the payment Smart Deposit Address expired before the deposit was received. PAYMENT_TOKEN_NOT_ACCEPTED: the deposited token is not one of the tokens the payment Smart Deposit Address was created for. PAYMENT_AMOUNT_MISMATCH: the deposited amount did not exactly match any of the payment Smart Deposit Address's accepted amounts for the deposited token. PAYMENT_ALREADY_RECEIVED: the payment Smart Deposit Address had already received a deposit; each pSDA settles exactly one payment."},"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"},"depositAddress":{"type":"object","required":["depositChain","depositAddress","routes"],"properties":{"depositChain":{"$ref":"#/components/schemas/NonEmptyString"},"depositAddress":{"$ref":"#/components/schemas/NonEmptyString"},"routes":{"type":"array","minItems":1,"items":{"type":"object","required":["action"],"properties":{"matcher":{"anyOf":[{"$ref":"#/components/schemas/sentToken"},{"$ref":"#/components/schemas/sender"},{"$ref":"#/components/schemas/depositChain"},{"type":"object","required":["value","_tag"],"properties":{"value":{"type":"number","description":"Matches if the USD value of the transfer is lower than the configured threshold.","title":"positive","exclusiveMinimum":0},"inclusive":{"type":"boolean","description":"Whether the comparison should include the exact boundary value(s)."},"_tag":{"type":"string","enum":["sentAmountUsdLowerThan"]}},"additionalProperties":false},{"type":"object","required":["value","_tag"],"properties":{"value":{"type":"number","description":"Matches if the USD value of the transfer is greater than the configured threshold.","title":"positive","exclusiveMinimum":0},"inclusive":{"type":"boolean","description":"Whether the comparison should include the exact boundary value(s)."},"_tag":{"type":"string","enum":["sentAmountUsdGreaterThan"]}},"additionalProperties":false},{"type":"object","required":["from","to","_tag"],"properties":{"from":{"type":"number","description":"Matches if the USD value of the transfer is above this lower bound.","title":"nonNegative","minimum":0},"to":{"type":"number","description":"Matches if the USD value of the transfer is below this upper bound.","title":"nonNegative","minimum":0},"inclusive":{"type":"boolean","description":"Whether the comparison should include the exact boundary value(s)."},"_tag":{"type":"string","enum":["sentAmountUsdBetween"]}},"additionalProperties":false}],"description":"The matcher describes on what kind of transfers this route should match. If no matcher is provided, a route acts as a fallback and will always match unless another route that has a matcher matches the transfer."},"action":{"anyOf":[{"anyOf":[{"$ref":"#/components/schemas/bridge"},{"$ref":"#/components/schemas/bridgeSwap"}]},{"$ref":"#/components/schemas/composite"}],"description":"The action to run when this route matches."},"priority":{"type":"integer","description":"If multiple routes match the incoming transfer, the higher priority route will be used. If multiple routes have the same (or no) priority, the first one is used instead.","title":"int","minimum":0}},"additionalProperties":false}},"addressNote":{"type":"string","description":"a string at most 80 character(s) long","title":"maxLength(80)","maxLength":80}},"additionalProperties":false}},"additionalProperties":false},"RoutingDepositAddressBridgeDelayedEvent":{"type":"object","required":["_tag","_id","tokenSymbol","tokenAddress","amount","amountUsd","amountWei","sender","txHash","createdAt","depositAddress"],"properties":{"_tag":{"type":"string","enum":["ROUTING_DEPOSIT_ADDRESS_BRIDGE_DELAYED"]},"_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},"paymentIntentId":{"$ref":"#/components/schemas/PaymentIntentId"},"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."},"depositAddress":{"type":"object","required":["depositChain","depositAddress","routes"],"properties":{"depositChain":{"$ref":"#/components/schemas/NonEmptyString"},"depositAddress":{"$ref":"#/components/schemas/NonEmptyString"},"routes":{"type":"array","minItems":1,"items":{"type":"object","required":["action"],"properties":{"matcher":{"anyOf":[{"$ref":"#/components/schemas/sentToken"},{"$ref":"#/components/schemas/sender"},{"$ref":"#/components/schemas/depositChain"},{"type":"object","required":["value","_tag"],"properties":{"value":{"type":"number","description":"Matches if the USD value of the transfer is lower than the configured threshold.","title":"positive","exclusiveMinimum":0},"inclusive":{"type":"boolean","description":"Whether the comparison should include the exact boundary value(s)."},"_tag":{"type":"string","enum":["sentAmountUsdLowerThan"]}},"additionalProperties":false},{"type":"object","required":["value","_tag"],"properties":{"value":{"type":"number","description":"Matches if the USD value of the transfer is greater than the configured threshold.","title":"positive","exclusiveMinimum":0},"inclusive":{"type":"boolean","description":"Whether the comparison should include the exact boundary value(s)."},"_tag":{"type":"string","enum":["sentAmountUsdGreaterThan"]}},"additionalProperties":false},{"type":"object","required":["from","to","_tag"],"properties":{"from":{"type":"number","description":"Matches if the USD value of the transfer is above this lower bound.","title":"nonNegative","minimum":0},"to":{"type":"number","description":"Matches if the USD value of the transfer is below this upper bound.","title":"nonNegative","minimum":0},"inclusive":{"type":"boolean","description":"Whether the comparison should include the exact boundary value(s)."},"_tag":{"type":"string","enum":["sentAmountUsdBetween"]}},"additionalProperties":false}],"description":"The matcher describes on what kind of transfers this route should match. If no matcher is provided, a route acts as a fallback and will always match unless another route that has a matcher matches the transfer."},"action":{"anyOf":[{"anyOf":[{"$ref":"#/components/schemas/bridge"},{"$ref":"#/components/schemas/bridgeSwap"}]},{"$ref":"#/components/schemas/composite"}],"description":"The action to run when this route matches."},"priority":{"type":"integer","description":"If multiple routes match the incoming transfer, the higher priority route will be used. If multiple routes have the same (or no) priority, the first one is used instead.","title":"int","minimum":0}},"additionalProperties":false}},"addressNote":{"type":"string","description":"a string at most 80 character(s) long","title":"maxLength(80)","maxLength":80}},"additionalProperties":false}},"additionalProperties":false},"CompletedSdaRefundEvent":{"type":"object","required":["refundId","depositAddress","depositChain","recipient","trigger","txHash","txTimestamp","_tag"],"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."},"_tag":{"type":"string","enum":["SDA_REFUND_COMPLETED"]}},"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"},"WebhookTestEvent":{"type":"object","required":["_tag","type","message"],"properties":{"_tag":{"type":"string","enum":["WEBHOOK_TEST"]},"type":{"type":"string","enum":["test"]},"message":{"$ref":"#/components/schemas/NonEmptyString"}},"additionalProperties":false},"InvalidJwt":{"type":"object","required":["message","_tag"],"properties":{"message":{"type":"string"},"_tag":{"type":"string","enum":["InvalidJwt"]}},"additionalProperties":false},"Unauthorized":{"type":"object","required":["message","_tag"],"properties":{"message":{"type":"string"},"_tag":{"type":"string","enum":["Unauthorized"]}},"additionalProperties":false}},"securitySchemes":{"bearer":{"description":"JWT token for authentication","type":"http","scheme":"bearer"},"legacyApiKey":{"type":"apiKey","name":"authorization","in":"header"}}},"security":[],"tags":[{"name":"signature"},{"name":"user-events"}],"servers":[{"url":"https://api.rhino.fi/webhook"}]}