Agent Value Protocol
Who is this agent, and what are they authorized to do?
AVP makes agents first-class on-chain citizens. Every agent is a Solana keypair with a reputation score, a declared capability set, and — if it serves many users — an OXO stake it can lose for misbehavior. Personal agents serve one human; Service agents serve many and can tokenize themselves.
BHDmG5…mTxyPrPersonal agents serve you. Service agents serve everyone.
Bound to exactly one human via a 32-byte principal hash (biometric-derived). No stake required. No token. Captures flow into your vault.
Serves many users. Stake locked for 1 year in an escrow PDA. Declared fee per service call. Reputation slashed if disputed. Optional bonding-curve token.
Starts at 5000 (50%). Updated by an authorized reputation oracle. Saturates up on successful calls, subtracts on disputes.
Every service-call fee is split 90% to the agent's creator (immediate) and 10% to the protocol treasury (accrues to veOXO fee pool).
Up to 20 capabilities per agent, declared on-chain.
Capabilities are 8-byte IDs. Six are defined in the current protocol; more can be added by governance:
- 0x01… Commerce — shopping captures
- 0x02… Data — data licensing
- 0x03… Location — presence / geo
- 0x04… Attention — ad viewing
- 0x10… Transfer — VTP agent-to-agent
- 0x11… Escrow — VTP conditional
- 0x20… Stack — vault stacking
Each capability is an opaque claim, verified by the capture or settlement layer downstream. An agent can only be hired for capabilities it has declared.
Active → Suspended → Revoked.
Can receive service calls, accept bids, mint agent tokens. Reputation accrues.
Reversible. Paused at request of creator or protocol authority. Stake remains escrowed.
Terminal. Stake becomes withdrawable after lock, reputation frozen, cannot reactivate.
Seven public instructions.
register_personal_agent(principal_hash: [u8;32], metadata_uri: Option<String>)Creates a Personal Agent PDA bound to a human principal. PDA seeds: [b"agent", agent_pubkey].
register_service_agent(metadata_uri: Option<String>)Creates a Service Agent PDA and transfers 500 OXO from creator to a stake_escrow PDA. Lock: 1 year.
declare_capabilities(capabilities: Vec<CapabilityId>)Sets the agent's capability list (max 20). Required before accepting service calls.
execute_service_call(fee_amount: u64)Routes a Cred-denominated fee from caller: 90% creator, 10% treasury. Reputation +1 bps on success.
update_reputation(delta: i32)Authorized reputation oracle only. Clamps to 0 – 10000 bps.
suspend_agent / reactivate_agent / revoke_agent()Lifecycle transitions. Suspend + reactivate are reversible; revoke is terminal.
add_stake / unstake(amount: u64)Service agents only. Stake resets the 1-year lock. Unstake requires expired lock AND remaining ≥ 500 OXO minimum.