Docs
How Talaria works
Stripe for Portaldot, with a refund button. Stripe is only a comparison: Talaria has no link to it. This is a testnet build, with test tokens and no audit.
The payment flow
Every payment takes the same path: a signed intent, a policy check on-chain, execution by a relayer that pays the gas, and a receipt event.
Reputation changes what happens next. The relayer reads a seller's or agent's ERC-8004 reputation on Base Sepolia and signs a short-lived attestation, and the contract checks it inline.
| Tier | Condition | Hold on a payment | Agent cap per payment |
|---|---|---|---|
| Trusted | Score 80+, with 3+ feedbacks | Instant | 100 tUSD |
| Established | Score 50–79 | 10 minutes | 25 tUSD |
| New or low | Under 50, or no attestation | 30 minutes | 5 tUSD |
These are demo values, fixed at deployment. Buyers can dispute while a payment is held, and an arbiter resolves the dispute. Merchants can also refund. When a payment is released, or a dispute refunds 50% or more, feedback is written back to Base.
Ways to build
SDK: add payments from TypeScript.
MCP server: give an AI agent payment tools under on-chain limits.
What runs where
| Feature | Where it runs |
|---|---|
| Checkout, buyer protection, mandates, bridge-out | Portaldot V3 testnet |
| Subscriptions, streaming, pay-per-call, remittance | Base Sepolia, on a second copy of Core. Not on Portaldot yet |
| Funding into Portaldot | Base Sepolia and BNB testnet |
| Bridge-out destination | Base Sepolia has run. BNB testnet is enabled but has not been run |
Network
| Item | Value |
|---|---|
| Chain ID | 420420777 |
| EVM RPC | https://test-evm-rpc-v3.portaldot.dev |
| Substrate WebSocket | wss://test-node-v3.portaldot.dev |
| Native token | tPOT. Signed actions don't need it, because the relayer pays the gas |
Contracts
| Contract | Chain | Address |
|---|---|---|
| TalariaUSD | Portaldot | 0x44bc5dcfba3f36fb03623a27e553cdbb0b8877f0 |
| TalariaCore | Portaldot | 0x69d4105479e25503f296797b91901ab558c830ac |
| TalariaProtect | Portaldot | 0xc2e44329d071dd9683f2050e943dde19dac145e1 |
| TalariaBridgeOut | Portaldot | 0x40b43930a97f328bc3325adb22ec0f01a5432320 |
| MockUSDC | Base Sepolia | 0x44bc5dcfba3f36fb03623a27e553cdbb0b8877f0 |
| TalariaLockboxV2 | Base Sepolia | 0xc8675f5a54bdfd78d6ffbed8551393c8e462b1bd |
| TalariaCore | Base Sepolia | 0x41b0e2fa8a49d5289f9f03b46228b6362da99455 |
| TalariaSubscriptions | Base Sepolia | 0x394cb7bd33e1745a1f4b3d70bef7a8f742211627 |
| TalariaStreams | Base Sepolia | 0xf44780000c3b19f8dff8c08ba0b66518e8994a9f |
| TalariaChannels | Base Sepolia | 0x31849ec8ed12c615c02292a664988281c0dece67 |
| TalariaRemit | Base Sepolia | 0x126e6de91575c17d02d76b0f723c7bfab6c536d1 |
| MockUSDC | BNB testnet | 0x44bc5dcfba3f36fb03623a27e553cdbb0b8877f0 |
| TalariaLockboxV2 | BNB testnet | 0x67e3e8d6185f2e57c60d63b81fc1376ff120b467 |
Deploy transactions and every recorded payment are in the evidence log.
Run it yourself
Requires Node 22.5+ and pnpm.
git clone https://github.com/Stella112/Talaria.git
cd Talaria
pnpm install
cp .env.example .env
pnpm --filter @talaria-pay/web build
pnpm --filter @talaria-pay/web startThe web app reads live testnet data with no key. The relayer, agent and deployment steps are in the README.
What you're trusting
A single attester signs reputation scores, a single relayer runs the bridge, and an admin arbiter decides disputes. Read the full security notes.
