> ## Documentation Index
> Fetch the complete documentation index at: https://docs.therootnetwork.com/llms.txt
> Use this file to discover all available pages before exploring further.

# NftPeg

## Calls

### reclaimBlockedNfts

Withdraw blocked tokens, must be called by the destination defined in `BlockedTokens`

**Namespace**

```
api.tx.nftPeg.reclaimBlockedNfts
```

**Type**

```
function reclaimBlockedNfts(
  blocked_mint_id: u32,
  destination: H160
)
```

### setContractAddress

**Namespace**

```
api.tx.nftPeg.setContractAddress
```

**Type**

```
function setContractAddress(
  contract: H160
)
```

### withdraw

**Namespace**

```
api.tx.nftPeg.withdraw
```

**Type**

```
function withdraw(
  collection_ids: Vec<u32>,
  serial_numbers: Vec<Vec<u32>>,
  destination: H160
)
```

## Storage

### blockedTokens

**Namespace**

```
api.query.nftPeg.blockedTokens
```

**Type**

```
function blockedTokens(
  u32
): Option<PalletNftPegBlockedTokenInfo>
```

### contractAddress

**Namespace**

```
api.query.nftPeg.contractAddress
```

**Type**

```
function contractAddress(

): H160
```

### ethToRootNft

**Namespace**

```
api.query.nftPeg.ethToRootNft
```

**Type**

```
function ethToRootNft(
  H160
): Option<u32>
```

### nextBlockedMintId

The next available BlockedMintId

**Namespace**

```
api.query.nftPeg.nextBlockedMintId
```

**Type**

```
function nextBlockedMintId(

): u32
```

### rootNftToErc721

**Namespace**

```
api.query.nftPeg.rootNftToErc721
```

**Type**

```
function rootNftToErc721(
  u32
): Option<H160>
```

## Events

### ContractAddressSet

The NFT-peg contract address was set

**Namespace**

```
api.events.nftPeg.ContractAddressSet
```

**Type**

```
type ContractAddressSet = {
  contract: H160
}
```

### ERC721Blocked

Bridged ERC721 tokens were unable to be minted due to collection limit being reached

**Namespace**

```
api.events.nftPeg.ERC721Blocked
```

**Type**

```
type ERC721Blocked = {
  blocked_mint_id: u32,
  destination_address: SeedPrimitivesSignatureAccountId20,
  collection_id: u32,
  serial_numbers: Vec<u32>
}
```

### Erc721Deposit

An ERC721 deposit was made

**Namespace**

```
api.events.nftPeg.Erc721Deposit
```

**Type**

```
type Erc721Deposit = {
  destination: SeedPrimitivesSignatureAccountId20
}
```

### Erc721Mint

Bridged ERC721 tokens were minted

**Namespace**

```
api.events.nftPeg.Erc721Mint
```

**Type**

```
type Erc721Mint = {
  collection_id: u32,
  serial_numbers: Vec<u32>,
  owner: SeedPrimitivesSignatureAccountId20
}
```

### Erc721Withdraw

An ERC721 withdraw was made

**Namespace**

```
api.events.nftPeg.Erc721Withdraw
```

**Type**

```
type Erc721Withdraw = {
  origin: SeedPrimitivesSignatureAccountId20,
  collection_ids: Vec<u32>,
  serial_numbers: Vec<Vec<u32>>,
  destination: H160
}
```

## Errors

### ExceedsMaxAddresses

Send more addresses than are allowed

**Namespace**

```
api.errors.nftPeg.ExceedsMaxAddresses
```

### ExceedsMaxTokens

Sent more tokens than are allowed

**Namespace**

```
api.errors.nftPeg.ExceedsMaxTokens
```

### ExceedsMaxVecLength

The length of the given vec exceeds the maximal allowed length limit

**Namespace**

```
api.errors.nftPeg.ExceedsMaxVecLength
```

### InvalidAbiEncoding

The abi data passed in could not be decoded

**Namespace**

```
api.errors.nftPeg.InvalidAbiEncoding
```

### InvalidAbiPrefix

The prefix uint in the abi encoded data was invalid

**Namespace**

```
api.errors.nftPeg.InvalidAbiPrefix
```

### NoBlockedTokensFound

No blocked tokens for the given id

**Namespace**

```
api.errors.nftPeg.NoBlockedTokensFound
```

### NoCollectionFound

No collection info exists

**Namespace**

```
api.errors.nftPeg.NoCollectionFound
```

### NoMappedTokenExists

No mapped token was stored for bridging the token back to the bridged chain

**Namespace**

```
api.errors.nftPeg.NoMappedTokenExists
```

### NoPermissionToBridge

Tried to bridge a token that originates from Root, which is not yet supported

**Namespace**

```
api.errors.nftPeg.NoPermissionToBridge
```

### NotBlockedTokenDestination

Blocked tokens can only be reclaimed by the destination address

**Namespace**

```
api.errors.nftPeg.NotBlockedTokenDestination
```

### StateSyncDisabled

The state sync decoding feature is not implemented

**Namespace**

```
api.errors.nftPeg.StateSyncDisabled
```

### TokenListLengthMismatch

Multiple tokens were passed from contract, but amounts were unqeual per each array

**Namespace**

```
api.errors.nftPeg.TokenListLengthMismatch
```

## Constants

### delayLength

**Namespace**

```
api.consts.nftPeg.delayLength
```

**Type**

```
type delayLength = u32
```
