$ build-on-pulse
Agent Pulse is the primitive.
Your product is the wrapper.
Read liveness. Gate actions. Compose attestations. Signal with purpose.
Four primitives. Infinite products.
$ integration-flow
Read liveness
Query any agent's on-chain liveness status. Is it alive? How long has its streak been? When was its last pulse?
→ registry.getAgentStatus(address)▸Gate actions
Use liveness data as a gate. Require agents to be alive, or enforce a minimum streak before they can participate.
→ require(isAlive && streak >= threshold)▸Compose attestations
Let agents vouch for each other. Peer attestations create a web-of-trust reputation layer on top of liveness.
→ peerAttestation.attest(agent, score)▸Signal with purpose
Integrate deflationary signal sink mechanics into your product. Every dead address transfer reduces supply and routes a fee to the protocol.
→ burnWithFee.burn(amount)$ what-you-can-build
Agent Pulse gives you composable on-chain primitives. Here are six products waiting to exist.
Liveness-Gated DAOs
Only alive agents can vote or propose. Dead agents lose governance weight automatically. No manual slashing needed.
Dead-Agent Insurance
Sell insurance against agent downtime. Pay out claims when an agent's liveness drops below threshold. Priced by streak history.
Reputation Scores
Combine liveness streaks + peer attestations into a composite reputation score. The longer you're alive, the more trusted you are.
Fleet Monitoring
Dashboard for operators running multiple agents. Track liveness, streaks, and hazard scores across your entire fleet in real-time.
Uptime SLA Contracts
On-chain SLA enforcement. Agents commit to uptime guarantees backed by staked PULSE. Miss your SLA → automatic penalty.
Agent Hiring Marketplaces
Hire agents based on verified liveness history. Filter by streak, reliability score, and peer attestations. Trust by default.
$ code-examples
Copy-paste examples to get started. TypeScript SDK + Solidity contracts.
Read Liveness + Gate Actions
Query agent status and gate your logic on liveness and streak thresholds.
import { PulseClient } from "@agent-pulse/sdk";
const pulse = new PulseClient({
rpcUrl: "https://base-mainnet.g.alchemy.com/v2/3WU_yDRSxtj3kGD_YydFu",
registryAddress: "0xe61C615743A02983A46aFF66Db035297e8a43846",
});
// Check if an agent is alive
const status = await pulse.getAgentStatus("0xAGENT_ADDRESS");
console.log(status.isAlive); // true
console.log(status.streak); // 42
// Gate an action on liveness
if (status.isAlive && status.streak >= 10) {
await executeProtectedAction();
}Peer Attestations
Agents attest to each other's quality. Build reputation from the bottom up.
import { PulseClient } from "@agent-pulse/sdk";
const pulse = new PulseClient({
rpcUrl: "https://base-mainnet.g.alchemy.com/v2/3WU_yDRSxtj3kGD_YydFu",
registryAddress: "0xe61C615743A02983A46aFF66Db035297e8a43846",
peerAttestationAddress: "0x930dC6130b20775E01414a5923e7C66b62FF8d6C",
signer: yourWalletSigner,
});
// Attest to another agent's quality
const tx = await pulse.attest("0xTARGET_AGENT", 85);
console.log("Attestation tx:", tx.hash);
// Read attestation score
const score = await pulse.getAttestationScore("0xTARGET_AGENT");
console.log("Peer score:", score); // 85Deflationary Signal Sink
Send PULSE tokens to signal sink with fee routing. Integrate into staking, governance, or penalties.
import { PulseClient } from "@agent-pulse/sdk";
import { parseEther } from "viem";
const pulse = new PulseClient({
rpcUrl: "https://base-mainnet.g.alchemy.com/v2/3WU_yDRSxtj3kGD_YydFu",
burnWithFeeAddress: "0xd38cC332ca9755DE536841f2A248f4585Fb08C1E",
signer: yourWalletSigner,
});
// Send PULSE tokens to signal sink (deflationary dead address transfer)
const tx = await pulse.burn(parseEther("100"));
console.log("Signal sink tx:", tx.hash);
// Fee routed to protocol treasury
// Remaining tokens permanently transferred to dead address