> For the complete documentation index, see [llms.txt](https://docs-v4.venus.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs-v4.venus.io/technical-reference/reference-xvs-bridge/xvsproxyoftsrc.md).

# XVSProxyOFTSrc

## XVSProxyOFTSrc

[`XVSProxyOFTSrc` at token-bridge v2.7.0](https://github.com/VenusProtocol/token-bridge/blob/v2.7.0/contracts/Bridge/XVSProxyOFTSrc.sol) is the non-upgradeable BNB Chain source bridge. It locks native BNB-chain XVS on outbound transfers and releases that same token on inbound transfers. `outboundAmount` tracks the locked supply attributed to remote chains.

XVSProxyOFTSrc contract serves as a crucial component for cross-chain token transactions, focusing on the source side of these transactions. It monitors the total amount transferred to other chains, ensuring it complies with defined limits, and provides functions for transferring tokens while maintaining control over the circulating supply on the source chain.

## Solidity API

#### outboundAmount

Total amount that is transferred from this chain to other chains.

```solidity
uint256 outboundAmount
```

***

#### fallbackWithdraw

Only call it when there is no way to recover the failed message. `dropFailedMessage` must be called first if transaction is from remote->local chain to avoid double spending.

```solidity
function fallbackWithdraw(address to_, uint256 amount_) external
```

**Parameters**

| Name     | Type    | Description                |
| -------- | ------- | -------------------------- |
| to\_     | address | The address to withdraw to |
| amount\_ | uint256 | The amount of withdrawal   |

**📅 Events**

* Emits FallbackWithdraw, once done with transfer.

**⛔️ Access Requirements**

* Only owner.

***

#### fallbackDeposit

Reconciles an owner-approved amount into bridge custody, increases `outboundAmount`, and transfers the dust-adjusted XVS amount from the depositor. This is an operational recovery function, not a user bridge entry point.

```solidity
function fallbackDeposit(address depositor_, uint256 amount_) external
```

**Parameters**

| Name        | Type    | Description                                         |
| ----------- | ------- | --------------------------------------------------- |
| depositor\_ | address | Address supplying XVS to bridge custody             |
| amount\_    | uint256 | Requested amount before shared-decimal dust removal |

**Access requirements**

* Only the bridge owner.

***

#### dropFailedMessage

Clear failed messages from the storage.

```solidity
function dropFailedMessage(uint16 srcChainId_, bytes srcAddress_, uint64 nonce_) external
```

**Parameters**

| Name         | Type   | Description                                          |
| ------------ | ------ | ---------------------------------------------------- |
| srcChainId\_ | uint16 | Chain id of source                                   |
| srcAddress\_ | bytes  | Address of source followed by current bridge address |
| nonce\_      | uint64 | Nonce\_ of the transaction                           |

**📅 Events**

* Emits DropFailedMessage on clearance of failed message.

**⛔️ Access Requirements**

* Only owner.

***

#### circulatingSupply

Returns the total circulating supply of the token on the source chain i.e (total supply - locked in this contract).

```solidity
function circulatingSupply() public view returns (uint256)
```

**Return Values**

| Name | Type    | Description                                                 |
| ---- | ------- | ----------------------------------------------------------- |
| \[0] | uint256 | Returns difference in total supply and the outbound amount. |

***


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs-v4.venus.io/technical-reference/reference-xvs-bridge/xvsproxyoftsrc.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
