Skip to content

Networks and contracts

This page lists the Intuition networks and the addresses of the protocol contracts on each. It is written from @0xintuition/deployments. In code, import the values from that package instead of copying them:

import {
  getContractAddressFromChainId,
  getMultiVaultAddressFromChainId,
  intuitionMainnet,
  intuitionTestnet,
} from '@0xintuition/deployments';

const multiVault = getMultiVaultAddressFromChainId(intuitionMainnet.id);
const registry = getContractAddressFromChainId(
  'BondingCurveRegistry',
  intuitionMainnet.id,
);

intuitionMainnet and intuitionTestnet are viem chain definitions. Pass them to createPublicClient and createWalletClient, or to wagmi.

Networks

MainnetTestnet
NameIntuitionIntuition Testnet
Chain ID115513579
Native currencyTRUST, 18 decimalstTRUST, 18 decimals
RPC (HTTP)https://rpc.intuition.systems/httphttps://testnet.rpc.intuition.systems/http
RPC (WebSocket)wss://rpc.intuition.systems/wswss://testnet.rpc.intuition.systems/ws
Explorerexplorer.intuition.systems (opens in a new tab)testnet.explorer.intuition.systems (opens in a new tab)

The RPC endpoints are public and need no key. Testnet TRUST is available from the faucet at testnet.hub.intuition.systems (opens in a new tab).

On mainnet, TRUST is also an ERC-20 token on Base, and it moves between Base and Intuition through the bridge at bridge.intuition.systems (opens in a new tab). @0xintuition/periphery has helpers for the bridge contracts.

Protocol contracts

ContractRoleMainnetTestnet
MultiVaultRegisters terms and holds their vaults0x6E35cF57A41fA15eA0EaE9C33e751b01A784Fe7e0xeBc49d356B7f64D888130D85CC6D17114a6843ec
WrappedTrustWraps native TRUST as an ERC-20 token0x81cFb09cb44f7184Ad934C09F82000701A4bF6720xDE80b6EE63f7D809427CA350e30093F436A0fe35
TrustBondingLocks TRUST and distributes rewards0x635bBD1367B66E7B16a21D6E5A63C812fFC006170xfa1bF01055239C674845aAEe5A5416f98f801BE3
BondingCurveRegistryLists the bonding curves by curve identifier0xd0E488Fb32130232527eedEB72f8cE2BFC0F99300xbFE8068d5C5117c57d37464e33c937bC08317F88
Multicall3Batches several reads into one request0xcA11bde05977b3631167028862bE2a173976CA110xcA11bde05977b3631167028862bE2a173976CA11

The TRUST token contract is deployed on Base, at 0x6cd905dF2Ed214b22e0d48FF17CD4200C1C6d8A3, and on Base Sepolia, at 0xA54b4E6e356b963Ee00d1C947f478d9194a1a210.

@0xintuition/deployments also has the addresses of the emissions controllers, the individual bonding curves, and the atom wallet contracts. Look them up by name with getContractAddressFromChainId.

Contract source and ABIs

The contracts' Solidity source, ABIs, and bytecode are published as @0xintuition/contracts-v2 (opens in a new tab). For application code, use @0xintuition/protocol, which exports the ABIs, such as MultiVaultAbi, with typed helpers for their functions.

Local development

A local devnet uses chain ID 31337. @0xintuition/deployments does not include it, because its addresses change with each deployment. The deployer writes them to devnet/deployments-devnet.json. See Local devnet.

To use the devnet from an application, use viem's anvil chain and read the MultiVault address from that file:

import { createPublicClient, http } from 'viem';
import { anvil } from 'viem/chains';

const publicClient = createPublicClient({ chain: anvil, transport: http() });
const address = '0x...'; // MultiVault, from devnet/deployments-devnet.json