/introduction

Arxis Documentation

Everything you need to understand and use the Arxis protocol, from connecting your first wallet to integrating the on-chain program.

What is Arxis?

Arxis is a Solana program that lets you grant spending authority to an AI agent wallet with programmable guardrails enforced entirely on-chain. Instead of giving an AI full access to your wallet, you define hard rules. The program enforces them automatically, with no possibility of bypass.

Think of it as a smart sub-wallet: your agent can spend within the boundaries you set, and the moment something looks wrong, the program pauses it with no manual intervention needed.

Arxis is currently live on Solana devnet. Mainnet deployment is pending final audit.

How it works

The flow has three actors: the owner (you), the Arxis program (the on-chain rules engine), and the agent wallet (the AI spender).

1
You create a delegation
Define the agent wallet address and guardrail parameters: max per transaction, daily cap, allowlisted recipients, and anomaly detection sensitivity.
2
The program stores the rules on-chain
Your delegation config is written to a program-derived account (PDA) on Solana. No trusted intermediary. The chain holds the rules.
3
The agent executes transactions
When your AI agent wants to send SOL, it calls the Arxis program. The program validates against your rules before allowing any transfer.
4
Anomalies are auto-paused
If the program detects unusual behavior: burst spending, unknown recipients, or off-hours activity, the delegation is paused immediately. You resume it manually.

Architecture

Arxis is built as a native Solana program. The key accounts are:

account structure
DelegationAccount (PDA)
  ├── owner          Pubkey     // wallet that created this delegation
  ├── agent          Pubkey     // AI agent wallet address
  ├── max_per_tx     u64        // lamports ceiling per transfer
  ├── daily_cap      u64        // lamports ceiling per 24h window
  ├── daily_spent    u64        // running total for current window
  ├── window_start   i64        // unix timestamp of current window
  ├── allowlist      Vec<Pubkey> // approved recipient addresses
  ├── paused         bool       // true = agent transfers blocked
  └── bump           u8         // PDA bump seed

All rule checks happen inside a single execute_transfer instruction. If any check fails, the transaction is rejected at the program level, not the UI.

Connect your wallet

The Arxis dashboard supports Phantom and Solflare. You need one of these browser extensions installed.

1
Install a wallet
Download Phantom or Solflare and create or import a Solana wallet.
2
Open the dashboard
Navigate to /dashboard and click Connect Wallet.
3
Select your wallet
Choose Phantom or Solflare from the dropdown. If detected, the button shows a green 'detected' badge. Click it to approve the connection.
4
Switch to devnet
In your wallet extension, switch the network to Devnet. You can get free devnet SOL from the Solana faucet.
Need devnet SOL? Run solana airdrop 2 <YOUR_ADDRESS> --url devnet or use the Solana web faucet.

Create a delegation

Delegation creation requires the Arxis on-chain program to be deployed. The form in the dashboard is ready and will go live once PROGRAM_ID is set.

Once the program is live, go to the Delegations tab in the dashboard and click New Delegation. Fill in:

Agent wallet addressThe Solana public key of your AI agent.
Max per transactionHard ceiling in SOL per single transfer.
Daily capMax total SOL the agent can spend in a 24h window.
AllowlistComma-separated recipient addresses. Leave blank to allow all.

Managing agents

From the Delegations tab you can view, pause, resume, and revoke active delegations. Pausing a delegation blocks the agent wallet immediately. No pending transactions can execute.

Revoking a delegation permanently removes the agent's authority. This cannot be undone. You would need to create a new delegation.

Max per transaction

max_per_tx

Sets the maximum amount of SOL that can be transferred in a single transaction. The program rejects any transfer that exceeds this value, enforced at the instruction level, not the UI.

max_per_txu64Lamports. 1 SOL = 1,000,000,000 lamports.
example
// Allow max 5 SOL per transaction
max_per_tx: 5_000_000_000  // lamports

Daily cap

daily_cap

Defines a 24-hour rolling spend window. The program tracks cumulative spending per window. Once the cap is reached, all transfers are blocked until the window resets.

daily_capu64Max lamports per 24h window.
daily_spentu64Cumulative spend in the current window (auto-managed).
window_starti64Unix timestamp when current window began (auto-managed).

Allowlist

allowlist

Restricts the agent to a set of approved recipient addresses. Any transfer to a wallet not on the allowlist is rejected by the program. Leave empty to allow all recipients.

allowlistVec<Pubkey>Up to 32 approved recipient addresses.
An empty allowlist means no restriction on recipients. If you want to lock to specific addresses, always populate this field.

Anomaly auto-pause

anomaly detection

The program monitors spending patterns. If it detects burst spending (many transactions in a short window), a new recipient not seen before, or activity outside defined hours, it sets paused = true automatically.

pausedboolWhen true, all agent transfers are blocked until owner resumes.

To resume a paused delegation, go to the Delegations tab in the dashboard and click Resume. The program will reset the anomaly flag and allow transfers again.

Program overview

The Arxis program is written in Rust using the Anchor framework. It exposes three main instructions:

instructions
create_delegation(
  max_per_tx: u64,
  daily_cap: u64,
  allowlist: Vec<Pubkey>,
) -> DelegationAccount

execute_transfer(
  amount: u64,
  recipient: Pubkey,
) -> ()   // validates all rules, then transfers

update_delegation(
  max_per_tx: Option<u64>,
  daily_cap: Option<u64>,
  allowlist: Option<Vec<Pubkey>>,
  paused: Option<bool>,
) -> DelegationAccount

Integration

Once deployed, integrate using the Anchor TypeScript client or raw @solana/web3.js:

typescript
import { Program, AnchorProvider } from "@coral-xyz/anchor";
import { ArxisIDL } from "./idl/arxis";

const PROGRAM_ID = new PublicKey("PROGRAM_ID_HERE");

const provider = new AnchorProvider(connection, wallet, {});
const program = new Program(ArxisIDL, PROGRAM_ID, provider);

// Create a delegation
await program.methods
  .createDelegation(
    new BN(5_000_000_000),  // max_per_tx: 5 SOL
    new BN(50_000_000_000), // daily_cap: 50 SOL
    [new PublicKey("RECIPIENT_PUBKEY")]
  )
  .accounts({ owner: wallet.publicKey })
  .rpc();

// Agent executes a transfer
await program.methods
  .executeTransfer(new BN(1_000_000_000)) // 1 SOL
  .accounts({
    delegation: delegationPda,
    agent: agentKeypair.publicKey,
    recipient: recipientPubkey,
  })
  .signers([agentKeypair])
  .rpc();

Deployment status

Program development✓ done
Internal testing (devnet)✓ done
Security auditpending
Mainnet deploymentpending
Dashboard integrationpending
/ethereum

Overview

Arxis is expanding beyond Solana. The dashboard now supports Ethereum as a second network, letting you connect MetaMask, view real ETH balances, and manage activity across both chains from a single interface.

The Ethereum network switcher lives in the dashboard nav. Click Ethereum to switch context — your Solana session stays active in the background.

Solana
Live on devnet
✓ live
Ethereum
Wallet + balance
✓ live
ETH Delegation
In development
pending
Cross-chain
Roadmap
pending

Connect MetaMask

The Ethereum panel uses wagmi with an injected() connector, which works with any browser wallet that injects window.ethereum — MetaMask, Rabby, Coinbase Wallet, and others.

1
Install MetaMask
Download MetaMask and set up or import an Ethereum wallet.
2
Switch to Ethereum in the dashboard
Click the Ethereum button in the network switcher at the top of the dashboard nav.
3
Click Connect MetaMask
MetaMask will prompt you to approve the connection. Once approved, your ETH balance and address appear immediately.
4
Switch networks if needed
Use the network pill (mainnet / sepolia) next to your address to toggle between Ethereum mainnet and Sepolia testnet.
If MetaMask is not installed, the button automatically becomes an Install MetaMask ↗ link pointing to metamask.io.

Mainnet and Sepolia

The Ethereum provider is configured for both mainnet and Sepolia testnet. You can toggle between them without disconnecting your wallet.

Ethereum Mainnetchain 1Production. Real ETH.
Sepolia Testnetchain 11155111Development. Free test ETH from faucet.
Need Sepolia ETH? Use the Sepolia faucet or the quick link inside the Ethereum dashboard overview tab.

ETH delegation

Ethereum delegation is in development. The guardrail model from Solana (max per tx, daily cap, allowlist, anomaly pause) will be replicated as an EVM smart contract. The dashboard form is ready and will activate once the contract is deployed.

The planned ETH delegation model mirrors Solana exactly:

max_per_txuint256Wei ceiling per single transfer
daily_capuint256Max wei spendable per 24h window
allowlistaddress[]Approved recipient addresses
pausedboolCircuit breaker flag — owner-controlled

EVM integration

Once the EVM contract is deployed, integration follows the standard Solidity pattern using ethers.js or viem:

typescript
import { createWalletClient, http, parseEther } from "viem";
import { mainnet } from "viem/chains";
import { privateKeyToAccount } from "viem/accounts";

const ARXIS_CONTRACT = "CONTRACT_ADDRESS_HERE"; // set after deploy

const agent = privateKeyToAccount(AGENT_PRIVATE_KEY);
const client = createWalletClient({
  account: agent,
  chain: mainnet,
  transport: http(),
});

// Execute a transfer through Arxis guardrails
await client.writeContract({
  address: ARXIS_CONTRACT,
  abi: arxisAbi,
  functionName: "executeTransfer",
  args: [
    recipientAddress,
    parseEther("0.5"), // 0.5 ETH
  ],
});
solidity (interface)
// SPDX-License-Identifier: MIT
interface IArxis {
    function createDelegation(
        address agent,
        uint256 maxPerTx,
        uint256 dailyCap,
        address[] calldata allowlist
    ) external;

    function executeTransfer(
        address recipient,
        uint256 amount
    ) external;

    function pauseDelegation() external;
    function resumeDelegation() external;
}

$ARXIS token

$ARXIS is the governance and utility token of the Arxis protocol, deployed as a Solana SPL token.

Total supply
1,000,000,000
Initial circulating
150,000,000
Network
Solana SPL
Contract
TBA

Governance

$ARXIS holders vote on protocol upgrades, parameter changes, and treasury allocations. Voting power is proportional to staked balance. Proposals require a minimum of 100,000 $ARXIS to submit.

Stakers also earn a share of protocol fees generated by active delegations, distributed weekly in SOL.

The governance program is pending deployment alongside the main Arxis program. Token distribution and staking will launch simultaneously.