> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kineticvm.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# Deployments

> Monad testnet addresses for the KineticVM contracts and the ERC-8004 registries they use, with the transactions that created them.

Chain id **10143**. RPC `https://testnet-rpc.monad.xyz`. The runtime defaults in `[chain]` point at this deployment. `chain.network = "mainnet"` is refused while these addresses are configured, because Monad mainnet (chain id 143) has no KineticVM contracts yet.

The canonical list in the repository is `contracts/deployments/10143.json`.

## KineticVM

| Contract | Address | Creation transaction |
| - | - | - |
| KineticRegistry | [`0xa361931269F7e0b1957175a48669F14735E61EDA`](https://testnet.monadvision.com/address/0xa361931269F7e0b1957175a48669F14735E61EDA) | [`0x7daf9289…1ff82a`](https://testnet.monadvision.com/tx/0x7daf9289d576476a28c10b54e2cbfbc87b8a1694f1a0ab60a692f841d91ff82a) |
| DeviceVault | [`0x77102fCAC7927bB64507DF82bf1ae659465B4EE5`](https://testnet.monadvision.com/address/0x77102fCAC7927bB64507DF82bf1ae659465B4EE5) | [`0xcf4d277d…04a35c`](https://testnet.monadvision.com/tx/0xcf4d277d3fe671d722dfb5542425842391c9b47c7c124186acc12ad04504a35c) |
| KineticAttestor | [`0x6e46d149b7d3396b42E874765Cf5a1bb26BD5bA5`](https://testnet.monadvision.com/address/0x6e46d149b7d3396b42E874765Cf5a1bb26BD5bA5) | [`0x83615ac0…496352`](https://testnet.monadvision.com/tx/0x83615ac08558cb5dab26278927f62b99ce3a3cb45c11e0bb81ffec9691496352) |

After both contracts existed, the deployer called `KineticRegistry.setVault` in [`0x41fdccee…24f234`](https://testnet.monadvision.com/tx/0x41fdccee3dbd70284d239f221b18e4b155f3b842133fd02b2bf4f72cc724f234). That call can happen once. `setVault` reverts with `VaultAlreadySet` after it.

<Note>
  The same addresses are what `kinetic config get chain.registry`, `chain.vault`, and `chain.attestor` print on a default install.
</Note>

## ERC-8004 on Monad testnet

These are the shared registries, not KineticVM contracts. Every ERC-8004 agent on this chain uses them.

| Registry | Address |
| - | - |
| Identity | [`0x8004A818BFB912233c491871b3d84c89A494BD9e`](https://testnet.monadvision.com/address/0x8004A818BFB912233c491871b3d84c89A494BD9e) |
| Reputation | [`0x8004B663056A597Dffe9eCcC1965A193B7388713`](https://testnet.monadvision.com/address/0x8004B663056A597Dffe9eCcC1965A193B7388713) |
| Validation | [`0x8004Cb1BF31DAf7788923b405b754f57acEB4272`](https://testnet.monadvision.com/address/0x8004Cb1BF31DAf7788923b405b754f57acEB4272) |

`KineticRegistry` stores the Identity address as an immutable. `KineticAttestor` stores the Validation address the same way. The Reputation registry is unused by this deployment.

## Confirm what you are talking to

```bash theme={"theme":{"light":"github-light","dark":"github-dark-dimmed"}}
cast call 0xa361931269F7e0b1957175a48669F14735E61EDA \
  "vault()(address)" \
  --rpc-url https://testnet-rpc.monad.xyz

cast call 0x6e46d149b7d3396b42E874765Cf5a1bb26BD5bA5 \
  "registry()(address)" \
  --rpc-url https://testnet-rpc.monad.xyz
```

The first returns the DeviceVault address. The second returns the KineticRegistry address. If either value differs, the config is not pointed at this deployment.

<Warning>
  The source for these addresses is `contracts/src`. Foundry's broadcast file `contracts/broadcast/Deploy.s.sol/10143/run-latest.json` records commit `5a79ff1` for this deployment. These contracts are not audited.
</Warning>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.