Plugins Reference
AgentKit ships 13 plugins containing 95 actions that cover wallet operations, DeFi, bridging, payments, identity, governance, and cross-chain messaging. Each plugin is a collection of related ActionDefinition objects that you register with an ActionProvider.
Plugin Overview
Core On-Chain Operations
| Plugin | Actions | Functionality |
|---|---|---|
| wallet | 10 | ERC-20 transfer, approve, balance, contract read/write, deploy, token symbol resolution |
| bridge | 7 | Bridge.sol native bridge: withdraw, cancel, refund, replace-by-fee, deposit/withdrawal status, get-params |
| dex | 7 | OKU (Uniswap V3): swap, quote, get-pool, add/remove liquidity, collect-fees, get-position |
| x402 | 5 | Agent payment protocol: create payment, submit signature, transfer, status, cancel |
Merchant and Identity
| Plugin | Actions | Functionality |
|---|---|---|
| x402-merchant | 30 | Merchant portal: auth, dashboard, profile, orders, balance, addresses, callbacks, API keys, webhooks, invite codes, audit logs |
| erc8004 | 9 | ERC-8004 Trustless Agents: register, set URI, get/set metadata, get wallet, give/revoke feedback, reputation, clients |
Protocols and Assets
| Plugin | Actions | Functionality |
|---|---|---|
| layerzero | 3 | LayerZero V2 OFT cross-chain: quote-send, send, quote-oft |
| bitvm2 | 10 | BitVM2 BTC bridge + staking: deposit, withdraw, status, register-pubkey, approve, stake, lock, pegbtc balance, pegin, pegout |
| erc721 | 3 | NFT: mint, transfer, balance |
| wgbtc | 3 | Wrapped GBTC: wrap, unwrap, balance |
| goat-token | 3 | Governance: delegate, get-votes, get-delegates |
| faucet | 2 | Testnet tokens: request-funds, get-chains |
| bitcoin | 3 | BTC light client: block-hash, latest-height, network-name |
wallet
The wallet plugin provides fundamental EVM wallet operations. Most actions take a WalletProvider or WalletReadAdapter instance.
| Action | Name | Risk Level | Description |
|---|---|---|---|
walletBalanceAction | wallet.balance | read | Query native or ERC-20 balance |
getDetailsAction | wallet.get_details | read | Get wallet address and network |
getAllowanceAction | wallet.get_allowance | read | Check ERC-20 allowance |
contractReadAction | wallet.contract_read | read | Read from any contract |
contractWriteAction | wallet.contract_write | high | Write to any contract |
transferNativeAction | wallet.transfer_native | high | Transfer native token (BTC) |
transferErc20Action | wallet.transfer_erc20 | high | Transfer ERC-20 tokens |
approveErc20Action | wallet.approve_erc20 | medium | Approve ERC-20 spending |
deployContractAction | wallet.deploy_contract | high | Deploy a smart contract |
resolveTokenAction | wallet.resolve_token | read | Resolve token symbol to address |
Token Symbol Resolution
The resolveTokenAction uses GOAT Network's built-in token registry. You can reference tokens by symbol instead of address:
Registration Example
dex
The DEX plugin wraps OKU (Uniswap V3 deployment on GOAT Network) for decentralized exchange operations.
| Action | Name | Risk Level | Description |
|---|---|---|---|
dexSwapAction | dex.swap | high | Exact-input single swap |
dexQuoteAction | dex.quote | read | Get a swap quote |
dexGetPoolAction | dex.get_pool | read | Get pool info by token pair and fee tier |
dexAddLiquidityAction | dex.add_liquidity | high | Add liquidity to a pool |
dexRemoveLiquidityAction | dex.remove_liquidity | high | Remove liquidity from a position |
dexCollectFeesAction | dex.collect_fees | medium | Collect accrued fees from a position |
dexGetPositionAction | dex.get_position | read | Query a liquidity position |
DEX swap actions are restricted to goat-mainnet only. The swap router address is pre-configured to the OKU SwapRouter02 deployment on GOAT Network.
Contract Addresses
| Contract | Address |
|---|---|
| SwapRouter02 | 0xaa52bB8110fE38D0d2d2AF0B85C3A3eE622CA455 |
| QuoterV2 | 0x5911cB3633e764939edc2d92b7e1ad375Bb57649 |
| PositionManager | 0x743E03cceB4af2efA3CC76838f6E8B50B63F184c |
| V3Factory | 0xcb2436774C3e191c85056d248EF4260ce5f27A9D |
bridge
The Bridge plugin interacts with GOAT Network's native Bridge.sol contract for the full bridge lifecycle.
| Action | Name | Risk Level | Description |
|---|---|---|---|
bridgeWithdrawAction | bridge.withdraw | high | Initiate a withdrawal |
bridgeCancelAction | bridge.cancel | high | Cancel a pending withdrawal |
bridgeRefundAction | bridge.refund | high | Refund a failed bridge request |
bridgeReplaceByFeeAction | bridge.replace_by_fee | high | Bump fee on a pending withdrawal |
bridgeDepositStatusAction | bridge.deposit_status | read | Check deposit status |
bridgeWithdrawalStatusAction | bridge.withdrawal_status | read | Check withdrawal status |
bridgeGetParamsAction | bridge.get_params | read | Get current bridge parameters |
x402
The x402 plugin implements the payer side of the x402 agent payment protocol. See the Payments guide for full details.
| Action | Name | Risk Level | Description |
|---|---|---|---|
createPaymentAction | goat.x402.payment.create | medium | Create a payment intent |
submitSignatureAction | goat.x402.payment.submitSignature | medium | Submit EIP-712 signature |
transferPaymentAction | goat.x402.payment.transfer | high | Execute the on-chain transfer |
paymentStatusAction | goat.x402.payment.status | read | Query payment status |
cancelPaymentAction | goat.x402.payment.cancel | medium | Cancel a payment |
x402-merchant
The x402-merchant plugin provides 30 actions for complete merchant portal management. Actions use the HttpMerchantPortalClient HTTP adapter and support per-request token isolation via ActionContext.accessToken.
Action Categories
Authentication (4 actions): register, register with invite, login, refresh token
Dashboard (1 action): stats overview
Profile (2 actions): get profile, update profile
Orders (2 actions): list orders, get order details
Balance (3 actions): get balance, list transactions, fees config
Addresses (3 actions): list, add, remove settlement addresses
Callback Contracts (4 actions): list, submit, remove, cancel submission
API Keys (2 actions): get keys, rotate keys
Webhooks (4 actions): list, create, update, delete webhooks
Invite Codes (3 actions): list, create, revoke
Audit Logs (1 action): list audit logs
Supported Tokens (1 action): list supported tokens
erc8004
The ERC-8004 plugin implements on-chain agent identity and reputation. See the AgentKit ERC-8004 guide for the agent-focused integration flow.
| Action | Name | Risk Level | Description |
|---|---|---|---|
erc8004RegisterAgentAction | erc8004.register_agent | high | Register an agent in the Identity Registry |
erc8004SetAgentURIAction | erc8004.set_agent_uri | high | Update the agent's metadata URI |
erc8004GetMetadataAction | erc8004.get_metadata | read | Read agent metadata |
erc8004SetMetadataAction | erc8004.set_metadata | high | Write agent metadata |
erc8004GetAgentWalletAction | erc8004.get_agent_wallet | read | Get an agent's wallet address |
erc8004GiveFeedbackAction | erc8004.give_feedback | medium | Submit trust feedback for an agent |
erc8004RevokeFeedbackAction | erc8004.revoke_feedback | medium | Revoke previously given feedback |
erc8004GetReputationAction | erc8004.get_reputation | read | Query an agent's reputation score |
erc8004GetClientsAction | erc8004.get_clients | read | List an agent's clients |
Contract Addresses
| Network | Identity Registry | Reputation Registry |
|---|---|---|
goat-mainnet | 0x8004A169FB4a3325136EB29fA0ceB6D2e539a432 | 0x8004BAa17C55a88189AE136b182e5fdA19dE9b63 |
goat-testnet | 0x556089008Fc0a60cD09390Eca93477ca254A5522 | 0xd9140951d8aE6E5F625a02F5908535e16e3af964 |
Recent AgentKit releases resolve ERC-8004 contract addresses from the execution network at runtime, so testnet3 no longer reuses the mainnet registry addresses.
bitvm2
The BitVM2 plugin provides BTC bridge operations and staking via the BitVM2 protocol.
| Action | Name | Risk Level | Description |
|---|---|---|---|
bridgeDepositAction | bitvm2.bridge.deposit | high | Deposit BTC via BitVM2 bridge |
bridgeWithdrawAction | bitvm2.bridge.withdraw | high | Withdraw from BitVM2 bridge |
bridgeStatusAction | bitvm2.bridge.status | read | Check bridge request status |
bitvm2RegisterPubkeyAction | bitvm2.stake.register_pubkey | high | Register staking pubkey |
bitvm2StakeApproveAction | bitvm2.stake.approve | medium | Approve staking contract |
bitvm2StakeAction | bitvm2.stake.stake | high | Stake tokens |
bitvm2LockStakeAction | bitvm2.stake.lock | high | Lock staked tokens |
bitvm2PegBtcBalanceAction | bitvm2.pegbtc.balance | read | Check pegBTC balance |
bitvm2PeginRequestAction | bitvm2.pegin.request | high | Request a peg-in |
bitvm2PegoutInitiateAction | bitvm2.pegout.initiate | high | Initiate a peg-out |
layerzero
Cross-chain messaging via LayerZero V2 OFT (Omnichain Fungible Token) protocol.
| Action | Name | Risk Level | Description |
|---|---|---|---|
oftQuoteSendAction | layerzero.quote_send | read | Quote a cross-chain send |
oftSendAction | layerzero.send | high | Execute a cross-chain send |
oftQuoteOftAction | layerzero.quote_oft | read | Quote OFT conversion |
erc721
Standard NFT operations.
| Action | Name | Risk Level |
|---|---|---|
erc721MintAction | erc721.mint | high |
erc721TransferAction | erc721.transfer | high |
erc721BalanceAction | erc721.balance | read |
wgbtc
Wrapped GBTC (WGBTC) operations.
| Action | Name | Risk Level |
|---|---|---|
wgbtcWrapAction | wgbtc.wrap | high |
wgbtcUnwrapAction | wgbtc.unwrap | high |
wgbtcBalanceAction | wgbtc.balance | read |
goat-token
GOAT governance token operations.
| Action | Name | Risk Level |
|---|---|---|
goatTokenDelegateAction | goat_token.delegate | medium |
goatTokenGetVotesAction | goat_token.get_votes | read |
goatTokenGetDelegatesAction | goat_token.get_delegates | read |
faucet
Testnet faucet for requesting test tokens.
| Action | Name | Risk Level |
|---|---|---|
faucetRequestFundsAction | faucet.request_funds | low |
faucetGetChainsAction | faucet.get_chains | read |
bitcoin
On-chain Bitcoin light client queries.
| Action | Name | Risk Level |
|---|---|---|
bitcoinBlockHashAction | bitcoin.block_hash | read |
bitcoinLatestHeightAction | bitcoin.latest_height | read |
bitcoinNetworkNameAction | bitcoin.network_name | read |
Risk Levels
Every action declares a risk level that the Policy Engine uses to gate execution:
| Level | Description | Example Actions |
|---|---|---|
read | No state change, no funds at risk | balance queries, status checks |
low | Minimal risk operations | faucet requests |
medium | Moderate risk, typically approvals or payment creation | approve ERC-20, create payment, delegate |
high | Significant risk, moves funds or deploys contracts | transfer, swap, deploy, register agent |
Actions with requiresConfirmation: true always need explicit confirmation regardless of the policy's maxRiskWithoutConfirm setting.