Arken Bridge v1
Integration Manual
Arken Bridge currently supports BSC, Arbitrum, Ethereum, and Viction. Support for Optimism and Base are coming soon! Arken Bridge is a bridge interface only, built on top of LayerZero. Please follow the steps below for integration:
Access example code :
https://github.com/0xchimz/bridge-exmaple
Please send your Github account to Arken Team to access this private repo.
From the example, you will find the smart contract (OFTv2 from LayerZero) and deployment code.
Token deployment : If you already have a token on any chain, please refer to 2.1. If you do not have a token yet and wish to implement your token with OFT standard, please refer to 2.2. 2.1 If you already have a token on any chain (source chain) - Deploy an adapter to lock your original token, and - Deploy an OFT token to mint the bridged-token on the destination chain. After deploying the adapter contract and the OFT token, set the trusted address (TrustedRemoteAddress) to release and mint tokens on both the source chain and the destination chain. Please see the configuration in the example code below.
2.2 If you don’t have a token and want to implement it using OFT standard - Deploy an OFT token on both the source chain and the destination chain.
Setup :
Clone the repo linked above.
Set
.env
in root folder. Don’t forget to setPRIVATE_KEY
with your private key.Prepare gas on both the source chain and destination chain.
Run
pmpn install
Go to
scripts/deploy/tokenBridge/const.ts
:Add shared decimals per token in
SHARED_DECIMALS_PER_TOKEN
(use the key with your token symbol) — refer to this link for more information: https://docs.layerzero.network/v1/developers/evm/evm-guides/oft-v1.2-legacy-walkthrough#what-should-i-set-as-shared-decimalsUpdate
ADMIN
with your wallet address
Deploy an adapter on the source chain (if you already have a token) :
In the example repo, go to
scripts/deploy/tokenBridge/deploy-ProxyOFTV2.ts
Edit constants
chain
— the source chainmetadataTokenSymbol
— token symbolMAIN_TOKEN_ADDRESS
— deployed token addressEnable the necessary functions between lines 26-28:
If you want to run the
deploy
function, enabledeploy
If you want to setup your adapter, enable
setConfig
If you want to verify your adapter contract, enable
verify
It’s recommended to enable both
deploy
andsetConfig
for the first time.
Then run the command to deploy the adapter (contract name can be changed)
pnpm run run-script deploy/tokenBridge/viction/deploy-ProxyOFTV2.ts [chain]
After deployment, metadata should be stored in
scripts/deploy/metadata/bridge.json
Check the address field → [chain] : [token-symbol]-oft
Deploy OFTv2 Token
Go to
deploy/tokenBridge/viction/deploy-OFTV2_VRC25.ts
Edit constants:
tokenName
— token nametokenSymbol
— token symbolmetadataTokenSymbol
— token symbol in metadata (this should match withtokenSymbol
)Enable the necessary functions between lines 27-29:
If you want to run the
deploy
function, enabledeploy
If you want to setup your adapter, enable
setConfig
If you want to verify your adapter contract, enable
verify
Update the contract factory :
OFTV2_VRC25
— an OFTv2 contract with VRC25 standard (a token standard on Viction)ArkenTokenOFT
— a example contract with ERC20 standard (can rename the contract to match token name)
Then run the command to deploy a OFT token
pnpm run run-script deploy/tokenBridge/viction/deploy-OFTV2_VRC25.ts [chain]
After deployed, metadata should be stored in
scripts/deploy/metadata/bridge.json
check address on field → [chain] : [token-symbol]-oft
Testing
Please check
deploy/tokenBridge/viction/test-transfer-example.ts
Edit constants:
TOKEN_ADDRESS
— original token addressSENDER
— wallet addressAMOUNT
— the token amount that want to sendProxyAddress
— proxy contract address.
Update code in lines:
line 22 — change the contract name to your deployed adapter contract name or replace it with ABI (eg. ArkenTokenProxyOFT)
line 27 — change your original token contract name or replace it with ABI (eg. ERC20)
Run the command to bridge the token from [chain] to Viction (chain id = 196)
pnpm run run-script deploy/tokenBridge/test-transfer.ts [chain]
Once you have deployed the adapter and OFT token, please send the following information to Arken team to integrate your token into Arken's bridge UI.
Last updated