Skip to main content
Before you can swap or transfer tokens on the Verifier contract, you need to deposit them. Depositing moves tokens from your NEAR account into the contract’s internal ledger, where they can be used for intents. The contract accepts:
Do not send native NEAR directly to the Verifier contract.You must wrap your NEAR into wNEAR first as the contract does not accept native NEAR. See “Using NEAR Tokens” for more details.

Depositing fungible tokens (NEP-141)

The Verifier contract implements the FungibleTokenReceiver interface, part of the NEP-141 standard. To deposit tokens, call ft_transfer_call (function signature) on the token contract, with an msg parameter specifying who will own the tokens. Any NEP-141 token can be deposited. For a list of NEP-141 token contract addresses deposited into the Verifier contract, run:
curl -s https://1click.chaindefuser.com/v0/tokens | jq -r '.[] | select(.blockchain == "near") | [.symbol, (.price | tostring), .contractAddress] | @tsv' | column -t -s $'\t'

How to deposit tokens

Replace <token-contract> with the token’s contract address and adjust the amount for the token’s decimal precision.
near call <token-contract> ft_transfer_call \
  '{"receiver_id": "intents.near", "amount": "<amount>", "msg": ""}' \
  --deposit 0.000000000000000000000001 \
  --gas 100000000000000 \
  --useAccount your-account.near \
  --networkId mainnet
ParameterDescription
<token-contract>The NEP-141 token contract you’re depositing from (e.g., wrap.near for wNEAR, eth.bridge.near for ETH). Any NEP-141 token can be deposited.
receiver_idAlways intents.near (the Verifier contract).
amountThe amount in the token’s smallest unit. Each token has different decimals (e.g., wNEAR has 24, USDC has 6).
msgControls token ownership after deposit. See The msg parameter below.
--deposit1 yoctoNEAR, required by the NEP-141 standard for ft_transfer_call.
--gasDepends on the msg content. Should be calculated to cover the cross-contract call to the Verifier contract plus any promises triggered by the deposit (e.g., execute_intents). 100 TGas is sufficient for a simple deposit.

The msg parameter

The msg parameter supports three formats:
Leave msg empty or omit it to assign ownership to the transaction sender.
{
  "receiver_id": "intents.near",
  "amount": "1000",
  "msg": ""
}
The msg field is always a string, even when it contains a JSON-encoded object. Proper character escaping is required.

Real transaction examples

View these deposit transactions on NEAR mainnet:
OperationTransaction
Deposit tokensDWv4AkrL…
Deposit + execute intentsBn3iC9B1…
Deposit + swap + withdrawBMFcWFRe…

Depositing non-fungible tokens (NEP-171)

The Verifier contract implements the NonFungibleTokenReceiver interface (NEP-171 standard). To transfer NFTs to the Verifier, use nft_transfer_call with the same msg format rules as fungible tokens.

Depositing multi tokens (NEP-245)

The Verifier contract implements the MultiTokenReceiver interface (NEP-245 standard). To deposit multi tokens, use mt_batch_transfer_call with the same msg format rules as fungible tokens.