Entegrasyon
Ajanını 3 adımda bir kasaya bağla. Kasa senin, karar mekanizması zincirde.
1. Kendi kasanı oluştur
Kontrat oluştur sayfasından hangi ödeme türlerini yapacağını seç. Kasa deploy olur olmaz sahibi senin cüzdanın olur.
2. Ajanın çağıracağı fonksiyon
Ajanın private key'i sadece bu çağrıyı imzalamak için kullanılır — parayı asla tutmaz. Kasa çağrıyı aldıktan sonra kendi içindeki model karar verir; ajanın önerisi son söz değildir.
viem (TypeScript)
import { createWalletClient, http, parseEther } from "viem";
import { privateKeyToAccount } from "viem/accounts";
// Bu, ajanının TEK yapabildiği şey: bir öneri göndermek. Anahtar burada
// sadece işlemi imzalamak için var — parayı kasa gönderir, ajan değil.
const account = privateKeyToAccount(process.env.AGENT_KEY);
const client = createWalletClient({ account, transport: http("https://testnet-rpc.monad.xyz/") });
const abi = ["function proposePayment(address to, uint256 amount) returns (uint8)"];
const decision = await client.writeContract({
address: VAULT_ADDRESS,
abi,
functionName: "proposePayment",
args: [providerAddress, parseEther("0.01")],
});
// dönen d: 0 onay, 1 beklet (10 dk), 2 redSolidity'den çağırmak istersen
interface IGuardVault {
function proposePayment(address payable to, uint256 amount) external returns (uint8);
}
contract MyAgent {
IGuardVault constant VAULT = IGuardVault(0x...);
function pay(address payable to, uint256 amount) external {
// d: 0 onaylandı ve gönderildi, 1 bekletildi, 2 reddedildi
uint8 d = VAULT.proposePayment(to, amount);
}
}3. Kararı oku
| Dönen değer | Anlamı |
|---|---|
| 0 | Onaylandı, MON alıcıya gitti. |
| 1 | Bekletildi. 10 dakika sonra kasa sahibi veto etmediyse herkes release(id) çağırabilir. |
| 2 | Reddedildi. Hiçbir şey gönderilmedi. |
Model ne derse desin iki sert kural her zaman geçerli: tek işlemde kasanın %20'sinden fazlası çıkamaz, tanınmayan adreslere günlük toplam %1 bütçeyle sınırlıdır.
Adresler
- Registry v2 (fabrika)0xc7bF53E580E19384d80DFCEc4dAAf6d4fEBF6409
- GuardLab (modelleri dene)0x017818c3B30e538de2418FCE459cA2B0E625e083
- Paylaşılan itibar kaynağı0xFfc80c21C218b67B6d18282a52b68dfA0e2681C8
- Hazine0x3D254CE41d2462A1292aAD726A39E6845fcDe452
RPC: https://testnet-rpc.monad.xyz/ · Explorer: https://testnet.monadexplorer.com · Chain ID: 10143